From: <tom...@us...> - 2010-11-07 17:29:11
|
Revision: 3800 http://tora.svn.sourceforge.net/tora/?rev=3800&view=rev Author: tomasstraupis Date: 2010-11-07 17:29:03 +0000 (Sun, 07 Nov 2010) Log Message: ----------- Change deprecated toNoBlockQuery to toEventQuery. Modified Paths: -------------- trunk/tora/doc/help/template.html trunk/tora/doc/help/template.texi trunk/tora/src/totemplate.cpp trunk/tora/src/totemplate.h trunk/tora/src/towaitevents.cpp trunk/tora/src/towaitevents.h Modified: trunk/tora/doc/help/template.html =================================================================== --- trunk/tora/doc/help/template.html 2010-11-03 20:11:46 UTC (rev 3799) +++ trunk/tora/doc/help/template.html 2010-11-07 17:29:03 UTC (rev 3800) @@ -39,7 +39,7 @@ <p><a name="index-Template-Help-36"></a> This tool provides help for writing PL/SQL and SQL queries by allowing a non obtrusive database browser and help lookup. - <p>The template help is implemented as a docked window if these are available. They are available in Qt 3.0 (Released only as beta as of 2001-07-11) and KDE. + <p>The template help is implemented as a docked window. <p>The help browser are divided into two panes. The top pane displays a tree view of the available documentation. The lower is used to display more information about the selected item in the top pane and it's content may differ depending on what is selected. Modified: trunk/tora/doc/help/template.texi =================================================================== --- trunk/tora/doc/help/template.texi 2010-11-03 20:11:46 UTC (rev 3799) +++ trunk/tora/doc/help/template.texi 2010-11-07 17:29:03 UTC (rev 3800) @@ -4,7 +4,7 @@ This tool provides help for writing PL/SQL and SQL queries by allowing a non obtrusive database browser and help lookup. -The template help is implemented as a docked window if these are available. They are available in Qt 3.0 (Released only as beta as of 2001-07-11) and KDE. +The template help is implemented as a docked window. The help browser are divided into two panes. The top pane displays a tree view of the available documentation. The lower is used to display more information about the selected item in the top pane and it's content may differ depending on what is selected. Modified: trunk/tora/src/totemplate.cpp =================================================================== --- trunk/tora/src/totemplate.cpp 2010-11-03 20:11:46 UTC (rev 3799) +++ trunk/tora/src/totemplate.cpp 2010-11-07 17:29:03 UTC (rev 3800) @@ -45,7 +45,7 @@ #include "toconnection.h" #include "tohelp.h" #include "tomarkedtext.h" -#include "tonoblockquery.h" +#include "toeventquery.h" #include "toresultview.h" #include "totemplate.h" #include "totool.h" @@ -831,7 +831,6 @@ : Parent(parent) { Query = NULL; - connect(&Poll, SIGNAL(timeout()), this, SLOT(poll())); } void toTemplateSQL::expand(void) @@ -847,45 +846,45 @@ { delete Query; Query = NULL; - Query = new toNoBlockQuery(Parent->connection(), toQuery::Background, + Query = new toEventQuery(Parent->connection(), toQuery::Background, Parent->SQL, Parent->parameters()); - Poll.start(100); + connect(Query, SIGNAL(dataAvailable()), this, SLOT(poll())); + connect(Query, SIGNAL(done()), this, SLOT(queryDone())); + Query->readAll(); // indicate that all records should be fetched + Query->start(); } TOCATCH } void toTemplateSQLObject::poll(void) { + if (QApplication::activeModalWidget()) // Template is never in widget + return; + try { - if (QApplication::activeModalWidget()) // Template is never in widget - return ; - if (Query && Query->poll()) + toQDescList desc = Query->describe(); + while (Query->hasMore()) { - toQDescList desc = Query->describe(); - while (Query->poll() && !Query->eof()) - { - toTreeWidgetItem *item = Parent->createChild(Query->readValue()); - for (unsigned int j = 1;j < desc.size();j++) - item->setText(j, Query->readValue()); - } - if (Query->eof()) - { - delete Query; - Query = NULL; - Poll.stop(); - } + toTreeWidgetItem *item = Parent->createChild(Query->readValue()); + for (unsigned int j = 1; j < desc.size(); j++) + item->setText(j, Query->readValue()); } } catch (const QString &str) { delete Query; Query = NULL; - Poll.stop(); toStatusMessage(str); } -} +} // poll +void toTemplateSQLObject::queryDone(void ) +{ + delete Query; + Query = NULL; +} // queryDone + toTemplateSQLObject::~toTemplateSQLObject() { delete Query; Modified: trunk/tora/src/totemplate.h =================================================================== --- trunk/tora/src/totemplate.h 2010-11-03 20:11:46 UTC (rev 3799) +++ trunk/tora/src/totemplate.h 2010-11-07 17:29:03 UTC (rev 3800) @@ -42,8 +42,6 @@ #ifndef TOTEMPLATE_H #define TOTEMPLATE_H -#include "config.h" -#include "tobackground.h" #include "tohelp.h" #include "toresultview.h" // due the TODock @@ -69,7 +67,7 @@ class toListView; class toTemplateItem; class toTemplateProvider; -class toNoBlockQuery; +class toEventQuery; /** Not part of the API. * @internal @@ -273,8 +271,7 @@ { Q_OBJECT; - toNoBlockQuery *Query; - toBackground Poll; + toEventQuery *Query; toTemplateSQL *Parent; toTemplateSQLObject(toTemplateSQL *parent); virtual ~toTemplateSQLObject(); @@ -283,6 +280,7 @@ friend class toTemplateSQL; private slots: void poll(void); + void queryDone(void); }; /** This class represent an item that when expanded will execute an SQL statement Modified: trunk/tora/src/towaitevents.cpp =================================================================== --- trunk/tora/src/towaitevents.cpp 2010-11-03 20:11:46 UTC (rev 3799) +++ trunk/tora/src/towaitevents.cpp 2010-11-07 17:29:03 UTC (rev 3800) @@ -43,7 +43,7 @@ #include "toconf.h" #include "toconnection.h" -#include "tonoblockquery.h" +#include "toeventquery.h" #include "topiechart.h" #include "toresultbar.h" #include "toresultview.h" @@ -212,7 +212,6 @@ AbsolutePie->setSizePolicy(QSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding)); AbsolutePie->showLegend(false); layout->addWidget(AbsolutePie, 1, 1); - connect(&Poll, SIGNAL(timeout()), this, SLOT(poll())); Query = NULL; start(); try @@ -236,9 +235,7 @@ splitter->restoreState(ba); LastTime = 0; - - First = true; ShowTimes = false; } @@ -276,7 +273,6 @@ Relative.clear(); RelativeTimes.clear(); Enabled.clear(); - Poll.stop(); delete Query; Query = NULL; refresh(); @@ -410,153 +406,150 @@ void toWaitEvents::poll(void) { + if (!toCheckModal(this)) + return; + try { - if (!toCheckModal(this)) - return ; - if (Query && Query->poll()) + while (Query->hasMore()) { - while (Query->poll() && !Query->eof()) + QString cur = Query->readValueNull(); + Now = Query->readValueNull(); + if (First) { - QString cur = Query->readValueNull(); - Now = Query->readValueNull(); - if (First) - { - Labels.insert(Labels.end(), cur); - Current.insert(Current.end(), Query->readValueNull().toDouble()); - CurrentTimes.insert(CurrentTimes.end(), Query->readValueNull().toDouble()); - } - else - { - double val = Query->readValueNull().toDouble(); - double tim = Query->readValueNull().toDouble(); - std::list<double>::iterator i = Current.begin(); - std::list<double>::iterator j = CurrentTimes.begin(); - std::list<QString>::iterator k = Labels.begin(); - while (i != Current.end() && j != CurrentTimes.end() && k != Labels.end()) - { - if (*k == cur) - { - *i = val; - *j = tim; - break; - } - i++; - j++; - k++; - } - } - Query->readValueNull().toDouble(); + Labels.insert(Labels.end(), cur); + Current.insert(Current.end(), Query->readValueNull().toDouble()); + CurrentTimes.insert(CurrentTimes.end(), Query->readValueNull().toDouble()); } - if (Query->eof()) + else { - std::map<QString, bool> types; - toTreeWidgetItem *item = NULL; + double val = Query->readValueNull().toDouble(); + double tim = Query->readValueNull().toDouble(); + std::list<double>::iterator i = Current.begin(); + std::list<double>::iterator j = CurrentTimes.begin(); + std::list<QString>::iterator k = Labels.begin(); + while (i != Current.end() && j != CurrentTimes.end() && k != Labels.end()) { - for (toTreeWidgetItem *ci = Types->firstChild();ci;ci = ci->nextSibling()) + if (*k == cur) { - types[ci->text(1)] = true; - item = ci; + *i = val; + *j = tim; + break; } + i++; + j++; + k++; } + } + Query->readValueNull().toDouble(); + } + } + catch (const QString &exc) + { + delete Query; + Query = NULL; + toStatusMessage(exc); + } +} - { - std::list<double>::iterator j = CurrentTimes.begin(); - for (std::list<QString>::iterator i = Labels.begin();i != Labels.end();i++, j++) - { - if ((*j) != 0 && types.find(*i) == types.end()) - { - item = new toWaitEventsItem(Types, item, *i); - item->setSelected(First && HideMap.find(*i) == HideMap.end()); - types[*i] = true; - } - } - } - if (First) - { - Delta->setLabels(Labels); - DeltaTimes->setLabels(Labels); - First = false; - } +void toWaitEvents::queryDone(void ) +{ + std::map<QString, bool> types; + toTreeWidgetItem *item = NULL; + { + for (toTreeWidgetItem *ci = Types->firstChild(); ci; ci = ci->nextSibling()) + { + types[ci->text(1)] = true; + item = ci; + } + } - time_t now = time(NULL); + { + std::list<double>::iterator j = CurrentTimes.begin(); + for (std::list<QString>::iterator i = Labels.begin();i != Labels.end();i++, j++) + { + if ((*j) != 0 && types.find(*i) == types.end()) + { + item = new toWaitEventsItem(Types, item, *i); + item->setSelected(First && HideMap.find(*i) == HideMap.end()); + types[*i] = true; + } + } + } + if (First) + { + Delta->setLabels(Labels); + DeltaTimes->setLabels(Labels); + First = false; + } - for (toTreeWidgetItem *ci = Types->firstChild();ci;ci = ci->nextSibling()) - { - toWaitEventsItem * item = dynamic_cast<toWaitEventsItem *>(ci); - if (item) - { - int col = 0; - std::list<double>::iterator i = Current.begin(); - std::list<double>::iterator j = CurrentTimes.begin(); - std::list<QString>::iterator k = Labels.begin(); - while (i != Current.end() && j != CurrentTimes.end() && k != Labels.end()) - { - if (item->text(1) == *k) - { - item->setColor(col); - item->setText(2, QString::number((*i - item->text(3).toDouble()) / std::max(int(now - LastTime), 1))); - item->setText(3, QString::number(*i)); - item->setText(4, QString::number((*j - item->text(5).toDouble()) / std::max(int(now - LastTime), 1))); - item->setText(5, QString::number(*j)); - break; - } - col++; - i++; - j++; - k++; - } - } - } + time_t now = time(NULL); - Relative.clear(); - RelativeTimes.clear(); - - std::list<double>::iterator j = LastCurrent.begin(); - std::list<double>::iterator i = Current.begin(); - while (i != Current.end() && j != LastCurrent.end()) + for (toTreeWidgetItem *ci = Types->firstChild(); ci; ci = ci->nextSibling()) + { + toWaitEventsItem * item = dynamic_cast<toWaitEventsItem *>(ci); + if (item) + { + int col = 0; + std::list<double>::iterator i = Current.begin(); + std::list<double>::iterator j = CurrentTimes.begin(); + std::list<QString>::iterator k = Labels.begin(); + while (i != Current.end() && j != CurrentTimes.end() && k != Labels.end()) + { + if (item->text(1) == *k) { - Relative.insert(Relative.end(), ((*i) - (*j)) / std::max(int(now - LastTime), 1)); - i++; - j++; + item->setColor(col); + item->setText(2, QString::number((*i - item->text(3).toDouble()) / std::max(int(now - LastTime), 1))); + item->setText(3, QString::number(*i)); + item->setText(4, QString::number((*j - item->text(5).toDouble()) / std::max(int(now - LastTime), 1))); + item->setText(5, QString::number(*j)); + break; } + col++; + i++; + j++; + k++; + } + } + } - j = LastTimes.begin(); - i = CurrentTimes.begin(); - while (i != CurrentTimes.end() && j != LastTimes.end()) - { - RelativeTimes.insert(RelativeTimes.end(), ((*i) - (*j)) / std::max(int(now - LastTime), 1)); - i++; - j++; - } + Relative.clear(); + RelativeTimes.clear(); - LastTime = now; - LastTimes = CurrentTimes; - LastCurrent = Current; + std::list<double>::iterator j = LastCurrent.begin(); + std::list<double>::iterator i = Current.begin(); + while (i != Current.end() && j != LastCurrent.end()) + { + Relative.insert(Relative.end(), ((*i) - (*j)) / std::max(int(now - LastTime), 1)); + i++; + j++; + } - if (Relative.begin() != Relative.end()) - { - Delta->addValues(Relative, Now); - DeltaTimes->addValues(RelativeTimes, Now); - } + j = LastTimes.begin(); + i = CurrentTimes.begin(); + while (i != CurrentTimes.end() && j != LastTimes.end()) + { + RelativeTimes.insert(RelativeTimes.end(), ((*i) - (*j)) / std::max(int(now - LastTime), 1)); + i++; + j++; + } - changeSelection(); + LastTime = now; + LastTimes = CurrentTimes; + LastCurrent = Current; - delete Query; - Query = NULL; - Poll.stop(); - } - } - } - catch (const QString &exc) + if (Relative.begin() != Relative.end()) { - delete Query; - Query = NULL; - Poll.stop(); - toStatusMessage(exc); + Delta->addValues(Relative, Now); + DeltaTimes->addValues(RelativeTimes, Now); } -} + changeSelection(); + + delete Query; + Query = NULL; +} // queryDone + static toSQL SQLSessionWaitEvents("toWaitEvents:Session", "SELECT b.name,\n" " SYSDATE,\n" @@ -648,9 +641,11 @@ } else sql = toSQL::string(SQLWaitEvents, conn); - Query = new toNoBlockQuery(conn, sql, par); - - Poll.start(100); + Query = new toEventQuery(conn, sql, par); + connect(Query, SIGNAL(dataAvailable()), this, SLOT(poll())); + connect(Query, SIGNAL(done()), this, SLOT(queryDone())); + Query->readAll(); // indicate that all records should be fetched + Query->start(); } TOCATCH } Modified: trunk/tora/src/towaitevents.h =================================================================== --- trunk/tora/src/towaitevents.h 2010-11-03 20:11:46 UTC (rev 3799) +++ trunk/tora/src/towaitevents.h 2010-11-07 17:29:03 UTC (rev 3800) @@ -42,9 +42,6 @@ #ifndef TOWAITEVENTS_H #define TOWAITEVENTS_H -#include "config.h" -#include "tobackground.h" - #include <list> #include <map> #include <algorithm> @@ -53,7 +50,7 @@ #include <QString> class toTreeWidget; -class toNoBlockQuery; +class toEventQuery; class toPieChart; class toResultBar; class QSplitter; @@ -69,8 +66,7 @@ toPieChart *AbsolutePie; toPieChart *DeltaPie; toTreeWidget *Types; - toNoBlockQuery *Query; - toBackground Poll; + toEventQuery *Query; bool First; bool ShowTimes; @@ -103,6 +99,7 @@ virtual void connectionChanged(void); virtual void changeSelection(void); virtual void poll(void); + virtual void queryDone(void); virtual void refresh(void); virtual void start(void); virtual void stop(void); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |