From: <su...@us...> - 2010-06-18 14:25:24
|
Revision: 3573 http://tora.svn.sourceforge.net/tora/?rev=3573&view=rev Author: subik Date: 2010-06-18 14:25:18 +0000 (Fri, 18 Jun 2010) Log Message: ----------- RFE #2949032 tab with directories into the schema browser Modified Paths: -------------- trunk/tora/src/CMakeLists.txt trunk/tora/src/Makefile.am trunk/tora/src/tobrowser.cpp trunk/tora/src/tobrowser.h Added Paths: ----------- trunk/tora/src/tobrowserdirectorieswidget.cpp trunk/tora/src/tobrowserdirectorieswidget.h Modified: trunk/tora/src/CMakeLists.txt =================================================================== --- trunk/tora/src/CMakeLists.txt 2010-06-16 14:18:08 UTC (rev 3572) +++ trunk/tora/src/CMakeLists.txt 2010-06-18 14:25:18 UTC (rev 3573) @@ -109,6 +109,7 @@ tobrowsercodewidget.h tobrowsertriggerwidget.h tobrowserdblinkswidget.h + tobrowserdirectorieswidget.h # tobrowserschemabasewidget.h # toconf.h # toconfiguration.h @@ -281,6 +282,7 @@ tobrowsercodewidget.cpp tobrowsertriggerwidget.cpp tobrowserdblinkswidget.cpp + tobrowserdirectorieswidget.cpp # tobrowserschemabasewidget.cpp toconfiguration.cpp toconnection.cpp Modified: trunk/tora/src/Makefile.am =================================================================== --- trunk/tora/src/Makefile.am 2010-06-16 14:18:08 UTC (rev 3572) +++ trunk/tora/src/Makefile.am 2010-06-18 14:25:18 UTC (rev 3573) @@ -201,6 +201,7 @@ tobrowsercodewidget.cpp tobrowsercodewidget.h \ tobrowsertriggerwidget.cpp tobrowsertriggerwidget.h \ tobrowserdblinkswidget.cpp tobrowserdblinkswidget.h \ + tobrowserdirectorieswidget.cpp tobrowserdirectorieswidget.h \ toresultgrants.cpp toresultgrants.h \ migratetool/sqldeveloper.cpp migratetool/sqldeveloper.h \ migratetool/squirrelsql.cpp migratetool/squirrelsql.h \ @@ -434,6 +435,7 @@ moc_tobrowsercodewidget.cpp \ moc_tobrowsertriggerwidget.cpp \ moc_tobrowserdblinkswidget.cpp \ + moc_tobrowserdirectorieswidget.cpp \ moc_toresultgrants.cpp \ docklets/moc_toviewdirectory.cpp \ docklets/moc_toviewconnections.cpp \ Modified: trunk/tora/src/tobrowser.cpp =================================================================== --- trunk/tora/src/tobrowser.cpp 2010-06-16 14:18:08 UTC (rev 3572) +++ trunk/tora/src/tobrowser.cpp 2010-06-18 14:25:18 UTC (rev 3573) @@ -125,6 +125,7 @@ #include "tobrowsercodewidget.h" #include "tobrowsertriggerwidget.h" #include "tobrowserdblinkswidget.h" +#include "tobrowserdirectorieswidget.h" #include "tobrowseraccesswidget.h" #include "tobrowserschemawidget.h" @@ -665,6 +666,8 @@ #define TAB_DBLINK_INFO "DBLinkInfo" #define TAB_DBLINK_SYNONYMS "DBLinkSynonyms" +#define TAB_DIRECTORIES "Directories" + #define TAB_ACCESS "Access" #define TAB_ACCESS_CONTENT "AccessContent" #define TAB_ACCESS_USER "AccessUser" @@ -1354,6 +1357,11 @@ // "Display foreign synonyms"); // #endif +static toSQL SQLListDirectories("toBrowser:ListDirectories", + "SELECT DISTINCT directory_name FROM SYS.ALL_DIRECTORIES\n" + " ORDER BY directory_name", + "List database external directories"); + static toSQL SQLMySQLAccess("toBrowser:MySQLAcess", "SHOW TABLES FROM mysql", "Show access tables for MySQL databases", @@ -1719,6 +1727,43 @@ m_browsersMap[dblinkSplitter] = dblinkBrowserWidget; // #endif // dblink + + + directoriesSplitter = new QSplitter(Qt::Horizontal, m_mainTab); + directoriesSplitter->setObjectName(TAB_DIRECTORIES); + + QWidget * directoriesWidget = new QWidget(directoriesSplitter); + + QVBoxLayout * directoriesLayout = new QVBoxLayout; + directoriesLayout->setSpacing(0); + directoriesLayout->setContentsMargins(0, 0, 0, 0); + directoriesWidget->setLayout(directoriesLayout); + + directoriesView = new toBrowserSchemaTableView(directoriesWidget); + directoriesBrowserWidget = new toBrowserDirectoriesWidget(directoriesSplitter); + + directoriesLayout->addWidget(directoriesView); + directoriesView->setReadAll(true); + directoriesView->setSQL(SQLListDirectories); + directoriesView->resize(FIRST_WIDTH, directoriesView->height()); + + connect(directoriesView, + SIGNAL(selectionChanged()), + this, + SLOT(changeItem())); + connect(directoriesView, + SIGNAL(displayMenu(QMenu *)), + this, + SLOT(displayIndexMenu(QMenu *))); + + directoriesWidget->resize(FIRST_WIDTH, directoriesView->height()); + directoriesSplitter->setStretchFactor(directoriesSplitter->indexOf(directoriesView), 0); + directoriesSplitter->setStretchFactor(directoriesSplitter->indexOf(directoriesBrowserWidget), 1); + + m_objectsMap[directoriesSplitter] = directoriesView; + m_browsersMap[directoriesSplitter] = directoriesBrowserWidget; + + accessSplitter = new QSplitter(Qt::Horizontal, m_mainTab); accessSplitter->setObjectName(TAB_ACCESS); // m_mainTab->addTab(accessSplitter, tr("Access")); @@ -1933,12 +1978,9 @@ // enable/disable main tabs depending on DB m_mainTab->clear(); - addTab(tableSplitter, tr("T&ables"), - true); - addTab(viewSplitter, tr("&Views"), - !toIsMySQL(connection())); - addTab(indexSplitter, tr("Inde&xes"), - true); + 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"), @@ -1947,14 +1989,12 @@ // Starting with version 5.0 MySQL supports stored functions/procedures // If TOra is used a lot with older versions of MySQL the "true" parameter // should be enhanced with a check for MySQL version - addTab(codeSplitter, tr("Cod&e"), - true); + addTab(codeSplitter, tr("Cod&e"), true); addTab(triggerSplitter, tr("Tri&ggers"), !toIsMySQL(connection()) && !toIsPostgreSQL(connection())); - addTab(dblinkSplitter, tr("DBLinks"), - toIsOracle(connection())); - addTab(accessSplitter, tr("Access"), - toIsMySQL(connection())); + addTab(dblinkSplitter, tr("DBLinks"), toIsOracle(connection())); + addTab(directoriesSplitter, tr("Directories"), toIsOracle(connection())); + addTab(accessSplitter, tr("Access"), toIsMySQL(connection())); foreach (toBrowserBaseWidget * w, m_browsersMap.values()) w->changeConnection(); Modified: trunk/tora/src/tobrowser.h =================================================================== --- trunk/tora/src/tobrowser.h 2010-06-16 14:18:08 UTC (rev 3572) +++ trunk/tora/src/tobrowser.h 2010-06-18 14:25:18 UTC (rev 3573) @@ -74,6 +74,7 @@ class toBrowserCodeWidget; class toBrowserTriggerWidget; class toBrowserDBLinksWidget; +class toBrowserDirectoriesWidget; class toBrowserAccessWidget; class toBrowserBaseWidget; class toBrowserSchemaBase; @@ -148,6 +149,10 @@ QSplitter * dblinkSplitter; toBrowserSchemaTableView * dblinkView; toBrowserDBLinksWidget * dblinkBrowserWidget; + + QSplitter * directoriesSplitter; + toBrowserSchemaTableView * directoriesView; + toBrowserDirectoriesWidget * directoriesBrowserWidget; QSplitter * accessSplitter; toBrowserSchemaTableView * accessView; Added: trunk/tora/src/tobrowserdirectorieswidget.cpp =================================================================== --- trunk/tora/src/tobrowserdirectorieswidget.cpp (rev 0) +++ trunk/tora/src/tobrowserdirectorieswidget.cpp 2010-06-18 14:25:18 UTC (rev 3573) @@ -0,0 +1,79 @@ + +/* BEGIN_COMMON_COPYRIGHT_HEADER + * + * TOra - An Oracle Toolkit for DBA's and developers + * + * Shared/mixed copyright is held throughout files in this product + * + * Portions Copyright (C) 2000-2001 Underscore AB + * Portions Copyright (C) 2003-2005 Quest Software, Inc. + * Portions Copyright (C) 2004-2009 Numerous Other Contributors + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; only version 2 of + * the License is valid for this program. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * As a special exception, you have permission to link this program + * with the Oracle Client libraries and distribute executables, as long + * as you follow the requirements of the GNU GPL in regard to all of the + * software in the executable aside from Oracle client libraries. + * + * Specifically you are not permitted to link this program with the + * Qt/UNIX, Qt/Windows or Qt Non Commercial products of TrollTech. + * And you are not permitted to distribute binaries compiled against + * these libraries. + * + * You may link this product with any GPL'd Qt library. + * + * All trademarks belong to their respective owners. + * + * END_COMMON_COPYRIGHT_HEADER */ + +#include "toresulttableview.h" +#include "utils.h" + +#include "tobrowserdirectorieswidget.h" + +static toSQL SQLDirectoriesInfo("toBrowser:DirectoriesInformation", + "SELECT * FROM sys.all_directories\n" + " WHERE directory_name = :f1<char[101]>\n" + " ORDER BY owner, directory_name", + "Display information about directories by name"); + + + +toBrowserDirectoriesWidget::toBrowserDirectoriesWidget(QWidget * parent) + : toBrowserBaseWidget(parent) +{ + setObjectName("toBrowserDirectoriesWidget"); + + synonymsView = new toResultTableView(this); + synonymsView->setObjectName("directoriesView"); + synonymsView->setSQL(SQLDirectoriesInfo); + + changeConnection(); +} + +void toBrowserDirectoriesWidget::changeConnection() +{ + toBrowserBaseWidget::changeConnection(); + toConnection & c = toCurrentConnection(this); + if (toIsOracle(c)) + { + addTab(synonymsView, "&Directories"); + } + else + { + synonymsView->setVisible(false); + } +} Added: trunk/tora/src/tobrowserdirectorieswidget.h =================================================================== --- trunk/tora/src/tobrowserdirectorieswidget.h (rev 0) +++ trunk/tora/src/tobrowserdirectorieswidget.h 2010-06-18 14:25:18 UTC (rev 3573) @@ -0,0 +1,67 @@ + +/* BEGIN_COMMON_COPYRIGHT_HEADER + * + * TOra - An Oracle Toolkit for DBA's and developers + * + * Shared/mixed copyright is held throughout files in this product + * + * Portions Copyright (C) 2000-2001 Underscore AB + * Portions Copyright (C) 2003-2005 Quest Software, Inc. + * Portions Copyright (C) 2004-2009 Numerous Other Contributors + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; only version 2 of + * the License is valid for this program. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * As a special exception, you have permission to link this program + * with the Oracle Client libraries and distribute executables, as long + * as you follow the requirements of the GNU GPL in regard to all of the + * software in the executable aside from Oracle client libraries. + * + * Specifically you are not permitted to link this program with the + * Qt/UNIX, Qt/Windows or Qt Non Commercial products of TrollTech. + * And you are not permitted to distribute binaries compiled against + * these libraries. + * + * You may link this product with any GPL'd Qt library. + * + * All trademarks belong to their respective owners. + * + * END_COMMON_COPYRIGHT_HEADER */ + +#ifndef TOBROWSERDIRECTORIESWIDGET_H +#define TOBROWSERDIRECTORIESWIDGET_H + +#include "tobrowserbasewidget.h" + +class toResultTableView; + + +/*! \brief Directories browser for toBrowser tool. +See toBrowserBaseWidget for more info. +\author Petr Vanek <pe...@sc...> +*/ +class toBrowserDirectoriesWidget : public toBrowserBaseWidget +{ + Q_OBJECT + + toResultTableView *synonymsView; + + public: + toBrowserDirectoriesWidget(QWidget * parent); + + virtual void changeConnection(); + +}; + +#endif This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |