From: <mrj...@us...> - 2008-09-20 18:47:55
|
Revision: 3028 http://tora.svn.sourceforge.net/tora/?rev=3028&view=rev Author: mrjohnson0 Date: 2008-09-20 18:47:41 +0000 (Sat, 20 Sep 2008) Log Message: ----------- fix for focus bug and infinite loop caused by calling setFocus() in window activated event handler. this usually works but sometimes may crash when toworksheet is used as a widget in other tools. Modified Paths: -------------- trunk/tora/src/toworksheet.cpp Modified: trunk/tora/src/toworksheet.cpp =================================================================== --- trunk/tora/src/toworksheet.cpp 2008-09-20 18:46:11 UTC (rev 3027) +++ trunk/tora/src/toworksheet.cpp 2008-09-20 18:47:41 UTC (rev 3028) @@ -653,7 +653,9 @@ toMainWidget()->addCustomMenu(ToolMenu); } - Editor->setFocus(); + // disabled. can cause infinite loop on some window systems + // depending on the timing. + // Editor->setFocus(); // must set correct schema every time so having two worksheets // on different schemas works properly. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2008-10-20 13:34:04
|
Revision: 3062 http://tora.svn.sourceforge.net/tora/?rev=3062&view=rev Author: subik Date: 2008-10-20 13:33:47 +0000 (Mon, 20 Oct 2008) Log Message: ----------- fixed crash when i'm running a random statement in schema browser/script window Modified Paths: -------------- trunk/tora/src/toworksheet.cpp Modified: trunk/tora/src/toworksheet.cpp =================================================================== --- trunk/tora/src/toworksheet.cpp 2008-10-15 08:05:58 UTC (rev 3061) +++ trunk/tora/src/toworksheet.cpp 2008-10-20 13:33:47 UTC (rev 3062) @@ -1,4 +1,4 @@ - +#include <QtDebug> /* BEGIN_COMMON_COPYRIGHT_HEADER * * TOra - An Oracle Toolkit for DBA's and developers @@ -412,6 +412,7 @@ connect(Editor, SIGNAL(modificationChanged(bool)), this, SLOT(setCaption())); ResultTab = new toTabWidget(EditSplitter); + qDebug() << objectName() << "ResultTab" << ResultTab << EditSplitter; QWidget *container = new QWidget(ResultTab); QVBoxLayout *box = new QVBoxLayout; ResultTab->addTab(container, tr("&Result")); @@ -1020,7 +1021,10 @@ Started->setToolTip(tr("Duration while query has been running\n\n") + QueryString); stopAct->setEnabled(true); Result->setNumberColumn(toConfigurationSingle::Instance().wsNumber()); - ResultTab->setCurrentIndex(0); + // it fixes crash running statements from Schema Browser - PV + if (ResultTab) + ResultTab->setCurrentIndex(0); + try { saveHistory(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2008-10-21 09:31:11
|
Revision: 3063 http://tora.svn.sourceforge.net/tora/?rev=3063&view=rev Author: subik Date: 2008-10-21 08:14:27 +0000 (Tue, 21 Oct 2008) Log Message: ----------- forgotten debug outputs removed Modified Paths: -------------- trunk/tora/src/toworksheet.cpp Modified: trunk/tora/src/toworksheet.cpp =================================================================== --- trunk/tora/src/toworksheet.cpp 2008-10-20 13:33:47 UTC (rev 3062) +++ trunk/tora/src/toworksheet.cpp 2008-10-21 08:14:27 UTC (rev 3063) @@ -1,4 +1,4 @@ -#include <QtDebug> + /* BEGIN_COMMON_COPYRIGHT_HEADER * * TOra - An Oracle Toolkit for DBA's and developers @@ -412,7 +412,6 @@ connect(Editor, SIGNAL(modificationChanged(bool)), this, SLOT(setCaption())); ResultTab = new toTabWidget(EditSplitter); - qDebug() << objectName() << "ResultTab" << ResultTab << EditSplitter; QWidget *container = new QWidget(ResultTab); QVBoxLayout *box = new QVBoxLayout; ResultTab->addTab(container, tr("&Result")); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mrj...@us...> - 2008-12-04 01:04:19
|
Revision: 3102 http://tora.svn.sourceforge.net/tora/?rev=3102&view=rev Author: mrjohnson0 Date: 2008-12-04 01:04:16 +0000 (Thu, 04 Dec 2008) Log Message: ----------- small fix for editing in widget Modified Paths: -------------- trunk/tora/src/toworksheet.cpp Modified: trunk/tora/src/toworksheet.cpp =================================================================== --- trunk/tora/src/toworksheet.cpp 2008-12-02 13:59:16 UTC (rev 3101) +++ trunk/tora/src/toworksheet.cpp 2008-12-04 01:04:16 UTC (rev 3102) @@ -1291,7 +1291,7 @@ t = t.mid(i); } - if (t.trimmed().length() && EditSplitter) + if (t.trimmed().length()) query(t, type); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <su...@us...> - 2009-03-23 13:15:37
|
Revision: 3165 http://tora.svn.sourceforge.net/tora/?rev=3165&view=rev Author: subik Date: 2009-03-23 13:14:31 +0000 (Mon, 23 Mar 2009) Log Message: ----------- fixed #2548867 - 'Open File' and 'Save File' don't work sometimes tested on WinXP/KDE4.2.1/macosx Modified Paths: -------------- trunk/tora/src/toworksheet.cpp Modified: trunk/tora/src/toworksheet.cpp =================================================================== --- trunk/tora/src/toworksheet.cpp 2009-03-14 04:49:28 UTC (rev 3164) +++ trunk/tora/src/toworksheet.cpp 2009-03-23 13:14:31 UTC (rev 3165) @@ -647,6 +647,8 @@ // disabled. can cause infinite loop on some window systems // depending on the timing. // Editor->setFocus(); + if (Editor) + Editor->setFocus(Qt::ActiveWindowFocusReason); // must set correct schema every time so having two worksheets // on different schemas works properly. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nn...@us...> - 2009-05-01 16:36:17
|
Revision: 3182 http://tora.svn.sourceforge.net/tora/?rev=3182&view=rev Author: nneul Date: 2009-05-01 16:36:08 +0000 (Fri, 01 May 2009) Log Message: ----------- just for consistency with rest of source code in Tora, even though the macro is probably better overall Modified Paths: -------------- trunk/tora/src/toworksheet.cpp Modified: trunk/tora/src/toworksheet.cpp =================================================================== --- trunk/tora/src/toworksheet.cpp 2009-04-30 07:02:06 UTC (rev 3181) +++ trunk/tora/src/toworksheet.cpp 2009-05-01 16:36:08 UTC (rev 3182) @@ -113,9 +113,6 @@ #include "icons/up.xpm" #include "icons/down.xpm" -// for qsettings -static const QString SETTINGS = "toWorksheet"; - toWorksheetSetup::toWorksheetSetup(toTool *tool, QWidget* parent, const char* name) : QWidget(parent), toSettingTab("worksheet.html#preferences"), Tool(tool) { @@ -1679,7 +1676,7 @@ SavedMenu->clear(); QSettings settings; - settings.beginGroup(SETTINGS); + settings.beginGroup("toWorksheet"); QList<QVariant> statements = settings.value("sql").toList(); QAction *last = 0; @@ -1696,7 +1693,7 @@ InsertSavedMenu->clear(); QSettings settings; - settings.beginGroup(SETTINGS); + settings.beginGroup("toWorksheet"); QList<QVariant> statements = settings.value("sql").toList(); QAction *last = 0; @@ -1712,7 +1709,7 @@ void toWorksheet::removeSaved(QAction *action) { QSettings settings; - settings.beginGroup(SETTINGS); + settings.beginGroup("toWorksheet"); QList<QVariant> statements = settings.value("sql").toList(); statements.removeAll(action->data().toString()); @@ -1731,7 +1728,7 @@ } QSettings settings; - settings.beginGroup(SETTINGS); + settings.beginGroup("toWorksheet"); QString sql = QueryString.trimmed(); if(!sql.endsWith(";")) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tom...@us...> - 2010-04-20 14:53:44
|
Revision: 3508 http://tora.svn.sourceforge.net/tora/?rev=3508&view=rev Author: tomasstraupis Date: 2010-04-20 14:53:37 +0000 (Tue, 20 Apr 2010) Log Message: ----------- Check/drop MySQL routine before creating one. (Configuration options/help info still to be added) Modified Paths: -------------- trunk/tora/src/toworksheet.cpp Modified: trunk/tora/src/toworksheet.cpp =================================================================== --- trunk/tora/src/toworksheet.cpp 2010-04-19 21:50:36 UTC (rev 3507) +++ trunk/tora/src/toworksheet.cpp 2010-04-20 14:53:37 UTC (rev 3508) @@ -885,6 +885,21 @@ return false; } +static toSQL SQLCheckMySQLRoutine("toWorksheet:CheckRoutine", + "select count(1)\n" + "from information_schema.routines\n" + "where routine_name = :f1<char[101]>\n" + " and lower(routine_type) = :f2<char[101]>", + "Check if routine exists in MySQL", + "5.0", + "MySQL"); + +static toSQL SQLDropMySQLRoutine("toWorksheet:DropRoutine", + "drop :f1<noquote> if exists :f2<noquote>;", + "Drop MySQL routine if it exists", + "5.0", + "MySQL"); + void toWorksheet::query(const QString &str, execType type, toSQLParse::statement::statementClass sc) { Result->stop(); @@ -925,6 +940,60 @@ if (chk.startsWith(QString::fromLatin1("create trigger "))) nobinds = true; + // MySQL does not support replacing currently existing routines. Trying to create existing + // routine raises exception. Therefore when creating a routine a previous one should be + // dropped first. + if (toIsMySQL(connection()) && code) + { + // do a "poor mans" parsing as we do not actually need to parse everything + chk.replace("(", " "); + chk.replace("\n", " "); + QStringList tok = chk.split(" ", QString::SkipEmptyParts); + + // only for "create" statements + if (tok[0] == "create") + { + int i; + if (tok[1].startsWith("definer=")) + i = 1; + else + i = 0; + + // only for create function|procedure statements (not for create table|index etc...) + if (tok[1 + i] == "function" || tok[1 + i] == "procedure") + { + int c = 1; // count of existing routines (would logically be 0 or 1) + + try { + if (1==1 /* config "check if routine exists" is enabled */) + { + // Check if this routine actually exists in database + toQList param; + toPush(param, toQValue(tok[2 + i].remove('`'))); // routine name + toPush(param, toQValue(tok[1 + i])); // routine type (procedure or function) + toQuery query(connection(), toQuery::Long, SQLCheckMySQLRoutine, param); + c = query.readValue().toInt(); // 1 - exists, 0 - does not exist + } + + if (c == 1 /*|| config "drop always" */) + { + if (TOMessageBox::information(this, tr("Drop routine?"), + tr("Do you want to drop %1 %2?").arg(tok[1 + i]).arg(tok[2 + i]), + tr("&Drop"), tr("Leave it and continue")) == 0) + { + toQList param; + toPush(param, toQValue(tok[1 + i])); // routine type (procedure or function) + toPush(param, toQValue(tok[2 + i])); // routine name + // Note that if routine creation is not successfull you will be left without any routine! + toQuery query(connection(), toQuery::Long, SQLDropMySQLRoutine, param); + } + } + } + TOCATCH; + } + } + } // if toIsMySQL + if (type == OnlyPlan) { ResultTab->setCurrentIndex(ResultTab->indexOf(Plan)); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <tom...@us...> - 2010-11-17 16:33:08
|
Revision: 3811 http://tora.svn.sourceforge.net/tora/?rev=3811&view=rev Author: tomasstraupis Date: 2010-11-17 16:33:01 +0000 (Wed, 17 Nov 2010) Log Message: ----------- Add "SET" to the list of ignored SQLPlus commands. Modified Paths: -------------- trunk/tora/src/toworksheet.cpp Modified: trunk/tora/src/toworksheet.cpp =================================================================== --- trunk/tora/src/toworksheet.cpp 2010-11-15 20:37:21 UTC (rev 3810) +++ trunk/tora/src/toworksheet.cpp 2010-11-17 16:33:01 UTC (rev 3811) @@ -1037,11 +1037,12 @@ } if (first == QString::fromLatin1("REM") || - first == QString::fromLatin1("ASSIGN") || - first == QString::fromLatin1("PROMPT") || - first == QString::fromLatin1("COLUMN") || - first == QString::fromLatin1("SPOOL") || - first == QString::fromLatin1("STORE")) + first == QString::fromLatin1("ASSIGN") || + first == QString::fromLatin1("PROMPT") || + first == QString::fromLatin1("COLUMN") || + first == QString::fromLatin1("SPOOL") || + first == QString::fromLatin1("STORE") || + first == QString::fromLatin1("SET")) { QString t = tr("Ignoring SQL*Plus command"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mrj...@us...> - 2012-01-30 01:34:45
|
Revision: 4233 http://tora.svn.sourceforge.net/tora/?rev=4233&view=rev Author: mrjohnson0 Date: 2012-01-30 01:34:39 +0000 (Mon, 30 Jan 2012) Log Message: ----------- with clean preferences, this keeps prompting for a file to open after every new worksheet() Modified Paths: -------------- trunk/tora/src/toworksheet.cpp Modified: trunk/tora/src/toworksheet.cpp =================================================================== --- trunk/tora/src/toworksheet.cpp 2012-01-30 01:15:09 UTC (rev 4232) +++ trunk/tora/src/toworksheet.cpp 2012-01-30 01:34:39 UTC (rev 4233) @@ -522,7 +522,7 @@ connect(ResultTab, SIGNAL(currentChanged(int)), this, SLOT(changeResult(int))); - if (autoLoad) + if (autoLoad && !toConfigurationSingle::Instance().wsAutoLoad().isEmpty()) { Editor->editOpen(toConfigurationSingle::Instance().wsAutoLoad()); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |