From c29a2429b92f12960d025d5e01b5be6e5dff8700 Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Wed, 11 Feb 2009 19:41:01 +0100 Subject: [PATCH 1/6] Fixes: Play nice with the NSIS installer, accept the Installer hints under a group name, too. --- src/plugins/qt4projectmanager/qtversionmanager.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index 780de4ebc65..f79cc4b5964 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -241,12 +241,17 @@ void QtVersionManager::addNewVersionsFromInstaller() // or NewQtVersions="qt 4.3.2=c:\\qt\\qt432=c:\\qtcreator\\mingw\\=prependToPath; // Duplicate entries are not added, the first new version is set as default. QSettings *settings = Core::ICore::instance()->settings(); - if (!settings->contains(newQtVersionsKey)) + + if (!settings->contains(newQtVersionsKey) && + !settings->contains(QLatin1String("Installer/")+newQtVersionsKey)) return; // qDebug()<<"QtVersionManager::addNewVersionsFromInstaller()"; QString newVersionsValue = settings->value(newQtVersionsKey).toString(); + if (newVersionsValue.isEmpty()) + newVersionsValue = settings->value(QLatin1String("Installer/")+newQtVersionsKey).toString(); + QStringList newVersionsList = newVersionsValue.split(';', QString::SkipEmptyParts); bool defaultVersionWasReset = false; foreach (QString newVersion, newVersionsList) { @@ -281,6 +286,7 @@ void QtVersionManager::addNewVersionsFromInstaller() } } settings->remove(newQtVersionsKey); + settings->remove(QLatin1String("Installer/")+newQtVersionsKey); updateUniqueIdToIndexMap(); } From 79a99acd1bef2587b2a393390301f3184e635c2e Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Fri, 13 Feb 2009 09:55:21 +0100 Subject: [PATCH 2/6] Fixes: Context help in Designer Task: 235520 Details: Display help of current property editor object --- src/plugins/designer/formwindoweditor.cpp | 24 +++++++++++++++++++++++ src/plugins/designer/formwindoweditor.h | 6 +++--- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/plugins/designer/formwindoweditor.cpp b/src/plugins/designer/formwindoweditor.cpp index a683dccd864..869443a9aaf 100644 --- a/src/plugins/designer/formwindoweditor.cpp +++ b/src/plugins/designer/formwindoweditor.cpp @@ -45,6 +45,8 @@ #include #include #include +#include +#include #include #include @@ -325,3 +327,25 @@ void FormWindowEditor::activate() { m_editorWidget->activate(); } + +QString FormWindowEditor::contextHelpId() const +{ + // TODO [13.2.09]: Replace this by QDesignerIntegrations context help Id + // in the upcoming version of Qt + QDesignerFormEditorInterface *core = FormEditorW::instance()->designerEditor(); + QObject *o = core->propertyEditor()->object(); + if (!o) + return QString(); + const QDesignerWidgetDataBaseInterface *db = core->widgetDataBase(); + const int dbIndex = db->indexOfObject(o, true); + if (dbIndex == -1) + return QString(); + QString className = db->item(dbIndex)->name(); + if (className == QLatin1String("Line")) + className = QLatin1String("QFrame"); + else if (className == QLatin1String("Spacer")) + className = QLatin1String("QSpacerItem"); + else if (className == QLatin1String("QLayoutWidget")) + className = QLatin1String("QLayout"); + return className; +} diff --git a/src/plugins/designer/formwindoweditor.h b/src/plugins/designer/formwindoweditor.h index e854ccac915..bce29c2f5a8 100644 --- a/src/plugins/designer/formwindoweditor.h +++ b/src/plugins/designer/formwindoweditor.h @@ -63,7 +63,6 @@ class EditorWidget; class FormWindowEditor : public Core::IEditor { Q_OBJECT - public: FormWindowEditor(const QList &context, QDesignerFormWindowInterface *form, @@ -84,8 +83,9 @@ public: bool restoreState(const QByteArray &state); // ContextInterface - QList context() const; - QWidget *widget(); + virtual QList context() const; + virtual QWidget *widget(); + virtual QString contextHelpId() const; QDesignerFormWindowInterface *formWindow() const; QWidget *integrationContainer(); From 441c630faed9e9a62b073c0a85025e7630696fa4 Mon Sep 17 00:00:00 2001 From: Daniel Molkentin Date: Fri, 13 Feb 2009 10:16:12 +0100 Subject: [PATCH 3/6] Ship 4.5-rc1 with Linux bundles. --- scripts/shipping/prepare-linux-qt-for-shipping.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/shipping/prepare-linux-qt-for-shipping.sh b/scripts/shipping/prepare-linux-qt-for-shipping.sh index 2f49413ebdd..b8c058a84cb 100755 --- a/scripts/shipping/prepare-linux-qt-for-shipping.sh +++ b/scripts/shipping/prepare-linux-qt-for-shipping.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -version=4.4.3 +version="4.5-rc1" workdir=/home/berlin/dev/qt-${version}-temp destdir=/home/berlin/dev/qt-${version}-shipping/qt # "/qt" suffix for Bitrock dir=qt-x11-opensource-src-${version} From 581dae100abf61d8c4d2a647cd7f546fda85d93d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thorbj=C3=B8rn=20Lindeijer?= Date: Fri, 13 Feb 2009 12:56:39 +0100 Subject: [PATCH 4/6] Fixed dock widget features on startup in locked state In locked state the dock widgets shouldn't have AllDockWidgetFeatures set, but rather NoDockWidgetFeatures. Otherwise a hidden one-pixel wide area exists that allows people to move/float a dockwidget, which can be confusing. Task: 244531 (cherry picked from commit ba9ade6d0cb89baacf1ee6a42d2381d772f8938e) --- src/plugins/debugger/debuggermanager.cpp | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/plugins/debugger/debuggermanager.cpp b/src/plugins/debugger/debuggermanager.cpp index 423321fc7ba..95b874a3f8a 100644 --- a/src/plugins/debugger/debuggermanager.cpp +++ b/src/plugins/debugger/debuggermanager.cpp @@ -451,10 +451,7 @@ QDockWidget *DebuggerManager::createDockForWidget(QWidget *widget) { QDockWidget *dockWidget = new QDockWidget(widget->windowTitle(), m_mainWindow); dockWidget->setObjectName(widget->windowTitle()); - //dockWidget->setAllowedAreas(Qt::BottomDockWidgetArea | Qt::RightDockWidgetArea); - dockWidget->setAllowedAreas(Qt::AllDockWidgetAreas); // that space is needed. - //dockWidget->setFeatures(QDockWidget::NoDockWidgetFeatures); - dockWidget->setFeatures(QDockWidget::AllDockWidgetFeatures); + dockWidget->setFeatures(QDockWidget::NoDockWidgetFeatures); dockWidget->setTitleBarWidget(new QWidget(dockWidget)); dockWidget->setWidget(widget); connect(dockWidget->toggleViewAction(), SIGNAL(toggled(bool)), From ae7864f9c0ba2778756a89c3d0e6c97b76902263 Mon Sep 17 00:00:00 2001 From: lowinu Date: Fri, 13 Feb 2009 13:53:11 +0100 Subject: [PATCH 5/6] Fixes: cpaster plugin options RevBy: andre Details: - the settings have not been taken into respect so far. --- src/plugins/cpaster/cpasterplugin.cpp | 4 +++- src/plugins/cpaster/settingspage.h | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/plugins/cpaster/cpasterplugin.cpp b/src/plugins/cpaster/cpasterplugin.cpp index f0cda5147c2..82a8be37d72 100644 --- a/src/plugins/cpaster/cpasterplugin.cpp +++ b/src/plugins/cpaster/cpasterplugin.cpp @@ -185,7 +185,9 @@ void CodepasterPlugin::post() // Submit to codepaster - m_poster = new CustomPoster(serverUrl()); + m_poster = new CustomPoster(serverUrl(), + m_settingsPage->copyToClipBoard(), + m_settingsPage->displayOutput()); // Copied from cpaster. Otherwise lineendings will screw up if (!data.contains("\r\n")) { diff --git a/src/plugins/cpaster/settingspage.h b/src/plugins/cpaster/settingspage.h index a492030752c..98df299a5f6 100644 --- a/src/plugins/cpaster/settingspage.h +++ b/src/plugins/cpaster/settingspage.h @@ -65,8 +65,8 @@ public: QString username() const; QUrl serverUrl() const; - bool copyToClipBoard() const; - bool displayOutput() const; + inline bool copyToClipBoard() const { return m_copy; } + inline bool displayOutput() const { return m_output; } private: Ui_SettingsPage m_ui; From b6c15d1ba906f9e7ed124b91bd2d7adbd46953ea Mon Sep 17 00:00:00 2001 From: lowinu Date: Fri, 13 Feb 2009 12:52:01 +0100 Subject: [PATCH 6/6] Fixes: add timeout value to git plugin RevBy: tba Details: - as on windows some git commands take much longer it happens fairly often, that git timeouts. - added a timeout value to the option to let the user choose maximum timeout value (minimum is 10 seconds, maximum 5 minutes) --- src/plugins/git/gitclient.cpp | 8 ++++---- src/plugins/git/gitcommand.cpp | 11 ++++++----- src/plugins/git/gitcommand.h | 5 +++-- src/plugins/git/gitsettings.cpp | 10 +++++++--- src/plugins/git/gitsettings.h | 1 + src/plugins/git/settingspage.cpp | 2 ++ src/plugins/git/settingspage.ui | 33 ++++++++++++++++++++++++-------- 7 files changed, 48 insertions(+), 22 deletions(-) diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index fe2394c019d..08bdac4ee60 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -207,20 +207,20 @@ void GitClient::diff(const QString &workingDirectory, QStringList arguments; arguments << QLatin1String("diff") << diffArgs; m_plugin->outputWindow()->append(formatCommand(binary, arguments)); - command->addJob(arguments); + command->addJob(arguments, m_settings.timeout); } else { // Files diff. if (!unstagedFileNames.empty()) { QStringList arguments; arguments << QLatin1String("diff") << diffArgs << QLatin1String("--") << unstagedFileNames; m_plugin->outputWindow()->append(formatCommand(binary, arguments)); - command->addJob(arguments); + command->addJob(arguments, m_settings.timeout); } if (!stagedFileNames.empty()) { QStringList arguments; arguments << QLatin1String("diff") << QLatin1String("--cached") << diffArgs << QLatin1String("--") << stagedFileNames; m_plugin->outputWindow()->append(formatCommand(binary, arguments)); - command->addJob(arguments); + command->addJob(arguments, m_settings.timeout); } } command->execute(); @@ -503,7 +503,7 @@ void GitClient::executeGit(const QString &workingDirectory, { m_plugin->outputWindow()->append(formatCommand(QLatin1String(Constants::GIT_BINARY), arguments)); GitCommand *command = createCommand(workingDirectory, editor, outputToWindow); - command->addJob(arguments); + command->addJob(arguments, m_settings.timeout); command->execute(); } diff --git a/src/plugins/git/gitcommand.cpp b/src/plugins/git/gitcommand.cpp index fa62401b011..8362926cecc 100644 --- a/src/plugins/git/gitcommand.cpp +++ b/src/plugins/git/gitcommand.cpp @@ -55,8 +55,9 @@ static inline QStringList environmentToList(const ProjectExplorer::Environment & return ProjectExplorer::Environment::systemEnvironment().toStringList(); } -GitCommand::Job::Job(const QStringList &a) : - arguments(a) +GitCommand::Job::Job(const QStringList &a, int t) : + arguments(a), + timeout(t) { } @@ -67,9 +68,9 @@ GitCommand::GitCommand(const QString &workingDirectory, { } -void GitCommand::addJob(const QStringList &arguments) +void GitCommand::addJob(const QStringList &arguments, int timeout) { - m_jobs.push_back(Job(arguments)); + m_jobs.push_back(Job(arguments, timeout)); } void GitCommand::execute() @@ -109,7 +110,7 @@ void GitCommand::run() qDebug() << "GitCommand::run" << j << '/' << count << m_jobs.at(j).arguments; process.start(QLatin1String(Constants::GIT_BINARY), m_jobs.at(j).arguments); - if (!process.waitForFinished()) { + if (!process.waitForFinished(m_jobs.at(j).timeout * 1000)) { ok = false; error += QLatin1String("Error: Git timed out"); break; diff --git a/src/plugins/git/gitcommand.h b/src/plugins/git/gitcommand.h index a587b748761..32b76bf3485 100644 --- a/src/plugins/git/gitcommand.h +++ b/src/plugins/git/gitcommand.h @@ -49,7 +49,7 @@ public: ProjectExplorer::Environment &environment); - void addJob(const QStringList &arguments); + void addJob(const QStringList &arguments, int timeout); void execute(); private: @@ -61,9 +61,10 @@ Q_SIGNALS: private: struct Job { - explicit Job(const QStringList &a); + explicit Job(const QStringList &a, int t); QStringList arguments; + int timeout; }; QStringList environment() const; diff --git a/src/plugins/git/gitsettings.cpp b/src/plugins/git/gitsettings.cpp index 2b528a72d2a..02a1acc1d9e 100644 --- a/src/plugins/git/gitsettings.cpp +++ b/src/plugins/git/gitsettings.cpp @@ -40,15 +40,17 @@ static const char *groupC = "Git"; static const char *sysEnvKeyC = "SysEnv"; static const char *pathKeyC = "Path"; static const char *logCountKeyC = "LogCount"; +static const char *timeoutKeyC = "TimeOut"; -enum { defaultLogCount = 10 }; +enum { defaultLogCount = 10 , defaultTimeOut = 30}; namespace Git { namespace Internal { GitSettings::GitSettings() : adoptPath(false), - logCount(defaultLogCount) + logCount(defaultLogCount), + timeout(defaultTimeOut) { } @@ -58,6 +60,7 @@ void GitSettings::fromSettings(QSettings *settings) adoptPath = settings->value(QLatin1String(sysEnvKeyC), false).toBool(); path = settings->value(QLatin1String(pathKeyC), QString()).toString(); logCount = settings->value(QLatin1String(logCountKeyC), defaultLogCount).toInt(); + timeout = settings->value(QLatin1String(timeoutKeyC), defaultTimeOut).toInt(); settings->endGroup(); } @@ -67,12 +70,13 @@ void GitSettings::toSettings(QSettings *settings) const settings->setValue(QLatin1String(sysEnvKeyC), adoptPath); settings->setValue(QLatin1String(pathKeyC), path); settings->setValue(QLatin1String(logCountKeyC), logCount); + settings->setValue(QLatin1String(timeoutKeyC), timeout); settings->endGroup(); } bool GitSettings::equals(const GitSettings &s) const { - return adoptPath == s.adoptPath && path == s.path && logCount == s.logCount; + return adoptPath == s.adoptPath && path == s.path && logCount == s.logCount && timeout == s.timeout; } } diff --git a/src/plugins/git/gitsettings.h b/src/plugins/git/gitsettings.h index 59169922605..c2463eb326d 100644 --- a/src/plugins/git/gitsettings.h +++ b/src/plugins/git/gitsettings.h @@ -56,6 +56,7 @@ struct GitSettings bool adoptPath; QString path; int logCount; + int timeout; }; inline bool operator==(const GitSettings &p1, const GitSettings &p2) diff --git a/src/plugins/git/settingspage.cpp b/src/plugins/git/settingspage.cpp index a3b82194cec..121c7cd889b 100644 --- a/src/plugins/git/settingspage.cpp +++ b/src/plugins/git/settingspage.cpp @@ -52,6 +52,7 @@ GitSettings SettingsPageWidget::settings() const rc.path = m_ui.pathLineEdit->text(); rc.adoptPath = m_ui.environmentGroupBox->isChecked() && !rc.path.isEmpty(); rc.logCount = m_ui.logCountSpinBox->value(); + rc.timeout = m_ui.timeoutSpinBox->value(); return rc; } @@ -60,6 +61,7 @@ void SettingsPageWidget::setSettings(const GitSettings &s) m_ui.environmentGroupBox->setChecked(s.adoptPath); m_ui.pathLineEdit->setText(s.path); m_ui.logCountSpinBox->setValue(s.logCount); + m_ui.timeoutSpinBox->setValue(s.timeout); } void SettingsPageWidget::setSystemPath() diff --git a/src/plugins/git/settingspage.ui b/src/plugins/git/settingspage.ui index 94c04493aab..1a594bf4313 100644 --- a/src/plugins/git/settingspage.ui +++ b/src/plugins/git/settingspage.ui @@ -7,7 +7,7 @@ 0 0 403 - 183 + 251 @@ -69,10 +69,14 @@ - - - QFormLayout::ExpandingFieldsGrow - + + + + + Log commit display count: + + + @@ -83,10 +87,23 @@ - - + + - Log commit display count: + Timeout (seconds): + + + + + + + 10 + + + 300 + + + 30