pgLab/pglab/CrudTab.h
eelke f4f2474a81 Moved definition of widget instance actions to the module so other parts of the system can no about them.
The plugin system will create the Action objects and bind them to the specified slots of the
specific widget instances.
2019-01-05 19:58:23 +01:00

56 lines
1 KiB
C++

#ifndef CRUDTAB_H
#define CRUDTAB_H
#include "catalog/PgClass.h"
#include <QWidget>
#include "plugin_support/PluginContentWidget.h"
#include "plugin_support/PluginModule.h"
#include <memory>
#include <optional>
namespace Ui {
class CrudTab;
}
class OpenDatabase;
class CrudModel;
class CrudTab : public PluginContentWidget
{
Q_OBJECT
public:
explicit CrudTab(IPluginContentWidgetContext *context, QWidget *parent = nullptr);
~CrudTab() override;
void setConfig(Oid oid);
public slots:
void refresh();
private:
Ui::CrudTab *ui;
std::shared_ptr<OpenDatabase> m_db;
std::optional<PgClass> m_table;
CrudModel *m_crudModel = nullptr;
std::vector<QAction*> actions;
private slots:
void on_actionRemove_rows_triggered();
void headerCustomContextMenu(const QPoint &pos);
};
class CrudPageModule: public PluginModule {
Q_OBJECT
public:
using PluginModule::PluginModule;
void init();
private slots:
private:
void moduleAction_open(IPluginContentWidgetContext* context, const ModuleActionParameters &params);
};
#endif // CRUDTAB_H