From: <ibr...@us...> - 2011-03-07 11:43:11
|
Revision: 3915 http://tora.svn.sourceforge.net/tora/?rev=3915&view=rev Author: ibre5041 Date: 2011-03-07 11:43:04 +0000 (Mon, 07 Mar 2011) Log Message: ----------- - toTool::hasAbout removed, was never called - toTool's static members moved into separate class ToolsSing in the future all the tools related global variables will be moved into this class Modified Paths: -------------- trunk/tora/src/toalert.h trunk/tora/src/toawr.cpp trunk/tora/src/toconfiguration.h trunk/tora/src/toglobalsetting.cpp trunk/tora/src/tomain.cpp trunk/tora/src/topreferences.cpp trunk/tora/src/totemplateprovider.cpp trunk/tora/src/totool.cpp trunk/tora/src/totool.h Modified: trunk/tora/src/toalert.h =================================================================== --- trunk/tora/src/toalert.h 2011-03-03 11:33:30 UTC (rev 3914) +++ trunk/tora/src/toalert.h 2011-03-07 11:43:04 UTC (rev 3915) @@ -61,7 +61,7 @@ { Q_OBJECT; -class pollTask : public toTask + class pollTask : public toTask { toAlert &Parent; Modified: trunk/tora/src/toawr.cpp =================================================================== --- trunk/tora/src/toawr.cpp 2011-03-03 11:33:30 UTC (rev 3914) +++ trunk/tora/src/toawr.cpp 2011-03-07 11:43:04 UTC (rev 3915) @@ -220,6 +220,7 @@ toAWRTool() : toTool(10003,"AWR") { } + virtual const char *menuItem() { return "AWR Report"; @@ -259,11 +260,10 @@ const char **toAWRTool::pictureXPM(void) { return const_cast<const char**>(awrtool_xpm); } - static toAWRTool AWRTool; toAWR::toAWR(/*toTool *tool,*/ QWidget *parent, toConnection &_connection) - : toToolWidget(/* *tool*/AWRTool, "simplequery.html", parent, _connection, "toAWR") + : toToolWidget(AWRTool, "simplequery.html", parent, _connection, "toAWR") { QToolBar *toolbar=toAllocBar(this, tr("Simple Query")); layout()->addWidget(toolbar); @@ -392,7 +392,7 @@ { try { - AWRTool.closeWindow(connection()); + AWRTool.closeWindow(connection()); } TOCATCH; Modified: trunk/tora/src/toconfiguration.h =================================================================== --- trunk/tora/src/toconfiguration.h 2011-03-03 11:33:30 UTC (rev 3914) +++ trunk/tora/src/toconfiguration.h 2011-03-07 11:43:04 UTC (rev 3915) @@ -23,6 +23,15 @@ typedef QMap<QString, QString> ConnectionColors; typedef QMapIterator<QString, QString> ConnectionColorsIterator; +/* + * Get access to the map of tools. Don't modify it. Observe that the index string is not + * the name of the tool but an internal key used to get tools sorted in the correct + * priority order. + // * @see Tools + // * @return A reference to the tool map. + */ +class toTool; +typedef ::Loki::SingletonHolder<QMap<QString, toTool *> > ToolsSing; class toConfigurationPrivate; class toConfiguration Modified: trunk/tora/src/toglobalsetting.cpp =================================================================== --- trunk/tora/src/toglobalsetting.cpp 2011-03-03 11:33:30 UTC (rev 3914) +++ trunk/tora/src/toglobalsetting.cpp 2011-03-07 11:43:04 UTC (rev 3915) @@ -424,21 +424,23 @@ { setupUi(this); - std::map<QString, toTool *> &tools = toTool::tools(); Enabled->setSorting(0); ToolsMap tMap(toConfigurationSingle::Instance().tools()); - for (std::map<QString, toTool *>::iterator i = tools.begin(); i != tools.end(); i++) + for (ToolsSing::ObjectType::iterator i = ToolsSing::Instance().begin(); + i != ToolsSing::Instance().end(); + ++i) { - if ((*i).second->menuItem()) - { - QString menuName = qApp->translate("toTool", (*i).second->menuItem()); - DefaultTool->addItem(menuName); - toTreeWidgetItem *item = new toTreeWidgetItem(Enabled, + toTool *pTool = i.value(); + if (pTool && pTool->menuItem()) + { + QString menuName = qApp->translate("toTool", pTool->menuItem()); + DefaultTool->addItem(menuName); + toTreeWidgetItem *item = new toTreeWidgetItem(Enabled, menuName, - (*i).second->name(), - (*i).first); - item->setSelected(tMap[(*i).first]); - } + pTool->name(), + i.key()); + item->setSelected(tMap[i.key()]); + } } // set the default tool to prevent overvritting when @@ -447,7 +449,7 @@ int currIx = -1; if (!defName.isEmpty()) { - toTool *def = tools[toConfigurationSingle::Instance().defaultTool()]; + toTool *def = ToolsSing::Instance().value(toConfigurationSingle::Instance().defaultTool()); currIx = DefaultTool->findText(def->name()); } DefaultTool->setCurrentIndex( (currIx == -1) ? 0 : currIx ); Modified: trunk/tora/src/tomain.cpp =================================================================== --- trunk/tora/src/tomain.cpp 2011-03-03 11:33:30 UTC (rev 3914) +++ trunk/tora/src/tomain.cpp 2011-03-07 11:43:04 UTC (rev 3915) @@ -152,18 +152,16 @@ enableConnectionActions(false); - std::map<QString, toTool *> &tools = toTool::tools(); - QString defName(toConfigurationSingle::Instance().defaultTool()); - for (std::map<QString, toTool *>::iterator k = tools.begin(); - k != tools.end(); - k++) + for (ToolsSing::ObjectType::iterator k = ToolsSing::Instance().begin(); + k != ToolsSing::Instance().end(); + ++k) { if(defName.isEmpty()) { - toConfigurationSingle::Instance().setDefaultTool((*k).first); - defName = (*k).first; + toConfigurationSingle::Instance().setDefaultTool(k.key()); + defName = k.key(); } - (*k).second->customSetup(); + k.value()->customSetup(); } Search = NULL; @@ -622,18 +620,18 @@ int lastPriorityPix = 0; int lastPriorityMenu = 0; - std::map<QString, toTool *> &tools = toTool::tools(); + ToolsSing::ObjectType &tools = ToolsSing::Instance(); ToolsMap cfgTools(toConfigurationSingle::Instance().tools()); - for (std::map<QString, toTool *>::iterator i = tools.begin(); - i != tools.end(); - i++) - { + for (ToolsSing::ObjectType::iterator i = ToolsSing::Instance().begin(); + i != ToolsSing::Instance().end(); + ++i) + { + toTool *pTool = i.value(); + QAction *toolAct = pTool->getAction(); + const QPixmap *pixmap = pTool->toolbarImage(); + const char *menuName = pTool->menuItem(); - QAction *toolAct = (*i).second->getAction(); - const QPixmap *pixmap = (*i).second->toolbarImage(); - const char *menuName = (*i).second->menuItem(); - // QString tmp = (*i).first; // tmp += CONF_TOOL_ENABLE; // if(toConfigurationSingle::Instance().globalConfig( @@ -641,13 +639,13 @@ // continue; // } // set the tools for the first run - if (!cfgTools.contains((*i).first)) - cfgTools[(*i).first] = true; + if (!cfgTools.contains(i.key())) + cfgTools[i.key()] = true; // only enabled tools are set - if (cfgTools[(*i).first] == false) + if (cfgTools[i.key()] == false) continue; - int priority = (*i).second->priority(); + int priority = pTool->priority(); if (priority / 100 != lastPriorityPix / 100 && pixmap) { #ifndef TO_NO_ORACLE @@ -1482,13 +1480,12 @@ { } - std::map<QString, toTool *> &tools = toTool::tools(); - for (std::map<QString, toTool *>::iterator i = tools.begin(); - i != tools.end(); - i++) + for (ToolsSing::ObjectType::iterator i = ToolsSing::Instance().begin(); + i != ToolsSing::Instance().end(); + ++i) { - - if (!(*i).second) + toTool *pTool = i.value(); + if (!pTool) continue; #ifdef TO_NO_ORACLE @@ -1496,18 +1493,18 @@ // hide all of the oracle tools that don't make sense if // compiled without it. if(conn) - (*i).second->setActionVisible(*conn); + pTool->setActionVisible(*conn); else - (*i).second->setActionVisible(false); + pTool->setActionVisible(false); #else if (!enabled) - (*i).second->enableAction(false); + pTool->enableAction(false); else { if(conn) - (*i).second->enableAction(*conn); + pTool->enableAction(*conn); else - (*i).second->enableAction(false); + pTool->enableAction(false); } #endif } @@ -1566,16 +1563,15 @@ void toMain::createDefault(void) { - std::map<QString, toTool *> &tools = toTool::tools(); - QString defName(toConfigurationSingle::Instance().defaultTool()); toTool *DefaultTool = NULL; - for (std::map<QString, toTool *>::iterator k = tools.begin(); - k != tools.end(); - k++) + + for (ToolsSing::ObjectType::iterator i = ToolsSing::Instance().begin(); + i != ToolsSing::Instance().end(); + ++i) { - if(defName.isEmpty() || defName == (*k).first) { - DefaultTool = (*k).second; + if(defName.isEmpty() || defName == i.key()) { + DefaultTool = i.value(); break; } } @@ -1596,11 +1592,9 @@ void toMain::editSQL(const QString &str) { - std::map<QString, toTool *> &tools = toTool::tools(); - - if (!SQLEditor.isNull() && tools[SQLEditor]) + if (!SQLEditor.isNull() && ToolsSing::Instance().contains(SQLEditor)) { - tools[SQLEditor]->createWindow(); + ToolsSing::Instance().value(SQLEditor)->createWindow(); emit sqlEditor(str); } } @@ -1657,9 +1651,9 @@ } if(!sheet) { - toTool *tool = toTool::tool("00010SQL Editor"); - if(tool) { - QWidget *win = tool->createWindow(); + toTool *pTool = ToolsSing::Instance().value("00010SQL Editor"); + if(pTool) { + QWidget *win = pTool->createWindow(); if(win) sheet = dynamic_cast<toWorksheet *>(win); } @@ -1898,11 +1892,11 @@ std::map<int, toConnection *>::iterator j = connMap.find(connid); if (j != connMap.end()) { - toTool *tool = toTool::tool(key); - if (tool) + toTool *pTool = ToolsSing::Instance().value(key); + if (pTool) { - QWidget *widget = tool->toolWindow(workspace(), *((*j).second)); - const QPixmap *icon = tool->toolbarImage(); + QWidget *widget = pTool->toolWindow(workspace(), *((*j).second)); + const QPixmap *icon = pTool->toolbarImage(); if (icon) widget->setWindowIcon(*icon); widget->show(); @@ -1911,7 +1905,7 @@ toToolWidget *tw = dynamic_cast<toToolWidget *>(widget); if (tw) { - toToolCaption(tw, tool->name()); + toToolCaption(tw, pTool->name()); tw->importData(data, prefix + ":Tools:" + QString::number(id)); toolWidgetAdded(tw); } Modified: trunk/tora/src/topreferences.cpp =================================================================== --- trunk/tora/src/topreferences.cpp 2011-03-03 11:33:30 UTC (rev 3914) +++ trunk/tora/src/topreferences.cpp 2011-03-07 11:43:04 UTC (rev 3915) @@ -140,25 +140,18 @@ TabSelection->setCurrentItem(0); - std::map<QString, toTool *> tools = toTool::tools(); - std::map<QString, toTool *> newSort; - { - for (std::map<QString, toTool *>::iterator i = tools.begin();i != tools.end();i++) - newSort[(*i).second->name()] = (*i).second; - } - - { - for (std::map<QString, toTool *>::iterator i = newSort.begin();i != newSort.end();i++) - { - QWidget *tab = (*i).second->configurationTab(Parent); - if (tab) - { - QString str(QString::fromLatin1(" ")); - str.append((*i).first); - addWidget(new QListWidgetItem(str, TabSelection), tab); - } - } - } + for (ToolsSing::ObjectType::iterator i = ToolsSing::Instance().begin(); + i != ToolsSing::Instance().end(); + ++i) + { + QWidget *tab = i.value()->configurationTab(Parent); + if (tab) + { + QString str(QString::fromLatin1(" ")); + str.append(i.value()->name()); + addWidget(new QListWidgetItem(str, TabSelection), tab); + } + } } TOCATCH; } Modified: trunk/tora/src/totemplateprovider.cpp =================================================================== --- trunk/tora/src/totemplateprovider.cpp 2011-03-03 11:33:30 UTC (rev 3914) +++ trunk/tora/src/totemplateprovider.cpp 2011-03-07 11:43:04 UTC (rev 3915) @@ -81,9 +81,9 @@ { try { - toTool *tool = toTool::tool(*ToolKey); - if (tool) - tool->createWindow(); + toTool *pTool = ToolsSing::Instance().value(*ToolKey, NULL); + if (pTool) + pTool->createWindow(); } catch (...) {} Modified: trunk/tora/src/totool.cpp =================================================================== --- trunk/tora/src/totool.cpp 2011-03-03 11:33:30 UTC (rev 3914) +++ trunk/tora/src/totool.cpp 2011-03-07 11:43:04 UTC (rev 3915) @@ -219,7 +219,7 @@ } } -std::map<QString, toTool *> *toTool::Tools; +// std::map<QString, toTool *> *toTool::Tools; // std::map<QCString, QString> *toTool::Configuration; @@ -234,15 +234,13 @@ ButtonPicture(0), toolAction(0) { - if (!Tools) - Tools = new std::map<QString, toTool *>; Key.sprintf("%05d%s", priority, name); - (*Tools)[Key] = this; + ToolsSing::Instance().insert(Key, this); } toTool::~toTool() { - Tools->erase(Key); + ToolsSing::Instance().erase(ToolsSing::Instance().find(Key)); delete ButtonPicture; } @@ -369,17 +367,6 @@ return NULL; } -toTool *toTool::tool(const QString &key) -{ - if (!Tools) - Tools = new std::map<QString, toTool *>; - std::map<QString, toTool *>::iterator i = Tools->find(key); - if (i == Tools->end()) - return NULL; - - return (*i).second; -} - void toTool::about(QWidget *) {} Modified: trunk/tora/src/totool.h =================================================================== --- trunk/tora/src/totool.h 2011-03-03 11:33:30 UTC (rev 3914) +++ trunk/tora/src/totool.h 2011-03-07 11:43:04 UTC (rev 3915) @@ -74,7 +74,7 @@ class toTool : public QObject { - Q_OBJECT + Q_OBJECT; private: /** * Name of the tool. @@ -89,11 +89,6 @@ */ int Priority; /** - * A map of @ref Key to tools. Used to keep track of the different tools - * available. - */ - static std::map<QString, toTool *> *Tools; - /** * Contain the pixmap of this tool if any. Used for the toolbar and menu entries. */ QPixmap *ButtonPicture; @@ -104,7 +99,7 @@ */ QAction *toolAction; - + protected: /** * Should return the xpm used to create the @ref ButtonPicture. @@ -210,36 +205,8 @@ * @param parent The parent widget of the about dialog. */ virtual void about(QWidget *parent); - /** Indicate whether or not this tool has an about dialog. - */ - virtual bool hasAbout(void) - { - return false; - } /** - * Get access to the map of tools. Don't modify it. Observe that the index string is not - * the name of the tool but an internal key used to get tools sorted in the correct - * priority order. - * - * @see Tools - * @return A reference to the tool map. - */ - static std::map<QString, toTool *> &tools(void) - { - if (!Tools) - Tools = new std::map<QString, toTool *>; - return *Tools; - } - /** - * Get a pointer to the tool with a specified key. - * - * @see Tools - * @return A pointer to the tool or NULL if tool doesn't exist. - */ - static toTool *tool(const QString &key); - - /** * Get tool specific settings. * * Setting names are hierachical separated by ':' instead of '/' usually used @@ -321,6 +288,8 @@ }; + + #include "tohelp.h" /** @@ -389,7 +358,7 @@ */ class toToolWidget : public QWidget, public toHelpContext, public toConnectionWidget { - Q_OBJECT + Q_OBJECT; toTimer *Timer; toTool &Tool; private slots: This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |