From: <su...@us...> - 2008-12-12 15:20:20
|
Revision: 3118 http://tora.svn.sourceforge.net/tora/?rev=3118&view=rev Author: subik Date: 2008-12-12 15:20:16 +0000 (Fri, 12 Dec 2008) Log Message: ----------- schema browser progress - table browser: DB supported features, new table-triggers tab for mysql Modified Paths: -------------- trunk/tora/src/tobrowser.cpp trunk/tora/src/tobrowser.h trunk/tora/src/tobrowsertablewidget.cpp Modified: trunk/tora/src/tobrowser.cpp =================================================================== --- trunk/tora/src/tobrowser.cpp 2008-12-12 14:19:03 UTC (rev 3117) +++ trunk/tora/src/tobrowser.cpp 2008-12-12 15:20:16 UTC (rev 3118) @@ -1732,8 +1732,6 @@ Schema->setFocus(); -// setNewFilter(NULL); - changeConnection(); connect(this, SIGNAL(connectionChange()), @@ -1888,52 +1886,25 @@ // enable/disable main tabs depending on DB m_mainTab->clear(); - m_mainTab->addTab(tableSplitter, tr("T&ables")); - m_mainTab->addTab(viewSplitter, tr("&Views")); - m_mainTab->addTab(indexSplitter, tr("Inde&xes")); + addTab(tableSplitter, tr("T&ables"), + true); + addTab(viewSplitter, tr("&Views"), + !toIsMySQL(connection())); + addTab(indexSplitter, tr("Inde&xes"), + true); + addTab(sequenceSplitter, tr("Se&quences"), + toIsOracle(connection()) || toIsPostgreSQL(connection())); + addTab(synonymSplitter, tr("S&ynonyms"), + toIsOracle(connection())); + addTab(codeSplitter, tr("Cod&e"), + !toIsMySQL(connection())); + addTab(triggerSplitter, tr("Tri&ggers"), + !toIsMySQL(connection())); + addTab(dblinkSplitter, tr("DBLinks"), + toIsOracle(connection())); + addTab(accessSplitter, tr("Access"), + toIsMySQL(connection())); - if (toIsOracle(connection()) || toIsPostgreSQL(connection())) - { - sequenceSplitter->show(); - m_mainTab->addTab(sequenceSplitter, tr("Se&quences")); - } - else - sequenceSplitter->hide(); - - if (toIsOracle(connection())) - { - synonymSplitter->show(); - m_mainTab->addTab(synonymSplitter, tr("S&ynonyms")); - } - else - synonymSplitter->hide(); - - if (!toIsMySQL(connection())) - { - codeSplitter->show(); - m_mainTab->addTab(codeSplitter, tr("Cod&e")); - } - else - codeSplitter->hide(); - - m_mainTab->addTab(triggerSplitter, tr("Tri&ggers")); - - if (toIsOracle(connection())) - { - dblinkSplitter->show(); - m_mainTab->addTab(dblinkSplitter, tr("DBLinks")); - } - else - dblinkSplitter->hide(); - - if (toIsMySQL(connection())) - { - accessSplitter->show(); - m_mainTab->addTab(accessSplitter, tr("Access")); - } - else - accessSplitter->hide(); - foreach (toBrowserBaseWidget * w, m_browsersMap.values()) w->changeConnection(); @@ -1943,6 +1914,14 @@ refresh(); } +void toBrowser::addTab(QSplitter * page, const QString & label, bool enable) +{ + page->setVisible(enable); + if (!enable) + return; + m_mainTab->addTab(page, label); +} + QString toBrowser::currentItemText(int col) { QSplitter * ix = qobject_cast<QSplitter*>(m_mainTab->currentWidget()); Modified: trunk/tora/src/tobrowser.h =================================================================== --- trunk/tora/src/tobrowser.h 2008-12-12 14:19:03 UTC (rev 3117) +++ trunk/tora/src/tobrowser.h 2008-12-12 15:20:16 UTC (rev 3118) @@ -153,19 +153,8 @@ QMap<QSplitter*,toResultTableView*> m_objectsMap; QMap<QSplitter*,toBrowserBaseWidget*> m_browsersMap; - -// QString SecondText; -// toResultTableView *FirstTab; -// toResult *SecondTab; toBrowserFilter *Filter; -// QWidget *CurrentTop; -// toResultData *ViewContent; -// toResultData *TableContent; -// toResultData *AccessContent; - -// std::map<QString, toResultTableView *> Map; -// std::map<QString, toResult *> SecondMap; void setNewFilter(toBrowserFilter *filter); QString schema(void); @@ -183,6 +172,14 @@ */ QString currentItemText(int col = 1); + /*! \brief Add a page to the m_mainTab widget; + \see changeConnection(). + \param page a QSplitter main widget (tableSplitter etc.) + \param label text to display as a tab title + \param enable true when it should be visible. False on missing feature. + */ + void addTab(QSplitter * page, const QString & label, bool enable); + QAction *refreshAct; QAction *FilterButton; QAction *clearFilterAct; @@ -249,9 +246,9 @@ void addUser(void); void dropUser(void); - private slots: - //! \brief Handle main tabwidget and its tabs switch - void mainTab_currentChanged(int); +private slots: + //! \brief Handle main tabwidget and its tabs switch + void mainTab_currentChanged(int); protected: virtual void closeEvent(QCloseEvent *); Modified: trunk/tora/src/tobrowsertablewidget.cpp =================================================================== --- trunk/tora/src/tobrowsertablewidget.cpp 2008-12-12 14:19:03 UTC (rev 3117) +++ trunk/tora/src/tobrowsertablewidget.cpp 2008-12-12 15:20:16 UTC (rev 3118) @@ -282,6 +282,14 @@ "", "", "PostgreSQL"); +static toSQL SQLTableTriggerMysql("toBrowser:TableTrigger", + "SELECT * FROM INFORMATION_SCHEMA.TRIGGERS\n" + " WHERE event_object_schema = :f1<char[101]>\n" + " AND event_object_table = :f2<char[101]>\n" + " ORDER BY trigger_name\n", + "", + "5.0", + "MySQL"); static toSQL SQLTableInfoMysql("toBrowser:TableInformation", "show table status from `:own<noquote>` like :tab", "Display information about a table", @@ -407,14 +415,17 @@ if (toIsOracle(c) || toIsPostgreSQL(c)) addTab(constraintsView, "C&onstraints"); else - constraintsView->setVisible(false); + constraintsView->hide(); if (toIsOracle(c)) addTab(referencesView, "&References"); else - referencesView->setVisible(false); + referencesView->hide(); - addTab(grantsView, "&Grants"); + if (!toIsMySQL(c)) + addTab(grantsView, "&Grants"); + else + grantsView->hide(); addTab(triggersView, "Triggers"); @@ -425,7 +436,7 @@ if (toIsSapDB(c)) addTab(statisticsView, "Statistics"); else - statisticsView->setVisible(false); + statisticsView->hide(); if (toIsOracle(c)) { @@ -434,11 +445,14 @@ } else { - partitionsView->setVisible(false); - extentsView->setVisible(false); + partitionsView->hide(); + extentsView->hide(); } - addTab(extractView, "Script"); + if (!toIsMySQL(c)) + addTab(extractView, "Script"); + else + extractView->hide(); } void toBrowserTableWidget::enableConstraints(bool enable) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |