pgLab/pglab/CrudTab.h
eelke 601d071d0f Proof of concept for having the context actions statically defined in the module.
Needs work for correctly placing the items in menu and on toolbar.
Old system still needs to be removed left in place to keep app useable.
2019-08-14 09:06:48 +02:00

62 lines
1.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, PluginModule *module,
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;
QAction *m_refreshAction = nullptr;
void initActions();
virtual QList<QAction *> actions() override;
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