Remove designer DatabaseForm generating widgets from code.
Large part of toolbar and menu missing these will be recreated through plugin system.
This commit is contained in:
parent
dc8a052544
commit
d86d278350
4 changed files with 77 additions and 292 deletions
|
|
@ -1,27 +1,31 @@
|
|||
#include "DatabaseWindow.h"
|
||||
#include "ui_DatabaseWindow.h"
|
||||
//#include "ui_DatabaseWindow.h"
|
||||
#include "TablesPage.h"
|
||||
#include "FunctionsPage.h"
|
||||
#include "SequencesPage.h"
|
||||
|
||||
#include <QStandardPaths>
|
||||
#include <QFileDialog>
|
||||
#include <QMessageBox>
|
||||
#include <QTextTable>
|
||||
#include <QElapsedTimer>
|
||||
#include <algorithm>
|
||||
#include <QCloseEvent>
|
||||
#include <QMetaObject>
|
||||
#include <QMetaMethod>
|
||||
#include "QueryTab.h"
|
||||
#include "util.h"
|
||||
#include "plugin_support/PluginContentWidget.h"
|
||||
#include "plugin_support/PluginContentWidgetContextBase.h"
|
||||
#include "CodeGenerator.h"
|
||||
#include "MasterController.h"
|
||||
#include "ScopeGuard.h"
|
||||
#include "EditTableWidget.h"
|
||||
#include "plugin_support/PluginContentWidgetContextBase.h"
|
||||
#include "TaskExecutor.h"
|
||||
#include <QApplication>
|
||||
#include <QCloseEvent>
|
||||
#include <QElapsedTimer>
|
||||
#include <QFileDialog>
|
||||
#include <QMenuBar>
|
||||
#include <QMessageBox>
|
||||
#include <QMetaMethod>
|
||||
#include <QMetaObject>
|
||||
#include <QStandardPaths>
|
||||
#include <QStatusBar>
|
||||
#include <QTextTable>
|
||||
#include <QToolBar>
|
||||
#include <QVBoxLayout>
|
||||
#include <algorithm>
|
||||
|
||||
namespace pg = Pgsql;
|
||||
|
||||
|
|
@ -111,11 +115,32 @@ void LMainWindow::addMenuAction(const MenuAction &ma)
|
|||
|
||||
DatabaseWindow::DatabaseWindow(MasterController *master, QWidget *parent)
|
||||
: LMainWindow(parent)
|
||||
, ui(new Ui::DatabaseWindow)
|
||||
// , ui(new Ui::DatabaseWindow)
|
||||
, m_masterController(master)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->tabWidget->setDocumentMode(true);
|
||||
// ui->setupUi(this);
|
||||
// ui->tabWidget->setDocumentMode(true);
|
||||
|
||||
// auto centralWidget = new QWidget(this);
|
||||
// auto verticalLayout_3 = new QVBoxLayout(centralWidget);
|
||||
// verticalLayout_3->setSpacing(4);
|
||||
// verticalLayout_3->setContentsMargins(4, 4, 4, 4);
|
||||
|
||||
m_tabWidget = new QTabWidget(this);
|
||||
m_tabWidget->setObjectName(QString::fromUtf8("tabWidget"));
|
||||
m_tabWidget->setDocumentMode(true);
|
||||
// verticalLayout_3->addWidget(m_tabWidget);
|
||||
|
||||
setCentralWidget(m_tabWidget);
|
||||
|
||||
auto menuBar = new QMenuBar(this);
|
||||
setMenuBar(menuBar);
|
||||
|
||||
m_mainToolBar = new QToolBar(this);
|
||||
addToolBar(Qt::TopToolBarArea, m_mainToolBar);
|
||||
|
||||
auto statusBar = new QStatusBar(this);
|
||||
setStatusBar(statusBar);
|
||||
|
||||
m_context = new DatabaseWindowContentContext(this);
|
||||
|
||||
|
|
@ -123,12 +148,14 @@ DatabaseWindow::DatabaseWindow(MasterController *master, QWidget *parent)
|
|||
this, &DatabaseWindow::catalogLoaded);
|
||||
|
||||
initModuleMenus();
|
||||
|
||||
QMetaObject::connectSlotsByName(this);
|
||||
}
|
||||
|
||||
DatabaseWindow::~DatabaseWindow()
|
||||
{
|
||||
delete m_context;
|
||||
delete ui;
|
||||
// delete ui;
|
||||
}
|
||||
|
||||
QueryTab* DatabaseWindow::newSqlPage()
|
||||
|
|
@ -143,7 +170,7 @@ QueryTab* DatabaseWindow::newSqlPage()
|
|||
void DatabaseWindow::newCreateTablePage()
|
||||
{
|
||||
auto w = new EditTableWidget(m_database, this);
|
||||
ui->tabWidget->addTab(w, "Create table");
|
||||
m_tabWidget->addTab(w, "Create table");
|
||||
}
|
||||
|
||||
void DatabaseWindow::newCodeGenPage(QString query, std::shared_ptr<const Pgsql::Result> dbres)
|
||||
|
|
@ -155,7 +182,7 @@ void DatabaseWindow::newCodeGenPage(QString query, std::shared_ptr<const Pgsql::
|
|||
|
||||
QueryTab *DatabaseWindow::GetActiveQueryTab()
|
||||
{
|
||||
QWidget *widget = ui->tabWidget->currentWidget();
|
||||
QWidget *widget = m_tabWidget->currentWidget();
|
||||
QueryTab *qt = dynamic_cast<QueryTab*>(widget);
|
||||
return qt;
|
||||
}
|
||||
|
|
@ -187,25 +214,25 @@ void DatabaseWindow::catalogLoaded()
|
|||
|
||||
auto tt = new TablesPage(m_context, this);
|
||||
tt->setCatalog(m_database->catalog());
|
||||
ui->tabWidget->addTab(tt, "Tables");
|
||||
m_tabWidget->addTab(tt, "Tables");
|
||||
|
||||
auto pg_cat_tables = new TablesPage(m_context, this);
|
||||
pg_cat_tables->setNamespaceFilter(TablesTableModel::PgCatalog);
|
||||
pg_cat_tables->setCatalog(m_database->catalog());
|
||||
ui->tabWidget->addTab(pg_cat_tables, "pg_catalog");
|
||||
m_tabWidget->addTab(pg_cat_tables, "pg_catalog");
|
||||
|
||||
auto info_schema_tables = new TablesPage(m_context, this);
|
||||
info_schema_tables->setNamespaceFilter(TablesTableModel::InformationSchema);
|
||||
info_schema_tables->setCatalog(m_database->catalog());
|
||||
ui->tabWidget->addTab(info_schema_tables, "information_schema");
|
||||
m_tabWidget->addTab(info_schema_tables, "information_schema");
|
||||
|
||||
auto functions_page = new FunctionsPage(this);
|
||||
functions_page->setCatalog(m_database->catalog());
|
||||
ui->tabWidget->addTab(functions_page, "Functions");
|
||||
m_tabWidget->addTab(functions_page, "Functions");
|
||||
|
||||
auto sequences_page = new SequencesPage(this);
|
||||
sequences_page->setCatalog(m_database->catalog());
|
||||
ui->tabWidget->addTab(sequences_page, "Sequences");
|
||||
m_tabWidget->addTab(sequences_page, "Sequences");
|
||||
|
||||
newSqlPage();
|
||||
newCreateTablePage();
|
||||
|
|
@ -269,7 +296,7 @@ void DatabaseWindow::on_actionExport_data_triggered()
|
|||
void DatabaseWindow::on_actionClose_triggered()
|
||||
{
|
||||
//close();
|
||||
on_tabWidget_tabCloseRequested(ui->tabWidget->currentIndex());
|
||||
on_tabWidget_tabCloseRequested(m_tabWidget->currentIndex());
|
||||
}
|
||||
|
||||
void DatabaseWindow::on_actionAbout_triggered()
|
||||
|
|
@ -338,12 +365,13 @@ void DatabaseWindow::on_actionNew_SQL_triggered()
|
|||
|
||||
void DatabaseWindow::on_tabWidget_tabCloseRequested(int index)
|
||||
{
|
||||
QWidget *widget = ui->tabWidget->widget(index);
|
||||
QWidget *widget = m_tabWidget->widget(index);
|
||||
PluginContentWidget *plg_page = dynamic_cast<PluginContentWidget*>(widget);
|
||||
if (plg_page) {
|
||||
if (plg_page->canClose()) {
|
||||
removePage(plg_page);
|
||||
ui->tabWidget->removeTab(index);
|
||||
m_tabWidget->removeTab(index);
|
||||
delete plg_page;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
|
@ -351,11 +379,14 @@ void DatabaseWindow::on_tabWidget_tabCloseRequested(int index)
|
|||
// to PlgPage
|
||||
QueryTab *qt = dynamic_cast<QueryTab*>(widget);
|
||||
if (qt && qt->canClose()) {
|
||||
ui->tabWidget->removeTab(index);
|
||||
m_tabWidget->removeTab(index);
|
||||
delete qt;
|
||||
}
|
||||
else if (index > 0) {
|
||||
ui->tabWidget->removeTab(index);
|
||||
m_tabWidget->removeTab(index);
|
||||
delete widget;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -412,22 +443,22 @@ void DatabaseWindow::addToolBarButtonsForPage(PluginContentWidget *page)
|
|||
for (auto act : actions) {
|
||||
list.append(act);
|
||||
}
|
||||
ui->mainToolBar->addActions(list);
|
||||
m_mainToolBar->addActions(list);
|
||||
}
|
||||
|
||||
void DatabaseWindow::removeToolBarButtonsForPage(PluginContentWidget *page)
|
||||
{
|
||||
std::vector<QAction*> actions = page->getToolbarActions();
|
||||
for (auto act : actions) {
|
||||
ui->mainToolBar->removeAction(act);
|
||||
m_mainToolBar->removeAction(act);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void DatabaseWindow::addPage(PluginContentWidget* page, QString caption)
|
||||
{
|
||||
ui->tabWidget->addTab(page, caption);
|
||||
ui->tabWidget->setCurrentWidget(page);
|
||||
m_tabWidget->addTab(page, caption);
|
||||
m_tabWidget->setCurrentWidget(page);
|
||||
|
||||
//addToolBarButtonsForPage(page);
|
||||
}
|
||||
|
|
@ -447,7 +478,7 @@ void DatabaseWindow::on_tabWidget_currentChanged(int index)
|
|||
// add buttons of new page
|
||||
PluginContentWidget * page = nullptr;
|
||||
if (index >= 0) {
|
||||
QWidget *widget = ui->tabWidget->widget(index);
|
||||
QWidget *widget = m_tabWidget->widget(index);
|
||||
page = dynamic_cast<PluginContentWidget*>(widget);
|
||||
if (page) {
|
||||
addToolBarButtonsForPage(page);
|
||||
|
|
@ -467,14 +498,14 @@ void DatabaseWindow::on_actionGenerate_code_triggered()
|
|||
|
||||
void DatabaseWindow::setTabCaptionForWidget(QWidget *widget, const QString &caption, const QString &hint)
|
||||
{
|
||||
auto index = ui->tabWidget->indexOf(widget);
|
||||
ui->tabWidget->setTabText(index, caption);
|
||||
ui->tabWidget->setTabToolTip(index, hint);
|
||||
auto index = m_tabWidget->indexOf(widget);
|
||||
m_tabWidget->setTabText(index, caption);
|
||||
m_tabWidget->setTabToolTip(index, hint);
|
||||
}
|
||||
|
||||
void DatabaseWindow::setTabIcon(QWidget *widget, const QString &iconname)
|
||||
{
|
||||
auto index = ui->tabWidget->indexOf(widget);
|
||||
auto index = m_tabWidget->indexOf(widget);
|
||||
auto n = ":/icons/16x16/" + iconname;
|
||||
ui->tabWidget->setTabIcon(index, QIcon(n));
|
||||
m_tabWidget->setTabIcon(index, QIcon(n));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue