From 86d7e28db4053d771fba2819d88ffbf5cf0843e5 Mon Sep 17 00:00:00 2001 From: Petar Perisin Date: Fri, 26 Apr 2013 00:00:30 +0200 Subject: Git - added submoduleDataMap to handle submodule data Change-Id: I8462ed07f3d1edce5c7f5ab8c166ce8c68b6d4b3 Reviewed-by: Orgad Shaneh --- src/plugins/git/gerrit/gerritplugin.cpp | 16 ++++----- src/plugins/git/gitclient.cpp | 60 +++++++++++++++++++++++++++------ src/plugins/git/gitclient.h | 12 ++++++- src/plugins/git/gitplugin.cpp | 3 +- 4 files changed, 69 insertions(+), 22 deletions(-) (limited to 'src') diff --git a/src/plugins/git/gerrit/gerritplugin.cpp b/src/plugins/git/gerrit/gerritplugin.cpp index 71637952f0..c1687fb797 100644 --- a/src/plugins/git/gerrit/gerritplugin.cpp +++ b/src/plugins/git/gerrit/gerritplugin.cpp @@ -511,21 +511,19 @@ void GerritPlugin::fetch(const QSharedPointer &c } } - if (!verifiedRepository && QFile::exists(repository + QLatin1String("/.gitmodules"))) { - QMap submodules = gitClient->synchronousSubmoduleList(repository); - - QMap::const_iterator i = submodules.constBegin(); - while (i != submodules.constEnd()) { - QString remote = i.value(); + if (!verifiedRepository) { + Git::Internal::SubmoduleDataMap submodules = gitClient->submoduleList(repository); + foreach (const Git::Internal::SubmoduleData &submoduleData, submodules) { + QString remote = submoduleData.url; if (remote.endsWith(QLatin1String(".git"))) remote.chop(4); if (remote.contains(m_parameters->host) && remote.endsWith(change->project) - && QFile::exists(repository + QLatin1Char('/') + i.key())) { - repository = QDir::cleanPath(repository + QLatin1Char('/') + i.key()); + && QFile::exists(repository + QLatin1Char('/') + submoduleData.dir)) { + repository = QDir::cleanPath(repository + QLatin1Char('/') + + submoduleData.dir); verifiedRepository = true; break; } - ++i; } } diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 15befd0406..ed2172c605 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -1962,21 +1962,59 @@ QMap GitClient::synchronousRemotesList(const QString &workingDi return result; } -// function returns submodules in format path=url -QMap GitClient::synchronousSubmoduleList(const QString &workingDirectory) +SubmoduleDataMap GitClient::submoduleList(const QString &workingDirectory) { - QMap result; - if (!QFile::exists(workingDirectory + QLatin1String("/.gitmodules"))) + SubmoduleDataMap result; + QString gitmodulesFileName = workingDirectory + QLatin1String("/.gitmodules"); + if (!QFile::exists(gitmodulesFileName)) return result; - QSettings gitmodulesFile(workingDirectory + QLatin1String("/.gitmodules"), QSettings::IniFormat); + static QMap cachedSubmoduleData; + + if (cachedSubmoduleData.contains(workingDirectory)) + return cachedSubmoduleData.value(workingDirectory); + QStringList args(QLatin1String("-l")); + + QStringList allConfigs = readConfig(workingDirectory, args).split(QLatin1Char('\n')); + const QString submoduleLineStart = QLatin1String("submodule."); + foreach (const QString &configLine, allConfigs) { + if (!configLine.startsWith(submoduleLineStart)) + continue; + + int nameStart = submoduleLineStart.size(); + int nameEnd = configLine.indexOf(QLatin1Char('.'), nameStart); + + QString submoduleName = configLine.mid(nameStart, nameEnd - nameStart); + + SubmoduleData submoduleData; + if (result.contains(submoduleName)) + submoduleData = result[submoduleName]; - foreach (const QString &submoduleGroup, gitmodulesFile.childGroups()) { - gitmodulesFile.beginGroup(submoduleGroup); - result.insertMulti(gitmodulesFile.value(QLatin1String("path")).toString(), - gitmodulesFile.value(QLatin1String("url")).toString()); - gitmodulesFile.endGroup(); + if (configLine.mid(nameEnd, 5) == QLatin1String(".url=")) + submoduleData.url = configLine.mid(nameEnd + 5); + else if (configLine.mid(nameEnd, 8) == QLatin1String(".ignore=")) + submoduleData.ignore = configLine.mid(nameEnd + 8); + else + continue; + + result.insert(submoduleName, submoduleData); + } + + // if config found submodules + if (!result.isEmpty()) { + QSettings gitmodulesFile(gitmodulesFileName, QSettings::IniFormat); + + foreach (const QString &submoduleName, result.keys()) { + gitmodulesFile.beginGroup(QLatin1String("submodule \"") + + submoduleName + QLatin1Char('"')); + result[submoduleName].dir = gitmodulesFile.value(QLatin1String("path")).toString(); + QString ignore = gitmodulesFile.value(QLatin1String("ignore")).toString(); + if (!ignore.isEmpty() && result[submoduleName].ignore.isEmpty()) + result[submoduleName].ignore = ignore; + gitmodulesFile.endGroup(); + } } + cachedSubmoduleData.insert(workingDirectory, result); return result; } @@ -2172,7 +2210,7 @@ void GitClient::submoduleUpdate(const QString &workingDirectory) void GitClient::promptSubmoduleUpdate(const QString &workingDirectory) { - if (!QFile::exists(workingDirectory + QLatin1String("/.gitmodules"))) + if (submoduleList(workingDirectory).isEmpty()) return; if (QMessageBox::question(Core::ICore::mainWindow(), tr("Submodules Found"), diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index d71b47ac88..414efe6521 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -86,6 +86,16 @@ enum StashFlag { NoPrompt = 0x02 }; +class SubmoduleData +{ +public: + QString dir; + QString url; + QString ignore; +}; + +typedef QMap SubmoduleDataMap; + class GitClient : public QObject { Q_OBJECT @@ -200,7 +210,7 @@ public: QMap synchronousRemotesList(const QString &workingDirectory, QString *errorMessage = 0); - QMap synchronousSubmoduleList(const QString &workingDirectory); + SubmoduleDataMap submoduleList(const QString &workingDirectory); bool synchronousShow(const QString &workingDirectory, const QString &id, QString *output, QString *errorMessage); diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 55dcce5364..1eb1ec4215 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -1323,8 +1323,9 @@ void GitPlugin::updateActions(VcsBase::VcsBasePlugin::ActionState as) foreach (QAction *repositoryAction, m_repositoryActions) repositoryAction->setEnabled(repositoryEnabled); + m_submoduleUpdateAction->setVisible(repositoryEnabled - && QFile::exists(currentState().topLevel() + QLatin1String("/.gitmodules"))); + && !m_gitClient->submoduleList(currentState().topLevel()).isEmpty()); updateContinueAndAbortCommands(); updateRepositoryBrowserAction(); -- cgit v1.2.1 From 0b225af84c6377416959ae2174823c8f1e9e7073 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 29 May 2013 08:45:13 +0200 Subject: Fix warnings about uninitialized variables in readonlyfilesdialog.cpp. readonlyfilesdialog.cpp:316:29: warning: 'type' may be used uninitialized in this function. readonlyfilesdialog.cpp:283:60: warning: 'result' may be used uninitialized in this function. Change-Id: Ib2456e64d981c5afcd3ba70cc7ef0427e98b9b4e Reviewed-by: David Schulz --- src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp b/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp index e86b2b6b57..66d86e973a 100644 --- a/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp +++ b/src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp @@ -248,7 +248,7 @@ int ReadOnlyFilesDialog::exec() if (QDialog::exec() != QDialog::Accepted) return RO_Cancel; - ReadOnlyResult result; + ReadOnlyResult result = RO_Cancel; QStringList failedToMakeWritable; foreach (ReadOnlyFilesDialogPrivate::ButtonGroupForFile buttengroup, d->buttonGroups) { result = static_cast(buttengroup.group->checkedId()); @@ -313,7 +313,7 @@ void ReadOnlyFilesDialog::setAll(int index) return; // Get the selected type from the select all combo box. - ReadOnlyFilesTreeColumn type; + ReadOnlyFilesTreeColumn type = NumberOfColumns; if (index == d->setAllIndexForOperation[MakeWritable]) type = MakeWritable; else if (index == d->setAllIndexForOperation[OpenWithVCS]) -- cgit v1.2.1 From 8390a321319f1fdf8c92ae40408ee6db02b75908 Mon Sep 17 00:00:00 2001 From: hjk Date: Tue, 28 May 2013 15:17:20 +0200 Subject: Settings: Simplify some user code This is still way too much boiler plate code for the task at hand. Change-Id: Ia03bff3d6947ea6372e3f5d0217c116728742b74 Reviewed-by: Eike Ziller Reviewed-by: Friedemann Kleint --- .../classview/classviewnavigationwidgetfactory.cpp | 14 ++--- src/plugins/coreplugin/generalsettings.cpp | 5 +- src/plugins/cpaster/codepastersettings.cpp | 18 +++---- src/plugins/cpaster/codepastersettings.h | 1 - src/plugins/cpptools/cppcodestylesettingspage.cpp | 9 ++-- src/plugins/cpptools/cpptoolssettings.cpp | 2 +- src/plugins/cvs/cvsplugin.cpp | 6 +-- src/plugins/debugger/debuggermainwindow.cpp | 4 -- src/plugins/designer/settingsmanager.cpp | 35 +++---------- src/plugins/find/searchresultwindow.cpp | 16 +++--- src/plugins/projectexplorer/projectexplorer.cpp | 60 +++++++++++----------- .../qmljstools/qmljscodestylesettingspage.cpp | 6 +-- src/plugins/qnx/blackberryconfiguration.cpp | 10 ++-- 13 files changed, 68 insertions(+), 118 deletions(-) (limited to 'src') diff --git a/src/plugins/classview/classviewnavigationwidgetfactory.cpp b/src/plugins/classview/classviewnavigationwidgetfactory.cpp index 7b19e0144f..b3a4fb7e63 100644 --- a/src/plugins/classview/classviewnavigationwidgetfactory.cpp +++ b/src/plugins/classview/classviewnavigationwidgetfactory.cpp @@ -108,14 +108,11 @@ void NavigationWidgetFactory::saveSettings(int position, QWidget *widget) NavigationWidget *pw = qobject_cast(widget); QTC_ASSERT(pw, return); - QSettings *settings = Core::ICore::settings(); - QTC_ASSERT(settings, return); - // .beginGroup is not used - to prevent simultaneous access QString group = settingsPrefix(position); - // save settings - settings->setValue(group, pw->flatMode()); + // Save settings + Core::ICore::settings()->setValue(group, pw->flatMode()); } void NavigationWidgetFactory::restoreSettings(int position, QWidget *widget) @@ -123,14 +120,11 @@ void NavigationWidgetFactory::restoreSettings(int position, QWidget *widget) NavigationWidget *pw = qobject_cast(widget); QTC_ASSERT(pw, return); - QSettings *settings = Core::ICore::settings(); - QTC_ASSERT(settings, return); - // .beginGroup is not used - to prevent simultaneous access QString group = settingsPrefix(position); - // load settings - pw->setFlatMode(settings->value(group, false).toBool()); + // Load settings + pw->setFlatMode(Core::ICore::settings()->value(group, false).toBool()); } } // namespace Internal diff --git a/src/plugins/coreplugin/generalsettings.cpp b/src/plugins/coreplugin/generalsettings.cpp index 2fba5d0ed3..ead28c556a 100644 --- a/src/plugins/coreplugin/generalsettings.cpp +++ b/src/plugins/coreplugin/generalsettings.cpp @@ -107,14 +107,12 @@ QWidget *GeneralSettings::createPage(QWidget *parent) m_widget = new QWidget(parent); m_page->setupUi(m_widget); - QSettings *settings = Core::ICore::settings(); - Q_UNUSED(settings) // Windows - fillLanguageBox(); m_page->colorButton->setColor(StyleHelper::requestedBaseColor()); m_page->reloadBehavior->setCurrentIndex(EditorManager::instance()->reloadSetting()); if (HostOsInfo::isAnyUnixHost()) { + QSettings *settings = Core::ICore::settings(); const QStringList availableTerminals = ConsoleProcess::availableTerminalEmulators(); const QString currentTerminal = ConsoleProcess::terminalEmulator(settings, false); const QString currentTerminalExplicit = ConsoleProcess::terminalEmulator(settings, true); @@ -128,6 +126,7 @@ QWidget *GeneralSettings::createPage(QWidget *parent) } if (HostOsInfo::isAnyUnixHost() && !HostOsInfo::isMacHost()) { + QSettings *settings = Core::ICore::settings(); m_page->externalFileBrowserEdit->setText(UnixUtils::fileBrowser(settings)); } else { m_page->externalFileBrowserLabel->hide(); diff --git a/src/plugins/cpaster/codepastersettings.cpp b/src/plugins/cpaster/codepastersettings.cpp index 63ff59648d..4f2e4558e6 100644 --- a/src/plugins/cpaster/codepastersettings.cpp +++ b/src/plugins/cpaster/codepastersettings.cpp @@ -52,11 +52,8 @@ CodePasterSettingsPage::CodePasterSettingsPage() setDisplayCategory(QCoreApplication::translate("CodePaster", Constants::CPASTER_SETTINGS_TR_CATEGORY)); - m_settings = Core::ICore::settings(); - if (m_settings) { - const QString keyRoot = QLatin1String(settingsGroupC) + QLatin1Char('/'); - m_host = m_settings->value(keyRoot + QLatin1String(serverKeyC), QString()).toString(); - } + const QString keyRoot = QLatin1String(settingsGroupC) + QLatin1Char('/'); + m_host = Core::ICore::settings()->value(keyRoot + QLatin1String(serverKeyC), QString()).toString(); } QWidget *CodePasterSettingsPage::createPage(QWidget *parent) @@ -83,12 +80,11 @@ QWidget *CodePasterSettingsPage::createPage(QWidget *parent) void CodePasterSettingsPage::apply() { - if (!m_settings) - return; - - m_settings->beginGroup(QLatin1String(settingsGroupC)); - m_settings->setValue(QLatin1String(serverKeyC), m_host); - m_settings->endGroup(); + QSettings *settings = Core::ICore::settings(); + const QString keyRoot = QLatin1String(settingsGroupC) + QLatin1Char('/'); + settings->beginGroup(QLatin1String(settingsGroupC)); + settings->setValue(QLatin1String(serverKeyC), m_host); + settings->endGroup(); } void CodePasterSettingsPage::serverChanged(const QString &host) diff --git a/src/plugins/cpaster/codepastersettings.h b/src/plugins/cpaster/codepastersettings.h index 22f342b61d..ebc58d45ab 100644 --- a/src/plugins/cpaster/codepastersettings.h +++ b/src/plugins/cpaster/codepastersettings.h @@ -55,7 +55,6 @@ public slots: void serverChanged(const QString &host); private: - QSettings *m_settings; QString m_host; }; diff --git a/src/plugins/cpptools/cppcodestylesettingspage.cpp b/src/plugins/cpptools/cppcodestylesettingspage.cpp index 8203321355..01a0589eb5 100644 --- a/src/plugins/cpptools/cppcodestylesettingspage.cpp +++ b/src/plugins/cpptools/cppcodestylesettingspage.cpp @@ -590,18 +590,15 @@ void CppCodeStyleSettingsPage::apply() CppCodeStylePreferences *originalCppCodeStylePreferences = CppToolsSettings::instance()->cppCodeStyle(); if (originalCppCodeStylePreferences->codeStyleSettings() != m_pageCppCodeStylePreferences->codeStyleSettings()) { originalCppCodeStylePreferences->setCodeStyleSettings(m_pageCppCodeStylePreferences->codeStyleSettings()); - if (s) - originalCppCodeStylePreferences->toSettings(QLatin1String(CppTools::Constants::CPP_SETTINGS_ID), s); + originalCppCodeStylePreferences->toSettings(QLatin1String(CppTools::Constants::CPP_SETTINGS_ID), s); } if (originalCppCodeStylePreferences->tabSettings() != m_pageCppCodeStylePreferences->tabSettings()) { originalCppCodeStylePreferences->setTabSettings(m_pageCppCodeStylePreferences->tabSettings()); - if (s) - originalCppCodeStylePreferences->toSettings(QLatin1String(CppTools::Constants::CPP_SETTINGS_ID), s); + originalCppCodeStylePreferences->toSettings(QLatin1String(CppTools::Constants::CPP_SETTINGS_ID), s); } if (originalCppCodeStylePreferences->currentDelegate() != m_pageCppCodeStylePreferences->currentDelegate()) { originalCppCodeStylePreferences->setCurrentDelegate(m_pageCppCodeStylePreferences->currentDelegate()); - if (s) - originalCppCodeStylePreferences->toSettings(QLatin1String(CppTools::Constants::CPP_SETTINGS_ID), s); + originalCppCodeStylePreferences->toSettings(QLatin1String(CppTools::Constants::CPP_SETTINGS_ID), s); } } } diff --git a/src/plugins/cpptools/cpptoolssettings.cpp b/src/plugins/cpptools/cpptoolssettings.cpp index 605487ffcb..2f034bac91 100644 --- a/src/plugins/cpptools/cpptoolssettings.cpp +++ b/src/plugins/cpptools/cpptoolssettings.cpp @@ -172,7 +172,7 @@ CppToolsSettings::CppToolsSettings(QObject *parent) // load global settings (after built-in settings are added to the pool) QSettings *s = Core::ICore::settings(); - d->m_globalCodeStyle->fromSettings(QLatin1String(CppTools::Constants::CPP_SETTINGS_ID), Core::ICore::settings()); + d->m_globalCodeStyle->fromSettings(QLatin1String(CppTools::Constants::CPP_SETTINGS_ID), s); // legacy handling start (Qt Creator Version < 2.4) const bool legacyTransformed = diff --git a/src/plugins/cvs/cvsplugin.cpp b/src/plugins/cvs/cvsplugin.cpp index 00454c6089..b3cadb5e17 100644 --- a/src/plugins/cvs/cvsplugin.cpp +++ b/src/plugins/cvs/cvsplugin.cpp @@ -233,8 +233,7 @@ bool CvsPlugin::initialize(const QStringList &arguments, QString *errorMessage) if (!ICore::mimeDatabase()->addMimeTypes(QLatin1String(":/trolltech.cvs/CVS.mimetypes.xml"), errorMessage)) return false; - if (QSettings *settings = ICore::settings()) - m_settings.fromSettings(settings); + m_settings.fromSettings(ICore::settings()); addAutoReleasedObject(new SettingsPage); @@ -1299,8 +1298,7 @@ void CvsPlugin::setSettings(const CvsSettings &s) { if (s != m_settings) { m_settings = s; - if (QSettings *settings = ICore::settings()) - m_settings.toSettings(settings); + m_settings.toSettings(ICore::settings()); cvsVersionControl()->emitConfigurationChanged(); } } diff --git a/src/plugins/debugger/debuggermainwindow.cpp b/src/plugins/debugger/debuggermainwindow.cpp index aa8d22e74d..5e7f805926 100644 --- a/src/plugins/debugger/debuggermainwindow.cpp +++ b/src/plugins/debugger/debuggermainwindow.cpp @@ -552,8 +552,6 @@ QWidget *DebuggerMainWindow::createContents(IMode *mode) void DebuggerMainWindow::writeSettings() const { QSettings *settings = ICore::settings(); - QTC_ASSERT(settings, return); - settings->beginGroup(QLatin1String("DebugMode.CppMode")); QHashIterator it(d->m_dockWidgetActiveStateCpp); while (it.hasNext()) { @@ -574,8 +572,6 @@ void DebuggerMainWindow::writeSettings() const void DebuggerMainWindow::readSettings() { QSettings *settings = ICore::settings(); - QTC_ASSERT(settings, return); - d->m_dockWidgetActiveStateCpp.clear(); d->m_dockWidgetActiveStateQmlCpp.clear(); diff --git a/src/plugins/designer/settingsmanager.cpp b/src/plugins/designer/settingsmanager.cpp index 3710c3100a..ba71a26bf4 100644 --- a/src/plugins/designer/settingsmanager.cpp +++ b/src/plugins/designer/settingsmanager.cpp @@ -37,61 +37,40 @@ using namespace Designer::Internal; -static inline QSettings *coreSettings() -{ - if (Core::ICore::instance()) - return Core::ICore::settings(); - return 0; -} - void SettingsManager::beginGroup(const QString &prefix) { - QSettings *settings = coreSettings(); - QTC_ASSERT(settings, return); - settings->beginGroup(addPrefix(prefix)); + Core::ICore::settings()->beginGroup(addPrefix(prefix)); } void SettingsManager::endGroup() { - QSettings *settings = coreSettings(); - QTC_ASSERT(settings, return); - settings->endGroup(); + Core::ICore::settings()->endGroup(); } bool SettingsManager::contains(const QString &key) const { - const QSettings *settings = coreSettings(); - QTC_ASSERT(settings, return false); - return settings->contains(addPrefix(key)); + return Core::ICore::settings()->contains(addPrefix(key)); } void SettingsManager::setValue(const QString &key, const QVariant &value) { - QSettings *settings = coreSettings(); - QTC_ASSERT(settings, return); - settings->setValue(addPrefix(key), value); + Core::ICore::settings()->setValue(addPrefix(key), value); } QVariant SettingsManager::value(const QString &key, const QVariant &defaultValue) const { - const QSettings *settings = coreSettings(); - QTC_ASSERT(settings, return QVariant()); - return settings->value(addPrefix(key), defaultValue); + return Core::ICore::settings()->value(addPrefix(key), defaultValue); } void SettingsManager::remove(const QString &key) { - QSettings *settings = coreSettings(); - QTC_ASSERT(settings, return); - settings->remove(addPrefix(key)); + Core::ICore::settings()->remove(addPrefix(key)); } QString SettingsManager::addPrefix(const QString &name) const { - const QSettings *settings = coreSettings(); - QTC_ASSERT(settings, return name); QString result = name; - if (settings->group().isEmpty()) + if (Core::ICore::settings()->group().isEmpty()) result.prepend(QLatin1String("Designer")); return result; } diff --git a/src/plugins/find/searchresultwindow.cpp b/src/plugins/find/searchresultwindow.cpp index 257f2966fe..1a45816174 100644 --- a/src/plugins/find/searchresultwindow.cpp +++ b/src/plugins/find/searchresultwindow.cpp @@ -521,11 +521,9 @@ void SearchResultWindow::handleExpandCollapseToolButton(bool checked) void SearchResultWindow::readSettings() { QSettings *s = Core::ICore::settings(); - if (s) { - s->beginGroup(QLatin1String(SETTINGSKEYSECTIONNAME)); - d->m_expandCollapseAction->setChecked(s->value(QLatin1String(SETTINGSKEYEXPANDRESULTS), d->m_initiallyExpand).toBool()); - s->endGroup(); - } + s->beginGroup(QLatin1String(SETTINGSKEYSECTIONNAME)); + d->m_expandCollapseAction->setChecked(s->value(QLatin1String(SETTINGSKEYEXPANDRESULTS), d->m_initiallyExpand).toBool()); + s->endGroup(); } /*! @@ -535,11 +533,9 @@ void SearchResultWindow::readSettings() void SearchResultWindow::writeSettings() { QSettings *s = Core::ICore::settings(); - if (s) { - s->beginGroup(QLatin1String(SETTINGSKEYSECTIONNAME)); - s->setValue(QLatin1String(SETTINGSKEYEXPANDRESULTS), d->m_expandCollapseAction->isChecked()); - s->endGroup(); - } + s->beginGroup(QLatin1String(SETTINGSKEYSECTIONNAME)); + s->setValue(QLatin1String(SETTINGSKEYEXPANDRESULTS), d->m_expandCollapseAction->isChecked()); + s->endGroup(); } /*! diff --git a/src/plugins/projectexplorer/projectexplorer.cpp b/src/plugins/projectexplorer/projectexplorer.cpp index ece65886ff..e89ce94967 100644 --- a/src/plugins/projectexplorer/projectexplorer.cpp +++ b/src/plugins/projectexplorer/projectexplorer.cpp @@ -1274,37 +1274,35 @@ void ProjectExplorerPlugin::savePersistentSettings() } QSettings *s = Core::ICore::settings(); - if (s) { - s->setValue(QLatin1String("ProjectExplorer/StartupSession"), d->m_session->activeSession()); - s->remove(QLatin1String("ProjectExplorer/RecentProjects/Files")); - - QStringList fileNames; - QStringList displayNames; - QList >::const_iterator it, end; - end = d->m_recentProjects.constEnd(); - for (it = d->m_recentProjects.constBegin(); it != end; ++it) { - fileNames << (*it).first; - displayNames << (*it).second; - } - - s->setValue(QLatin1String("ProjectExplorer/RecentProjects/FileNames"), fileNames); - s->setValue(QLatin1String("ProjectExplorer/RecentProjects/DisplayNames"), displayNames); - - s->setValue(QLatin1String("ProjectExplorer/Settings/BuildBeforeDeploy"), d->m_projectExplorerSettings.buildBeforeDeploy); - s->setValue(QLatin1String("ProjectExplorer/Settings/DeployBeforeRun"), d->m_projectExplorerSettings.deployBeforeRun); - s->setValue(QLatin1String("ProjectExplorer/Settings/SaveBeforeBuild"), d->m_projectExplorerSettings.saveBeforeBuild); - s->setValue(QLatin1String("ProjectExplorer/Settings/ShowCompilerOutput"), d->m_projectExplorerSettings.showCompilerOutput); - s->setValue(QLatin1String("ProjectExplorer/Settings/ShowRunOutput"), d->m_projectExplorerSettings.showRunOutput); - s->setValue(QLatin1String("ProjectExplorer/Settings/ShowDebugOutput"), d->m_projectExplorerSettings.showDebugOutput); - s->setValue(QLatin1String("ProjectExplorer/Settings/CleanOldAppOutput"), d->m_projectExplorerSettings.cleanOldAppOutput); - s->setValue(QLatin1String("ProjectExplorer/Settings/MergeStdErrAndStdOut"), d->m_projectExplorerSettings.mergeStdErrAndStdOut); - s->setValue(QLatin1String("ProjectExplorer/Settings/WrapAppOutput"), d->m_projectExplorerSettings.wrapAppOutput); - s->setValue(QLatin1String("ProjectExplorer/Settings/UseJom"), d->m_projectExplorerSettings.useJom); - s->setValue(QLatin1String("ProjectExplorer/Settings/AutoRestoreLastSession"), d->m_projectExplorerSettings.autorestoreLastSession); - s->setValue(QLatin1String("ProjectExplorer/Settings/PromptToStopRunControl"), d->m_projectExplorerSettings.prompToStopRunControl); - s->setValue(QLatin1String("ProjectExplorer/Settings/MaxAppOutputLines"), d->m_projectExplorerSettings.maxAppOutputLines); - s->setValue(QLatin1String("ProjectExplorer/Settings/EnvironmentId"), d->m_projectExplorerSettings.environmentId.toByteArray()); - } + s->setValue(QLatin1String("ProjectExplorer/StartupSession"), d->m_session->activeSession()); + s->remove(QLatin1String("ProjectExplorer/RecentProjects/Files")); + + QStringList fileNames; + QStringList displayNames; + QList >::const_iterator it, end; + end = d->m_recentProjects.constEnd(); + for (it = d->m_recentProjects.constBegin(); it != end; ++it) { + fileNames << (*it).first; + displayNames << (*it).second; + } + + s->setValue(QLatin1String("ProjectExplorer/RecentProjects/FileNames"), fileNames); + s->setValue(QLatin1String("ProjectExplorer/RecentProjects/DisplayNames"), displayNames); + + s->setValue(QLatin1String("ProjectExplorer/Settings/BuildBeforeDeploy"), d->m_projectExplorerSettings.buildBeforeDeploy); + s->setValue(QLatin1String("ProjectExplorer/Settings/DeployBeforeRun"), d->m_projectExplorerSettings.deployBeforeRun); + s->setValue(QLatin1String("ProjectExplorer/Settings/SaveBeforeBuild"), d->m_projectExplorerSettings.saveBeforeBuild); + s->setValue(QLatin1String("ProjectExplorer/Settings/ShowCompilerOutput"), d->m_projectExplorerSettings.showCompilerOutput); + s->setValue(QLatin1String("ProjectExplorer/Settings/ShowRunOutput"), d->m_projectExplorerSettings.showRunOutput); + s->setValue(QLatin1String("ProjectExplorer/Settings/ShowDebugOutput"), d->m_projectExplorerSettings.showDebugOutput); + s->setValue(QLatin1String("ProjectExplorer/Settings/CleanOldAppOutput"), d->m_projectExplorerSettings.cleanOldAppOutput); + s->setValue(QLatin1String("ProjectExplorer/Settings/MergeStdErrAndStdOut"), d->m_projectExplorerSettings.mergeStdErrAndStdOut); + s->setValue(QLatin1String("ProjectExplorer/Settings/WrapAppOutput"), d->m_projectExplorerSettings.wrapAppOutput); + s->setValue(QLatin1String("ProjectExplorer/Settings/UseJom"), d->m_projectExplorerSettings.useJom); + s->setValue(QLatin1String("ProjectExplorer/Settings/AutoRestoreLastSession"), d->m_projectExplorerSettings.autorestoreLastSession); + s->setValue(QLatin1String("ProjectExplorer/Settings/PromptToStopRunControl"), d->m_projectExplorerSettings.prompToStopRunControl); + s->setValue(QLatin1String("ProjectExplorer/Settings/MaxAppOutputLines"), d->m_projectExplorerSettings.maxAppOutputLines); + s->setValue(QLatin1String("ProjectExplorer/Settings/EnvironmentId"), d->m_projectExplorerSettings.environmentId.toByteArray()); } void ProjectExplorerPlugin::openProjectWelcomePage(const QString &fileName) diff --git a/src/plugins/qmljstools/qmljscodestylesettingspage.cpp b/src/plugins/qmljstools/qmljscodestylesettingspage.cpp index baf3b523d8..bb1fbe755b 100644 --- a/src/plugins/qmljstools/qmljscodestylesettingspage.cpp +++ b/src/plugins/qmljstools/qmljscodestylesettingspage.cpp @@ -196,13 +196,11 @@ void QmlJSCodeStyleSettingsPage::apply() TextEditor::SimpleCodeStylePreferences *originalTabPreferences = QmlJSToolsSettings::globalCodeStyle(); if (originalTabPreferences->tabSettings() != m_pageTabPreferences->tabSettings()) { originalTabPreferences->setTabSettings(m_pageTabPreferences->tabSettings()); - if (s) - originalTabPreferences->toSettings(QLatin1String(QmlJSTools::Constants::QML_JS_SETTINGS_ID), s); + originalTabPreferences->toSettings(QLatin1String(QmlJSTools::Constants::QML_JS_SETTINGS_ID), s); } if (originalTabPreferences->currentDelegate() != m_pageTabPreferences->currentDelegate()) { originalTabPreferences->setCurrentDelegate(m_pageTabPreferences->currentDelegate()); - if (s) - originalTabPreferences->toSettings(QLatin1String(QmlJSTools::Constants::QML_JS_SETTINGS_ID), s); + originalTabPreferences->toSettings(QLatin1String(QmlJSTools::Constants::QML_JS_SETTINGS_ID), s); } } } diff --git a/src/plugins/qnx/blackberryconfiguration.cpp b/src/plugins/qnx/blackberryconfiguration.cpp index 34889388c0..eceaee1916 100644 --- a/src/plugins/qnx/blackberryconfiguration.cpp +++ b/src/plugins/qnx/blackberryconfiguration.cpp @@ -131,7 +131,7 @@ bool BlackBerryConfiguration::refresh() void BlackBerryConfiguration::loadCertificates() { - QSettings *settings = Core::ICore::instance()->settings(); + QSettings *settings = Core::ICore::settings(); settings->beginGroup(SettingsGroup); settings->beginGroup(CertificateGroup); @@ -158,7 +158,7 @@ void BlackBerryConfiguration::loadCertificates() void BlackBerryConfiguration::loadNdkSettings() { - QSettings *settings = Core::ICore::instance()->settings(); + QSettings *settings = Core::ICore::settings(); settings->beginGroup(SettingsGroup); setNdkPath(settings->value(NDKLocationKey).toString()); @@ -167,7 +167,7 @@ void BlackBerryConfiguration::loadNdkSettings() void BlackBerryConfiguration::saveCertificates() { - QSettings *settings = Core::ICore::instance()->settings(); + QSettings *settings = Core::ICore::settings(); settings->beginGroup(SettingsGroup); settings->beginGroup(CertificateGroup); @@ -194,7 +194,7 @@ void BlackBerryConfiguration::saveNdkSettings() if (m_config.ndkPath.isEmpty()) return; - QSettings *settings = Core::ICore::instance()->settings(); + QSettings *settings = Core::ICore::settings(); settings->beginGroup(SettingsGroup); settings->setValue(NDKLocationKey, m_config.ndkPath); settings->endGroup(); @@ -396,7 +396,7 @@ void BlackBerryConfiguration::saveSettings() void BlackBerryConfiguration::clearNdkSettings() { - QSettings *settings = Core::ICore::instance()->settings(); + QSettings *settings = Core::ICore::settings(); settings->beginGroup(SettingsGroup); settings->remove(NDKLocationKey); settings->endGroup(); -- cgit v1.2.1 From df5fb89800f80eabdcdbc9e86ae2cd578802bb5f Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Tue, 28 May 2013 20:22:01 +0300 Subject: PythonEditor: Remove pluginspec.in Missed in 9617005e1dd129849f84780b55cd8900b00419cc Change-Id: Ibd8eba395e138a448d7316aa64b70ff89ae60900 Reviewed-by: Oswald Buddenhagen --- src/plugins/pythoneditor/pythoneditor.pro | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/pythoneditor/pythoneditor.pro b/src/plugins/pythoneditor/pythoneditor.pro index 9d33f9f8a2..614f770883 100644 --- a/src/plugins/pythoneditor/pythoneditor.pro +++ b/src/plugins/pythoneditor/pythoneditor.pro @@ -3,7 +3,7 @@ include(../../qtcreatorplugin.pri) DEFINES += \ PYTHONEDITOR_LIBRARY -OTHER_FILES += PythonEditor.pluginspec.in \ +OTHER_FILES += \ pythoneditor.mimetypes.xml RESOURCES += \ -- cgit v1.2.1 From e794d16ff39c934a125c2dc43c70883c4fc30da6 Mon Sep 17 00:00:00 2001 From: Friedemann Kleint Date: Wed, 29 May 2013 11:17:12 +0200 Subject: tr()-fixes: Add Q_OBJECT to CdbPathsPageWidget. It uses tr(). Change-Id: I2094c4a5465a8d3bc691000bfc1cae4c80712200 Reviewed-by: hjk --- src/plugins/debugger/cdb/cdboptionspage.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/plugins/debugger/cdb/cdboptionspage.cpp b/src/plugins/debugger/cdb/cdboptionspage.cpp index 2b25ede46b..648a4cd746 100644 --- a/src/plugins/debugger/cdb/cdboptionspage.cpp +++ b/src/plugins/debugger/cdb/cdboptionspage.cpp @@ -261,6 +261,7 @@ bool CdbOptionsPage::matches(const QString &s) const class CdbPathsPageWidget : public QWidget { + Q_OBJECT public: Utils::SavedActionSet group; @@ -346,3 +347,5 @@ bool CdbPathsPage::matches(const QString &searchKeyWord) const } // namespace Internal } // namespace Debugger + +#include "cdboptionspage.moc" -- cgit v1.2.1 From 61bf74be322e6c8ba701208ef21c5b7de0a1e124 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 22 May 2013 14:30:36 +0200 Subject: Debugger: Work on LLDB event handling Change-Id: Ie97c628ece272249c23aab6d5438555c051f5aa8 Reviewed-by: hjk --- src/plugins/debugger/lldb/lldbengine.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 119382b878..b9dcffa306 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -985,8 +985,12 @@ void LldbEngine::refreshState(const GdbMi &reportedState) notifyInferiorSpontaneousStop(); else if (newState == "inferiorsetupok") notifyInferiorSetupOk(); - else if (newState == "enginerunok") + else if (newState == "enginerunandinferiorrunok") notifyEngineRunAndInferiorRunOk(); + else if (newState == "enginerunandinferiorstopok") + notifyEngineRunAndInferiorStopOk(); + else if (newState == "inferiorexited") + notifyInferiorExited(); } void LldbEngine::refreshLocation(const GdbMi &reportedLocation) -- cgit v1.2.1 From 14481df6709094ea63e130ce1dccda70760d9428 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 29 May 2013 12:14:49 +0200 Subject: Debugger: Handle application output in LLDB interface Change-Id: Ie97c628ece272249c23aab6d5438555c051f5aa1 Reviewed-by: hjk --- src/plugins/debugger/lldb/lldbengine.cpp | 14 ++++++++++++++ src/plugins/debugger/lldb/lldbengine.h | 3 ++- 2 files changed, 16 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index b9dcffa306..4af3b76380 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -249,6 +249,8 @@ void LldbEngine::handleResponse(const QByteArray &response) refreshSymbols(item); else if (name == "bkpts") refreshBreakpoints(item); + else if (name == "output") + refreshOutput(item); else if (name == "disassembly") refreshDisassembly(item); else if (name == "memory") @@ -483,6 +485,18 @@ void LldbEngine::refreshMemory(const GdbMi &data) } } +void LldbEngine::refreshOutput(const GdbMi &output) +{ + QByteArray channel = output["channel"].data(); + QByteArray data = QByteArray::fromHex(output["data"].data()); + LogChannel ch = AppStuff; + if (channel == "stdout") + ch = AppOutput; + else if (channel == "stderr") + ch = AppError; + showMessage(QString::fromUtf8(data), ch); +} + void LldbEngine::refreshBreakpoints(const GdbMi &bkpts) { BreakHandler *handler = breakHandler(); diff --git a/src/plugins/debugger/lldb/lldbengine.h b/src/plugins/debugger/lldb/lldbengine.h index 818ee91ca6..82c58ea46d 100644 --- a/src/plugins/debugger/lldb/lldbengine.h +++ b/src/plugins/debugger/lldb/lldbengine.h @@ -156,13 +156,14 @@ private: void refreshAll(const GdbMi &all); void refreshThreads(const GdbMi &threads); void refreshStack(const GdbMi &stack); - void refreshRegisters(const GdbMi &stack); + void refreshRegisters(const GdbMi ®isters); void refreshLocals(const GdbMi &vars); void refreshTypeInfo(const GdbMi &typeInfo); void refreshState(const GdbMi &state); void refreshLocation(const GdbMi &location); void refreshModules(const GdbMi &modules); void refreshSymbols(const GdbMi &symbols); + void refreshOutput(const GdbMi &output); void refreshBreakpoints(const GdbMi &bkpts); void runContinuation(const GdbMi &data); -- cgit v1.2.1 From 8934100a127631a9e66ad0fb3356ad815527f464 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 28 May 2013 15:57:45 +0200 Subject: QmlDesigner: Export RewriterException Change-Id: I292a974647cc720279ad678426db90f77816a777 Reviewed-by: Thomas Hartmann --- src/plugins/qmldesigner/designercore/include/rewritingexception.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/qmldesigner/designercore/include/rewritingexception.h b/src/plugins/qmldesigner/designercore/include/rewritingexception.h index 51eadee4e6..48abe9b96c 100644 --- a/src/plugins/qmldesigner/designercore/include/rewritingexception.h +++ b/src/plugins/qmldesigner/designercore/include/rewritingexception.h @@ -34,7 +34,7 @@ namespace QmlDesigner { -class RewritingException: public Exception +class QMLDESIGNERCORE_EXPORT RewritingException: public Exception { public: RewritingException(int line, -- cgit v1.2.1 From c7dd854842e57d10b4781e8d592278351a778d55 Mon Sep 17 00:00:00 2001 From: Marco Bubke Date: Tue, 28 May 2013 16:48:46 +0200 Subject: QmlDesigner: Add helper functions for translated text Change-Id: Ib5b5037f492f7f7ee448aebd5215d28e0ccae7f0 Reviewed-by: Thomas Hartmann --- .../designercore/include/qmlobjectnode.h | 4 +++ .../designercore/model/qmlobjectnode.cpp | 33 ++++++++++++++++++++++ 2 files changed, 37 insertions(+) (limited to 'src') diff --git a/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h b/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h index 552b5b1fb2..bbbecdbe6f 100644 --- a/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h +++ b/src/plugins/qmldesigner/designercore/include/qmlobjectnode.h @@ -72,6 +72,8 @@ public: bool instanceHasBinding(const PropertyName &name) const; bool propertyAffectedByCurrentState(const PropertyName &name) const; QVariant modelValue(const PropertyName &name) const; + bool isTranslatableText(const PropertyName &name) const; + QString stripedTranslatableText(const PropertyName &name) const; QString expression(const PropertyName &name) const; bool isInBaseState() const; QmlPropertyChanges propertyChangeForCurrentState() const; @@ -98,6 +100,8 @@ public: static QVariant instanceValue(const ModelNode &modelNode, const PropertyName &name); + static QString generateTranslatableText(const QString& text); + protected: NodeInstance nodeInstance() const; QmlObjectNode nodeForInstance(const NodeInstance &instance) const; diff --git a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp index 0681f2f3f5..42643ed82f 100644 --- a/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp +++ b/src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp @@ -175,6 +175,34 @@ QVariant QmlObjectNode::modelValue(const PropertyName &name) const return propertyChanges.modelNode().variantProperty(name).value(); } +bool QmlObjectNode::isTranslatableText(const PropertyName &name) const +{ + if (modelNode().metaInfo().isValid() && modelNode().metaInfo().hasProperty(name)) + if (modelNode().metaInfo().propertyTypeName(name) == "QString" || modelNode().metaInfo().propertyTypeName(name) == "string") { + if (modelNode().hasBindingProperty(name)) { + static QRegExp regularExpressionPatter("qsTr\\((\".*\")\\)"); + return regularExpressionPatter.exactMatch(modelNode().bindingProperty(name).expression()); + } + + return false; + } + + return false; +} + +QString QmlObjectNode::stripedTranslatableText(const PropertyName &name) const +{ + if (modelNode().hasBindingProperty(name)) { + static QRegExp regularExpressionPatter("qsTr\\(\"(.*)\"\\)"); + if (regularExpressionPatter.exactMatch(modelNode().bindingProperty(name).expression())) + return regularExpressionPatter.cap(1); + } else { + return modelNode().variantProperty(name).value().toString(); + } + + return QString(); +} + QString QmlObjectNode::expression(const PropertyName &name) const { if (!isValid()) @@ -387,6 +415,11 @@ QVariant QmlObjectNode::instanceValue(const ModelNode &modelNode, const Property return modelView->instanceForModelNode(modelNode).property(name); } +QString QmlObjectNode::generateTranslatableText(const QString &text) +{ + return QString("qsTr(\"%1\")").arg(text); +} + TypeName QmlObjectNode::instanceType(const PropertyName &name) const { return nodeInstance().instanceType(name); -- cgit v1.2.1 From 281c42c7614e12f6b2f5e444ca0818837c13fb05 Mon Sep 17 00:00:00 2001 From: hjk Date: Sat, 25 May 2013 02:48:52 +0200 Subject: BinEditor: Rename Editor->EditorWidget, Editable->Editor Closer to modern naming convention. Change-Id: I80875d865336495995e0a8ad05aaf49e22fa3fb0 Reviewed-by: David Schulz --- src/plugins/bineditor/bineditor.cpp | 136 +++++++++++++++--------------- src/plugins/bineditor/bineditor.h | 6 +- src/plugins/bineditor/bineditorplugin.cpp | 122 ++++++++++++++------------- src/plugins/bineditor/bineditorplugin.h | 6 +- 4 files changed, 136 insertions(+), 134 deletions(-) (limited to 'src') diff --git a/src/plugins/bineditor/bineditor.cpp b/src/plugins/bineditor/bineditor.cpp index 2037b4542d..4fa6c608eb 100644 --- a/src/plugins/bineditor/bineditor.cpp +++ b/src/plugins/bineditor/bineditor.cpp @@ -85,7 +85,7 @@ static QByteArray calculateHexPattern(const QByteArray &pattern) namespace BINEditor { -BinEditor::BinEditor(QWidget *parent) +BinEditorWidget::BinEditorWidget(QWidget *parent) : QAbstractScrollArea(parent) { m_bytesPerLine = 16; @@ -108,11 +108,11 @@ BinEditor::BinEditor(QWidget *parent) setFrameStyle(QFrame::Plain); } -BinEditor::~BinEditor() +BinEditorWidget::~BinEditorWidget() { } -void BinEditor::init() +void BinEditorWidget::init() { const int addressStringWidth = 2*m_addressBytes + (m_addressBytes - 1) / 2; @@ -162,7 +162,7 @@ void BinEditor::init() } -void BinEditor::addData(quint64 block, const QByteArray &data) +void BinEditorWidget::addData(quint64 block, const QByteArray &data) { QTC_ASSERT(data.size() == m_blockSize, return); const quint64 addr = block * m_blockSize; @@ -176,7 +176,7 @@ void BinEditor::addData(quint64 block, const QByteArray &data) } } -bool BinEditor::requestDataAt(int pos) const +bool BinEditorWidget::requestDataAt(int pos) const { int block = pos / m_blockSize; BlockMap::const_iterator it = m_modifiedData.find(block); @@ -187,27 +187,27 @@ bool BinEditor::requestDataAt(int pos) const return true; if (!m_requests.contains(block)) { m_requests.insert(block); - emit const_cast(this)-> + emit const_cast(this)-> dataRequested(editor(), m_baseAddr / m_blockSize + block); return true; } return false; } -bool BinEditor::requestOldDataAt(int pos) const +bool BinEditorWidget::requestOldDataAt(int pos) const { int block = pos / m_blockSize; BlockMap::const_iterator it = m_oldData.find(block); return it != m_oldData.end(); } -char BinEditor::dataAt(int pos, bool old) const +char BinEditorWidget::dataAt(int pos, bool old) const { int block = pos / m_blockSize; return blockData(block, old).at(pos - block*m_blockSize); } -void BinEditor::changeDataAt(int pos, char c) +void BinEditorWidget::changeDataAt(int pos, char c) { int block = pos / m_blockSize; BlockMap::iterator it = m_modifiedData.find(block); @@ -225,7 +225,7 @@ void BinEditor::changeDataAt(int pos, char c) emit dataChanged(editor(), m_baseAddr + pos, QByteArray(1, c)); } -QByteArray BinEditor::dataMid(int from, int length, bool old) const +QByteArray BinEditorWidget::dataMid(int from, int length, bool old) const { int end = from + length; int block = from / m_blockSize; @@ -239,7 +239,7 @@ QByteArray BinEditor::dataMid(int from, int length, bool old) const return data.mid(from - ((from / m_blockSize) * m_blockSize), length); } -QByteArray BinEditor::blockData(int block, bool old) const +QByteArray BinEditorWidget::blockData(int block, bool old) const { if (old) { BlockMap::const_iterator it = m_modifiedData.find(block); @@ -251,12 +251,12 @@ QByteArray BinEditor::blockData(int block, bool old) const ? it.value() : m_data.value(block, m_emptyBlock); } -void BinEditor::setFontSettings(const TextEditor::FontSettings &fs) +void BinEditorWidget::setFontSettings(const TextEditor::FontSettings &fs) { setFont(fs.toTextCharFormat(TextEditor::C_TEXT).font()); } -void BinEditor::setBlinkingCursorEnabled(bool enable) +void BinEditorWidget::setBlinkingCursorEnabled(bool enable) { if (enable && QApplication::cursorFlashTime() > 0) m_cursorBlinkTimer.start(QApplication::cursorFlashTime() / 2, this); @@ -266,17 +266,17 @@ void BinEditor::setBlinkingCursorEnabled(bool enable) updateLines(); } -void BinEditor::focusInEvent(QFocusEvent *) +void BinEditorWidget::focusInEvent(QFocusEvent *) { setBlinkingCursorEnabled(true); } -void BinEditor::focusOutEvent(QFocusEvent *) +void BinEditorWidget::focusOutEvent(QFocusEvent *) { setBlinkingCursorEnabled(false); } -void BinEditor::timerEvent(QTimerEvent *e) +void BinEditorWidget::timerEvent(QTimerEvent *e) { if (e->timerId() == m_autoScrollTimer.timerId()) { QRect visible = viewport()->rect(); @@ -314,7 +314,7 @@ void BinEditor::timerEvent(QTimerEvent *e) } -void BinEditor::setModified(bool modified) +void BinEditorWidget::setModified(bool modified) { int unmodifiedState = modified ? -1 : m_undoStack.size(); if (unmodifiedState == m_unmodifiedState) @@ -323,22 +323,22 @@ void BinEditor::setModified(bool modified) emit modificationChanged(m_undoStack.size() != m_unmodifiedState); } -bool BinEditor::isModified() const +bool BinEditorWidget::isModified() const { return (m_undoStack.size() != m_unmodifiedState); } -void BinEditor::setReadOnly(bool readOnly) +void BinEditorWidget::setReadOnly(bool readOnly) { m_readOnly = readOnly; } -bool BinEditor::isReadOnly() const +bool BinEditorWidget::isReadOnly() const { return m_readOnly; } -bool BinEditor::save(QString *errorString, const QString &oldFileName, const QString &newFileName) +bool BinEditorWidget::save(QString *errorString, const QString &oldFileName, const QString &newFileName) { if (oldFileName != newFileName) { QString tmpName; @@ -381,7 +381,7 @@ bool BinEditor::save(QString *errorString, const QString &oldFileName, const QSt return true; } -void BinEditor::setSizes(quint64 startAddr, int range, int blockSize) +void BinEditorWidget::setSizes(quint64 startAddr, int range, int blockSize) { int newBlockSize = blockSize; QTC_ASSERT((blockSize/m_bytesPerLine) * m_bytesPerLine == blockSize, @@ -423,12 +423,12 @@ void BinEditor::setSizes(quint64 startAddr, int range, int blockSize) viewport()->update(); } -void BinEditor::resizeEvent(QResizeEvent *) +void BinEditorWidget::resizeEvent(QResizeEvent *) { init(); } -void BinEditor::scrollContentsBy(int dx, int dy) +void BinEditorWidget::scrollContentsBy(int dx, int dy) { viewport()->scroll(isRightToLeft() ? -dx : dx, dy * m_lineHeight); const QScrollBar * const scrollBar = verticalScrollBar(); @@ -439,7 +439,7 @@ void BinEditor::scrollContentsBy(int dx, int dy) emit newRangeRequested(editor(), baseAddress()); } -void BinEditor::changeEvent(QEvent *e) +void BinEditorWidget::changeEvent(QEvent *e) { QAbstractScrollArea::changeEvent(e); if (e->type() == QEvent::ActivationChange) { @@ -451,7 +451,7 @@ void BinEditor::changeEvent(QEvent *e) } -void BinEditor::wheelEvent(QWheelEvent *e) +void BinEditorWidget::wheelEvent(QWheelEvent *e) { if (e->modifiers() & Qt::ControlModifier) { const int delta = e->delta(); @@ -466,7 +466,7 @@ void BinEditor::wheelEvent(QWheelEvent *e) -QRect BinEditor::cursorRect() const +QRect BinEditorWidget::cursorRect() const { int topLine = verticalScrollBar()->value(); int line = m_cursorPosition / m_bytesPerLine; @@ -481,7 +481,7 @@ QRect BinEditor::cursorRect() const return QRect(x, y, w, m_lineHeight); } -int BinEditor::posAt(const QPoint &pos) const +int BinEditorWidget::posAt(const QPoint &pos) const { int xoffset = horizontalScrollBar()->value(); int x = xoffset + pos.x() - m_margin - m_labelWidth; @@ -508,19 +508,19 @@ int BinEditor::posAt(const QPoint &pos) const return qMin(m_size, qMin(m_numLines, topLine + line) * m_bytesPerLine) + column; } -bool BinEditor::inTextArea(const QPoint &pos) const +bool BinEditorWidget::inTextArea(const QPoint &pos) const { int xoffset = horizontalScrollBar()->value(); int x = xoffset + pos.x() - m_margin - m_labelWidth; return (x > m_bytesPerLine * m_columnWidth + m_charWidth/2); } -void BinEditor::updateLines() +void BinEditorWidget::updateLines() { updateLines(m_cursorPosition, m_cursorPosition); } -void BinEditor::updateLines(int fromPosition, int toPosition) +void BinEditorWidget::updateLines(int fromPosition, int toPosition) { int topLine = verticalScrollBar()->value(); int firstLine = qMin(fromPosition, toPosition) / m_bytesPerLine; @@ -531,7 +531,7 @@ void BinEditor::updateLines(int fromPosition, int toPosition) viewport()->update(0, y, viewport()->width(), h); } -int BinEditor::dataIndexOf(const QByteArray &pattern, int from, bool caseSensitive) const +int BinEditorWidget::dataIndexOf(const QByteArray &pattern, int from, bool caseSensitive) const { int trailing = pattern.size(); if (trailing > m_blockSize) @@ -564,7 +564,7 @@ int BinEditor::dataIndexOf(const QByteArray &pattern, int from, bool caseSensiti return end == m_size ? -1 : -2; } -int BinEditor::dataLastIndexOf(const QByteArray &pattern, int from, bool caseSensitive) const +int BinEditorWidget::dataLastIndexOf(const QByteArray &pattern, int from, bool caseSensitive) const { int trailing = pattern.size(); if (trailing > m_blockSize) @@ -596,7 +596,7 @@ int BinEditor::dataLastIndexOf(const QByteArray &pattern, int from, bool caseSen } -int BinEditor::find(const QByteArray &pattern_arg, int from, +int BinEditorWidget::find(const QByteArray &pattern_arg, int from, QTextDocument::FindFlags findFlags) { if (pattern_arg.isEmpty()) @@ -633,7 +633,7 @@ int BinEditor::find(const QByteArray &pattern_arg, int from, return pos; } -int BinEditor::findPattern(const QByteArray &data, const QByteArray &dataHex, +int BinEditorWidget::findPattern(const QByteArray &data, const QByteArray &dataHex, int from, int offset, int *match) { if (m_searchPattern.isEmpty()) @@ -658,7 +658,7 @@ int BinEditor::findPattern(const QByteArray &data, const QByteArray &dataHex, } -void BinEditor::drawItems(QPainter *painter, int x, int y, const QString &itemString) +void BinEditorWidget::drawItems(QPainter *painter, int x, int y, const QString &itemString) { if (m_isMonospacedFont) { painter->drawText(x, y, itemString); @@ -668,7 +668,7 @@ void BinEditor::drawItems(QPainter *painter, int x, int y, const QString &itemSt } } -void BinEditor::drawChanges(QPainter *painter, int x, int y, const char *changes) +void BinEditorWidget::drawChanges(QPainter *painter, int x, int y, const char *changes) { const QBrush red(QColor(250, 150, 150)); for (int i = 0; i < m_bytesPerLine; ++i) { @@ -679,7 +679,7 @@ void BinEditor::drawChanges(QPainter *painter, int x, int y, const char *changes } } -QString BinEditor::addressString(quint64 address) +QString BinEditorWidget::addressString(quint64 address) { QChar *addressStringData = m_addressString.data(); const char *hex = "0123456789abcdef"; @@ -698,7 +698,7 @@ QString BinEditor::addressString(quint64 address) return m_addressString; } -void BinEditor::paintEvent(QPaintEvent *e) +void BinEditorWidget::paintEvent(QPaintEvent *e) { QPainter painter(viewport()); const int topLine = verticalScrollBar()->value(); @@ -930,12 +930,12 @@ void BinEditor::paintEvent(QPaintEvent *e) } -int BinEditor::cursorPosition() const +int BinEditorWidget::cursorPosition() const { return m_cursorPosition; } -void BinEditor::setCursorPosition(int pos, MoveMode moveMode) +void BinEditorWidget::setCursorPosition(int pos, MoveMode moveMode) { pos = qMin(m_size-1, qMax(0, pos)); int oldCursorPosition = m_cursorPosition; @@ -957,7 +957,7 @@ void BinEditor::setCursorPosition(int pos, MoveMode moveMode) } -void BinEditor::ensureCursorVisible() +void BinEditorWidget::ensureCursorVisible() { QRect cr = cursorRect(); QRect vr = viewport()->rect(); @@ -969,7 +969,7 @@ void BinEditor::ensureCursorVisible() } } -void BinEditor::mousePressEvent(QMouseEvent *e) +void BinEditorWidget::mousePressEvent(QMouseEvent *e) { if (e->button() != Qt::LeftButton) return; @@ -982,7 +982,7 @@ void BinEditor::mousePressEvent(QMouseEvent *e) } } -void BinEditor::mouseMoveEvent(QMouseEvent *e) +void BinEditorWidget::mouseMoveEvent(QMouseEvent *e) { if (!(e->buttons() & Qt::LeftButton)) return; @@ -998,7 +998,7 @@ void BinEditor::mouseMoveEvent(QMouseEvent *e) m_autoScrollTimer.start(100, this); } -void BinEditor::mouseReleaseEvent(QMouseEvent *) +void BinEditorWidget::mouseReleaseEvent(QMouseEvent *) { if (m_autoScrollTimer.isActive()) { m_autoScrollTimer.stop(); @@ -1006,13 +1006,13 @@ void BinEditor::mouseReleaseEvent(QMouseEvent *) } } -void BinEditor::selectAll() +void BinEditorWidget::selectAll() { setCursorPosition(0); setCursorPosition(m_size-1, KeepAnchor); } -void BinEditor::clear() +void BinEditorWidget::clear() { m_baseAddr = 0; m_data.clear(); @@ -1034,7 +1034,7 @@ void BinEditor::clear() viewport()->update(); } -bool BinEditor::event(QEvent *e) +bool BinEditorWidget::event(QEvent *e) { switch (e->type()) { case QEvent::KeyPress: @@ -1075,7 +1075,7 @@ bool BinEditor::event(QEvent *e) return QAbstractScrollArea::event(e); } -QString BinEditor::toolTip(const QHelpEvent *helpEvent) const +QString BinEditorWidget::toolTip(const QHelpEvent *helpEvent) const { // Selection if mouse is in, else 1 byte at cursor int selStart = selectionStart(); @@ -1257,7 +1257,7 @@ QString BinEditor::toolTip(const QHelpEvent *helpEvent) const return msg; } -void BinEditor::keyPressEvent(QKeyEvent *e) +void BinEditorWidget::keyPressEvent(QKeyEvent *e) { if (e == QKeySequence::SelectAll) { @@ -1356,7 +1356,7 @@ void BinEditor::keyPressEvent(QKeyEvent *e) e->accept(); } -void BinEditor::zoomIn(int range) +void BinEditorWidget::zoomIn(int range) { QFont f = font(); const int newSize = f.pointSize() + range; @@ -1366,12 +1366,12 @@ void BinEditor::zoomIn(int range) setFont(f); } -void BinEditor::zoomOut(int range) +void BinEditorWidget::zoomOut(int range) { zoomIn(-range); } -void BinEditor::copy(bool raw) +void BinEditorWidget::copy(bool raw) { int selStart = selectionStart(); int selEnd = selectionEnd(); @@ -1400,7 +1400,7 @@ void BinEditor::copy(bool raw) QApplication::clipboard()->setText(hexString); } -void BinEditor::highlightSearchResults(const QByteArray &pattern, QTextDocument::FindFlags findFlags) +void BinEditorWidget::highlightSearchResults(const QByteArray &pattern, QTextDocument::FindFlags findFlags) { if (m_searchPattern == pattern) return; @@ -1412,7 +1412,7 @@ void BinEditor::highlightSearchResults(const QByteArray &pattern, QTextDocument: viewport()->update(); } -void BinEditor::changeData(int position, uchar character, bool highNibble) +void BinEditorWidget::changeData(int position, uchar character, bool highNibble) { if (!requestDataAt(position)) return; @@ -1444,7 +1444,7 @@ void BinEditor::changeData(int position, uchar character, bool highNibble) } -void BinEditor::undo() +void BinEditorWidget::undo() { if (m_undoStack.isEmpty()) return; @@ -1464,7 +1464,7 @@ void BinEditor::undo() emit redoAvailable(true); } -void BinEditor::redo() +void BinEditorWidget::redo() { if (m_redoStack.isEmpty()) return; @@ -1483,7 +1483,7 @@ void BinEditor::redo() emit redoAvailable(false); } -void BinEditor::contextMenuEvent(QContextMenuEvent *event) +void BinEditorWidget::contextMenuEvent(QContextMenuEvent *event) { const int selStart = selectionStart(); const int byteCount = selectionEnd() - selStart + 1; @@ -1545,7 +1545,7 @@ void BinEditor::contextMenuEvent(QContextMenuEvent *event) delete contextMenu; } -void BinEditor::setupJumpToMenuAction(QMenu *menu, QAction *actionHere, +void BinEditorWidget::setupJumpToMenuAction(QMenu *menu, QAction *actionHere, QAction *actionNew, quint64 addr) { actionHere->setText(tr("Jump to Address 0x%1 in This Window") @@ -1558,7 +1558,7 @@ void BinEditor::setupJumpToMenuAction(QMenu *menu, QAction *actionHere, actionNew->setEnabled(false); } -void BinEditor::jumpToAddress(quint64 address) +void BinEditorWidget::jumpToAddress(quint64 address) { if (address >= m_baseAddr && address < m_baseAddr + m_size) setCursorPosition(address - m_baseAddr); @@ -1566,26 +1566,26 @@ void BinEditor::jumpToAddress(quint64 address) emit newRangeRequested(editor(), address); } -void BinEditor::setNewWindowRequestAllowed(bool c) +void BinEditorWidget::setNewWindowRequestAllowed(bool c) { m_canRequestNewWindow = c; } -void BinEditor::updateContents() +void BinEditorWidget::updateContents() { m_oldData = m_data; m_data.clear(); setSizes(baseAddress() + cursorPosition(), m_size, m_blockSize); } -QPoint BinEditor::offsetToPos(int offset) const +QPoint BinEditorWidget::offsetToPos(int offset) const { const int x = m_labelWidth + (offset % m_bytesPerLine) * m_columnWidth; const int y = (offset / m_bytesPerLine - verticalScrollBar()->value()) * m_lineHeight; return QPoint(x, y); } -void BinEditor::asFloat(int offset, float &value, bool old) const +void BinEditorWidget::asFloat(int offset, float &value, bool old) const { value = 0; const QByteArray data = dataMid(offset, sizeof(float), old); @@ -1594,7 +1594,7 @@ void BinEditor::asFloat(int offset, float &value, bool old) const value = *f; } -void BinEditor::asDouble(int offset, double &value, bool old) const +void BinEditorWidget::asDouble(int offset, double &value, bool old) const { value = 0; const QByteArray data = dataMid(offset, sizeof(double), old); @@ -1603,7 +1603,7 @@ void BinEditor::asDouble(int offset, double &value, bool old) const value = *f; } -void BinEditor::asIntegers(int offset, int count, quint64 &bigEndianValue, +void BinEditorWidget::asIntegers(int offset, int count, quint64 &bigEndianValue, quint64 &littleEndianValue, bool old) const { bigEndianValue = littleEndianValue = 0; @@ -1615,12 +1615,12 @@ void BinEditor::asIntegers(int offset, int count, quint64 &bigEndianValue, } } -bool BinEditor::isMemoryView() const +bool BinEditorWidget::isMemoryView() const { return editor()->property("MemoryView").toBool(); } -void BinEditor::setMarkup(const QList &markup) +void BinEditorWidget::setMarkup(const QList &markup) { m_markup = markup; viewport()->update(); diff --git a/src/plugins/bineditor/bineditor.h b/src/plugins/bineditor/bineditor.h index 9242a5b00f..83ef6a346c 100644 --- a/src/plugins/bineditor/bineditor.h +++ b/src/plugins/bineditor/bineditor.h @@ -55,7 +55,7 @@ class FontSettings; namespace BINEditor { -class BinEditor : public QAbstractScrollArea +class BinEditorWidget : public QAbstractScrollArea { Q_OBJECT Q_PROPERTY(bool modified READ isModified WRITE setModified DESIGNABLE false) @@ -63,8 +63,8 @@ class BinEditor : public QAbstractScrollArea Q_PROPERTY(QList markup READ markup WRITE setMarkup DESIGNABLE false) Q_PROPERTY(bool newWindowRequestAllowed READ newWindowRequestAllowed WRITE setNewWindowRequestAllowed DESIGNABLE false) public: - BinEditor(QWidget *parent = 0); - ~BinEditor(); + BinEditorWidget(QWidget *parent = 0); + ~BinEditorWidget(); quint64 baseAddress() const { return m_baseAddr; } diff --git a/src/plugins/bineditor/bineditorplugin.cpp b/src/plugins/bineditor/bineditorplugin.cpp index f6e401dae7..a805e66f6c 100644 --- a/src/plugins/bineditor/bineditorplugin.cpp +++ b/src/plugins/bineditor/bineditorplugin.cpp @@ -70,15 +70,17 @@ using namespace BINEditor::Internal; class BinEditorFind : public Find::IFindSupport { Q_OBJECT + public: - BinEditorFind(BinEditor *editor) + BinEditorFind(BinEditorWidget *widget) { - m_editor = editor; + m_widget = widget; m_incrementalStartPos = m_contPos = -1; } ~BinEditorFind() {} bool supportsReplace() const { return false; } + Find::FindFlags supportedFindFlags() const { return Find::FindBackward | Find::FindCaseSensitively; @@ -91,21 +93,21 @@ public: virtual void highlightAll(const QString &txt, Find::FindFlags findFlags) { - m_editor->highlightSearchResults(txt.toLatin1(), Find::textDocumentFlagsForFindFlags(findFlags)); + m_widget->highlightSearchResults(txt.toLatin1(), Find::textDocumentFlagsForFindFlags(findFlags)); } - void clearResults() { m_editor->highlightSearchResults(QByteArray()); } + void clearResults() { m_widget->highlightSearchResults(QByteArray()); } QString currentFindString() const { return QString(); } QString completedFindString() const { return QString(); } int find(const QByteArray &pattern, int pos, Find::FindFlags findFlags) { if (pattern.isEmpty()) { - m_editor->setCursorPosition(pos); + m_widget->setCursorPosition(pos); return pos; } - return m_editor->find(pattern, pos, Find::textDocumentFlagsForFindFlags(findFlags)); + return m_widget->find(pattern, pos, Find::textDocumentFlagsForFindFlags(findFlags)); } Result findIncremental(const QString &txt, Find::FindFlags findFlags) { @@ -114,25 +116,25 @@ public: resetIncrementalSearch(); // Because we don't search for nibbles. m_lastPattern = pattern; if (m_incrementalStartPos < 0) - m_incrementalStartPos = m_editor->selectionStart(); + m_incrementalStartPos = m_widget->selectionStart(); if (m_contPos == -1) m_contPos = m_incrementalStartPos; int found = find(pattern, m_contPos, findFlags); Result result; if (found >= 0) { result = Found; - m_editor->highlightSearchResults(pattern, Find::textDocumentFlagsForFindFlags(findFlags)); + m_widget->highlightSearchResults(pattern, Find::textDocumentFlagsForFindFlags(findFlags)); m_contPos = -1; } else { if (found == -2) { result = NotYetFound; m_contPos += findFlags & Find::FindBackward - ? -BinEditor::SearchStride : BinEditor::SearchStride; + ? -BinEditorWidget::SearchStride : BinEditorWidget::SearchStride; } else { result = NotFound; m_contPos = -1; - m_editor->highlightSearchResults(QByteArray(), 0); + m_widget->highlightSearchResults(QByteArray(), 0); } } return result; @@ -142,9 +144,9 @@ public: QByteArray pattern = txt.toLatin1(); bool wasReset = (m_incrementalStartPos < 0); if (m_contPos == -1) { - m_contPos = m_editor->cursorPosition(); + m_contPos = m_widget->cursorPosition(); if (findFlags & Find::FindBackward) - m_contPos = m_editor->selectionStart()-1; + m_contPos = m_widget->selectionStart()-1; } int found = find(pattern, m_contPos, findFlags); Result result; @@ -153,11 +155,11 @@ public: m_incrementalStartPos = found; m_contPos = -1; if (wasReset) - m_editor->highlightSearchResults(pattern, Find::textDocumentFlagsForFindFlags(findFlags)); + m_widget->highlightSearchResults(pattern, Find::textDocumentFlagsForFindFlags(findFlags)); } else if (found == -2) { result = NotYetFound; m_contPos += findFlags & Find::FindBackward - ? -BinEditor::SearchStride : BinEditor::SearchStride; + ? -BinEditorWidget::SearchStride : BinEditorWidget::SearchStride; } else { result = NotFound; m_contPos = -1; @@ -167,7 +169,7 @@ public: } private: - BinEditor *m_editor; + BinEditorWidget *m_widget; int m_incrementalStartPos; int m_contPos; // Only valid if last result was NotYetFound. QByteArray m_lastPattern; @@ -178,13 +180,13 @@ class BinEditorDocument : public Core::IDocument { Q_OBJECT public: - BinEditorDocument(BinEditor *parent) : + BinEditorDocument(BinEditorWidget *parent) : Core::IDocument(parent) { - m_editor = parent; - connect(m_editor, SIGNAL(dataRequested(Core::IEditor*,quint64)), + m_widget = parent; + connect(m_widget, SIGNAL(dataRequested(Core::IEditor*,quint64)), this, SLOT(provideData(Core::IEditor*,quint64))); - connect(m_editor, SIGNAL(newRangeRequested(Core::IEditor*,quint64)), + connect(m_widget, SIGNAL(newRangeRequested(Core::IEditor*,quint64)), this, SLOT(provideNewRange(Core::IEditor*,quint64))); } ~BinEditorDocument() {} @@ -198,9 +200,9 @@ public: QTC_ASSERT(!autoSave, return true); // bineditor does not support autosave - it would be a bit expensive const QString fileNameToUse = fileName.isEmpty() ? m_fileName : fileName; - if (m_editor->save(errorString, m_fileName, fileNameToUse)) { + if (m_widget->save(errorString, m_fileName, fileNameToUse)) { m_fileName = fileNameToUse; - m_editor->editor()->setDisplayName(QFileInfo(fileNameToUse).fileName()); + m_widget->editor()->setDisplayName(QFileInfo(fileNameToUse).fileName()); emit changed(); return true; } else { @@ -210,7 +212,7 @@ public: void rename(const QString &newName) { m_fileName = newName; - m_editor->editor()->setDisplayName(QFileInfo(fileName()).fileName()); + m_widget->editor()->setDisplayName(QFileInfo(fileName()).fileName()); emit changed(); } @@ -230,8 +232,8 @@ public: if (file.open(QIODevice::ReadOnly)) { file.close(); m_fileName = fileName; - m_editor->setSizes(offset, file.size()); - m_editor->editor()->setDisplayName(QFileInfo(fileName).fileName()); + m_widget->setSizes(offset, file.size()); + m_widget->editor()->setDisplayName(QFileInfo(fileName).fileName()); return true; } QString errStr = tr("Cannot open %1: %2").arg( @@ -249,14 +251,14 @@ private slots: return; QFile file(m_fileName); if (file.open(QIODevice::ReadOnly)) { - int blockSize = m_editor->dataBlockSize(); + int blockSize = m_widget->dataBlockSize(); file.seek(block * blockSize); QByteArray data = file.read(blockSize); file.close(); const int dataSize = data.size(); if (dataSize != blockSize) data += QByteArray(blockSize - dataSize, 0); - m_editor->addData(block, data); + m_widget->addData(block, data); } else { QMessageBox::critical(Core::ICore::mainWindow(), tr("File Error"), tr("Cannot open %1: %2").arg( @@ -280,10 +282,10 @@ public: QString suggestedFileName() const { return QString(); } - bool isModified() const { return m_editor->isMemoryView() ? false : m_editor->isModified(); } + bool isModified() const { return m_widget->isMemoryView() ? false : m_widget->isModified(); } bool isFileReadOnly() const { - if (m_editor->isMemoryView() || m_fileName.isEmpty()) + if (m_widget->isMemoryView() || m_fileName.isEmpty()) return false; const QFileInfo fi(m_fileName); return !fi.isWritable(); @@ -306,19 +308,19 @@ public: } private: - BinEditor *m_editor; + BinEditorWidget *m_widget; QString m_fileName; }; -class BinEditorInterface : public Core::IEditor +class BinEditor : public Core::IEditor { Q_OBJECT public: - BinEditorInterface(BinEditor *editor) + BinEditor(BinEditorWidget *widget) { - setWidget(editor); - m_editor = editor; - m_file = new BinEditorDocument(m_editor); + setWidget(widget); + m_widget = widget; + m_file = new BinEditorDocument(m_widget); m_context.add(Core::Constants::K_DEFAULT_BINARY_EDITOR_ID); m_context.add(Constants::C_BINEDITOR); m_addressEdit = new QLineEdit; @@ -339,19 +341,19 @@ public: m_toolBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); m_toolBar->addWidget(w); - connect(m_editor, SIGNAL(cursorPositionChanged(int)), this, + connect(m_widget, SIGNAL(cursorPositionChanged(int)), this, SLOT(updateCursorPosition(int))); connect(m_file, SIGNAL(changed()), this, SIGNAL(changed())); connect(m_addressEdit, SIGNAL(editingFinished()), this, SLOT(jumpToAddress())); - updateCursorPosition(m_editor->cursorPosition()); + updateCursorPosition(m_widget->cursorPosition()); } - ~BinEditorInterface() { - delete m_editor; + ~BinEditor() { + delete m_widget; } bool createNew(const QString & /* contents */ = QString()) { - m_editor->clear(); + m_widget->clear(); m_file->setFilename(QString()); return true; } @@ -366,20 +368,20 @@ public: QWidget *toolBar() { return m_toolBar; } - bool isTemporary() const { return m_editor->isMemoryView(); } + bool isTemporary() const { return m_widget->isMemoryView(); } private slots: void updateCursorPosition(int position) { - m_addressEdit->setText(QString::number(m_editor->baseAddress() + position, 16)); + m_addressEdit->setText(QString::number(m_widget->baseAddress() + position, 16)); } void jumpToAddress() { - m_editor->jumpToAddress(m_addressEdit->text().toULongLong(0, 16)); - updateCursorPosition(m_editor->cursorPosition()); + m_widget->jumpToAddress(m_addressEdit->text().toULongLong(0, 16)); + updateCursorPosition(m_widget->cursorPosition()); } private: - BinEditor *m_editor; + BinEditorWidget *m_widget; QString m_displayName; BinEditorDocument *m_file; QToolBar *m_toolBar; @@ -408,9 +410,9 @@ QString BinEditorFactory::displayName() const Core::IEditor *BinEditorFactory::createEditor(QWidget *parent) { - BinEditor *editor = new BinEditor(parent); - m_owner->initializeEditor(editor); - return editor->editor(); + BinEditorWidget *widget = new BinEditorWidget(parent); + m_owner->initializeEditor(widget); + return widget->editor(); } QStringList BinEditorFactory::mimeTypes() const @@ -433,7 +435,7 @@ BinEditorWidgetFactory::BinEditorWidgetFactory(QObject *parent) : QWidget *BinEditorWidgetFactory::createWidget(QWidget *parent) { - return new BinEditor(parent); + return new BinEditorWidget(parent); } ///////////////////////////////// BinEditorPlugin ////////////////////////////////// @@ -467,11 +469,11 @@ QAction *BinEditorPlugin::registerNewAction(Core::Id id, return rc; } -void BinEditorPlugin::initializeEditor(BinEditor *editor) +void BinEditorPlugin::initializeEditor(BinEditorWidget *widget) { - BinEditorInterface *editorInterface = new BinEditorInterface(editor); - QObject::connect(editor, SIGNAL(modificationChanged(bool)), editorInterface, SIGNAL(changed())); - editor->setEditor(editorInterface); + BinEditor *editor = new BinEditor(widget); + QObject::connect(widget, SIGNAL(modificationChanged(bool)), editor, SIGNAL(changed())); + widget->setEditor(editor); m_context.add(Constants::C_BINEDITOR); if (!m_undoAction) { @@ -483,17 +485,17 @@ void BinEditorPlugin::initializeEditor(BinEditor *editor) // Font settings TextEditor::TextEditorSettings *settings = TextEditor::TextEditorSettings::instance(); - editor->setFontSettings(settings->fontSettings()); + widget->setFontSettings(settings->fontSettings()); connect(settings, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)), - editor, SLOT(setFontSettings(TextEditor::FontSettings))); + widget, SLOT(setFontSettings(TextEditor::FontSettings))); - QObject::connect(editor, SIGNAL(undoAvailable(bool)), this, SLOT(updateActions())); - QObject::connect(editor, SIGNAL(redoAvailable(bool)), this, SLOT(updateActions())); + QObject::connect(widget, SIGNAL(undoAvailable(bool)), this, SLOT(updateActions())); + QObject::connect(widget, SIGNAL(redoAvailable(bool)), this, SLOT(updateActions())); Aggregation::Aggregate *aggregate = new Aggregation::Aggregate; - BinEditorFind *binEditorFind = new BinEditorFind(editor); + BinEditorFind *binEditorFind = new BinEditorFind(widget); aggregate->add(binEditorFind); - aggregate->add(editor); + aggregate->add(widget); } bool BinEditorPlugin::initialize(const QStringList &arguments, QString *errorMessage) @@ -515,9 +517,9 @@ void BinEditorPlugin::extensionsInitialized() void BinEditorPlugin::updateCurrentEditor(Core::IEditor *editor) { - BinEditor *binEditor = 0; + BinEditorWidget *binEditor = 0; if (editor) - binEditor = qobject_cast(editor->widget()); + binEditor = qobject_cast(editor->widget()); if (m_currentEditor == binEditor) return; m_currentEditor = binEditor; diff --git a/src/plugins/bineditor/bineditorplugin.h b/src/plugins/bineditor/bineditorplugin.h index 7c383d2ff7..0adf0f62b4 100644 --- a/src/plugins/bineditor/bineditorplugin.h +++ b/src/plugins/bineditor/bineditorplugin.h @@ -40,7 +40,7 @@ #include namespace BINEditor { -class BinEditor; +class BinEditorWidget; class BinEditorWidgetFactory : public QObject { @@ -67,7 +67,7 @@ public: void extensionsInitialized(); // Connect editor to settings changed signals. - void initializeEditor(BinEditor *editor); + void initializeEditor(BinEditorWidget *editor); private slots: void undoAction(); @@ -92,7 +92,7 @@ private: Core::IEditor *createEditor(QWidget *parent); BinEditorFactory *m_factory; - QPointer m_currentEditor; + QPointer m_currentEditor; }; class BinEditorFactory : public Core::IEditorFactory -- cgit v1.2.1 From 0b724400aa07249a844d40821d85acd89f2709df Mon Sep 17 00:00:00 2001 From: Sergey Shambir Date: Sun, 26 May 2013 18:15:24 +0400 Subject: CppTools: fixed wrong flags check. Change-Id: I682e78c352066ddd05e96199fd8ead088e3e9f52 Reviewed-by: Erik Verbruggen --- src/plugins/cpptools/cppmodelmanagerinterface.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.cpp b/src/plugins/cpptools/cppmodelmanagerinterface.cpp index 0de4f6e425..c6b535d98d 100644 --- a/src/plugins/cpptools/cppmodelmanagerinterface.cpp +++ b/src/plugins/cpptools/cppmodelmanagerinterface.cpp @@ -79,25 +79,25 @@ void ProjectPart::evaluateToolchain(const ToolChain *tc, ToolChain::CompilerFlags c = (cxxflags == cflags) ? cxx : tc->compilerFlags(cflags); - if (c | ToolChain::StandardC11) + if (c & ToolChain::StandardC11) cVersion = C11; - else if (c | ToolChain::StandardC99) + else if (c & ToolChain::StandardC99) cVersion = C99; else cVersion = C89; - if (cxx | ToolChain::StandardCxx11) + if (cxx & ToolChain::StandardCxx11) cxxVersion = CXX11; else cxxVersion = CXX98; - if (cxx | ToolChain::BorlandExtensions) + if (cxx & ToolChain::BorlandExtensions) cxxExtensions |= BorlandExtensions; - if (cxx | ToolChain::GnuExtensions) + if (cxx & ToolChain::GnuExtensions) cxxExtensions |= GnuExtensions; - if (cxx | ToolChain::MicrosoftExtensions) + if (cxx & ToolChain::MicrosoftExtensions) cxxExtensions |= MicrosoftExtensions; - if (cxx | ToolChain::OpenMP) + if (cxx & ToolChain::OpenMP) cxxExtensions |= OpenMP; cWarningFlags = tc->warningFlags(cflags); -- cgit v1.2.1 From 2485b7618384d9271fd1ff65954ab01c8c1eb536 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Wed, 29 May 2013 14:56:18 +0200 Subject: SVN: Always use internal diff command This unbreaks svn diff views for users with custom diff commands set up in their subversion configuration. Task-number: QTCREATORBUG-9303 Change-Id: Ie3a726f08ad39770b63e2432755467df429067f8 Reviewed-by: Tobias Hunger --- src/plugins/subversion/subversionplugin.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index 047210732b..1565adf128 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -572,6 +572,7 @@ void SubversionPlugin::svnDiff(const Subversion::Internal::SubversionDiffParamet QFileInfo(p.files.front()).fileName() : p.diffName; QStringList args(QLatin1String("diff")); + args.append(QLatin1String("--internal-diff")); args.append(p.arguments); args << p.files; -- cgit v1.2.1 From 56477d86ce12a5bf4b49674de032c2b18ce67162 Mon Sep 17 00:00:00 2001 From: David Schulz Date: Tue, 28 May 2013 12:25:25 +0200 Subject: Debugger: Adjust wording of symbol server dialog. Change-Id: I7bbfbe2a95ddb6bcfa8fcb3aca8fc9a602c20bea Reviewed-by: Robert Loehning Reviewed-by: David Schulz --- src/plugins/debugger/shared/symbolpathsdialog.ui | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) (limited to 'src') diff --git a/src/plugins/debugger/shared/symbolpathsdialog.ui b/src/plugins/debugger/shared/symbolpathsdialog.ui index 4059bb31ac..c74d985f2d 100644 --- a/src/plugins/debugger/shared/symbolpathsdialog.ui +++ b/src/plugins/debugger/shared/symbolpathsdialog.ui @@ -44,11 +44,7 @@ - <html><head/><body> -<p>The debugger is not configured to use the public Microsoft Symbol Server.<br>This is recommended for retrieval of the symbols of the operating system libraries.</p> -<p><span style=" font-style:italic;">Note:</span> It is recommended, that if you use the Microsoft Symbol Server, to also use a local symbol cache.<br>Also, a fast internet connection is required for this to work smoothly,<br>and a delay might occur when connecting for the first time, when caching the symbols for the first time.</p> -<p>Would you like to set it up?</p> -</body></html> + <html><head/><body><p>The debugger is not configured to use the public Microsoft Symbol Server.<br/>This is recommended for retrieval of the symbols of the operating system libraries.</p><p><span style=" font-style:italic;">Note:</span> It is recommended, that if you use the Microsoft Symbol Server, to also use a local symbol cache.<br/>A fast internet connection is required for this to work smoothly,<br/>and a delay might occur when connecting for the first time and caching the symbols.</p><p>What would you like to set up?</p></body></html> Qt::RichText -- cgit v1.2.1 From 0f51591ce5d5006a9381e1785a2c4d93db5a1815 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Wed, 29 May 2013 15:07:12 +0300 Subject: Fix getBundleInformation call. getBundleInformation must be called synchronously Change-Id: Iebe00295e1ef0679fdd6f9b849672d72f5ea998a Reviewed-by: Eskil Abrahamsen Blomfeldt Reviewed-by: Daniel Teske --- src/plugins/android/androidpackagecreationstep.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/android/androidpackagecreationstep.cpp b/src/plugins/android/androidpackagecreationstep.cpp index ac0e50b292..76b29b402a 100644 --- a/src/plugins/android/androidpackagecreationstep.cpp +++ b/src/plugins/android/androidpackagecreationstep.cpp @@ -346,7 +346,7 @@ void AndroidPackageCreationStep::checkRequiredLibrariesForRun() QMetaObject::invokeMethod(this, "setQtLibs",Qt::BlockingQueuedConnection, Q_ARG(QStringList, m_qtLibsWithDependencies)); - QMetaObject::invokeMethod(this, "getBundleInformation"); + QMetaObject::invokeMethod(this, "getBundleInformation", Qt::BlockingQueuedConnection); QStringList prebundledLibraries; foreach (const AndroidManager::Library &qtLib, m_availableQtLibs) { -- cgit v1.2.1 From d7f96e3201ed8c2fd769caf7f6d6937a970c628e Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Wed, 22 May 2013 17:24:15 +0200 Subject: Android Deploy Options: Clean up ui Task-number: QTCREATORBUG-9208 Change-Id: I1b1864908a24af3cd7c576831656267a6390b583 Reviewed-by: BogDan Vatra --- src/plugins/android/androiddeploystep.cpp | 65 ++++--- src/plugins/android/androiddeploystep.h | 13 +- src/plugins/android/androiddeploystepwidget.cpp | 35 ++-- src/plugins/android/androiddeploystepwidget.h | 5 +- src/plugins/android/androiddeploystepwidget.ui | 206 ++++++++------------- src/plugins/android/androidmanager.cpp | 10 +- .../android/androidpackagecreationwidget.cpp | 6 +- src/plugins/android/androidrunner.cpp | 4 +- 8 files changed, 150 insertions(+), 194 deletions(-) (limited to 'src') diff --git a/src/plugins/android/androiddeploystep.cpp b/src/plugins/android/androiddeploystep.cpp index 222da0e35c..c11ced5f1e 100644 --- a/src/plugins/android/androiddeploystep.cpp +++ b/src/plugins/android/androiddeploystep.cpp @@ -83,10 +83,9 @@ void AndroidDeployStep::ctor() setDefaultDisplayName(tr("Deploy to Android device")); m_deployAction = NoDeploy; - m_useLocalQtLibs = false; if (QtSupport::BaseQtVersion *qt = QtSupport::QtKitInformation::qtVersion(target()->kit())) if (qt->qtVersion() >= QtSupport::QtVersionNumber(5, 0, 0)) - m_useLocalQtLibs = true; + m_deployAction = BundleLibraries; } bool AndroidDeployStep::init() @@ -118,7 +117,6 @@ bool AndroidDeployStep::init() m_apkPathDebug = AndroidManager::apkPath(target(), AndroidManager::DebugBuild).toString(); m_apkPathRelease = AndroidManager::apkPath(target(), AndroidManager::ReleaseBuildSigned).toString(); m_buildDirectory = static_cast(target()->project())->rootQt4ProjectNode()->buildDir(); - m_runQASIPackagePath = m_QASIPackagePath; m_runDeployAction = m_deployAction; ToolChain *tc = ToolChainKitInformation::toolChain(target()->kit()); if (!tc || tc->type() != QLatin1String(Constants::ANDROID_TOOLCHAIN_TYPE)) { @@ -148,15 +146,15 @@ AndroidDeployStep::AndroidDeployAction AndroidDeployStep::deployAction() return m_deployAction; } -bool AndroidDeployStep::useLocalQtLibs() -{ - return m_useLocalQtLibs; -} - bool AndroidDeployStep::fromMap(const QVariantMap &map) { - m_useLocalQtLibs = map.value(QLatin1String(USE_LOCAL_QT_KEY), false).toBool(); m_deployAction = AndroidDeployAction(map.value(QLatin1String(DEPLOY_ACTION_KEY), NoDeploy).toInt()); + QVariant useLocalQt = map.value(QLatin1String(USE_LOCAL_QT_KEY)); + if (useLocalQt.isValid()) { // old settings + if (useLocalQt.toBool() && m_deployAction == NoDeploy) + m_deployAction = BundleLibraries; + } + if (m_deployAction == InstallQASI) m_deployAction = NoDeploy; return ProjectExplorer::BuildStep::fromMap(map); @@ -165,7 +163,6 @@ bool AndroidDeployStep::fromMap(const QVariantMap &map) QVariantMap AndroidDeployStep::toMap() const { QVariantMap map = ProjectExplorer::BuildStep::toMap(); - map.insert(QLatin1String(USE_LOCAL_QT_KEY), m_useLocalQtLibs); map.insert(QLatin1String(DEPLOY_ACTION_KEY), m_deployAction); return map; } @@ -184,7 +181,7 @@ void AndroidDeployStep::cleanLibsOnDevice() QProcess *process = new QProcess(this); QStringList arguments = AndroidDeviceInfo::adbSelector(deviceSerialNumber); arguments << QLatin1String("shell") << QLatin1String("rm") << QLatin1String("-r") << QLatin1String("/data/local/tmp/qt"); - connect(process, SIGNAL(finished(int)), this, SLOT(cleanLibsFinished())); + connect(process, SIGNAL(finished(int)), this, SLOT(processFinished())); const QString adb = AndroidConfigurations::instance().adbToolPath().toString(); Core::MessageManager::instance()->printToOutputPane(adb + QLatin1String(" ") + arguments.join(QLatin1String(" ")), @@ -194,7 +191,7 @@ void AndroidDeployStep::cleanLibsOnDevice() delete process; } -void AndroidDeployStep::cleanLibsFinished() +void AndroidDeployStep::processFinished() { QProcess *process = qobject_cast(sender()); QTC_ASSERT(process, return); @@ -204,22 +201,35 @@ void AndroidDeployStep::cleanLibsFinished() process->deleteLater(); } -void AndroidDeployStep::setDeployAction(AndroidDeployStep::AndroidDeployAction deploy) +void AndroidDeployStep::installQASIPackage(const QString &packagePath) { - m_deployAction = deploy; + const QString targetArch = AndroidManager::targetArch(target()); + const QString targetSDK = AndroidManager::targetSDK(target()); + int deviceAPILevel = targetSDK.mid(targetSDK.indexOf(QLatin1Char('-')) + 1).toInt(); + QString deviceSerialNumber = AndroidConfigurations::instance().getDeployDeviceSerialNumber(&deviceAPILevel, targetArch); + if (!deviceSerialNumber.length()) { + Core::MessageManager::instance()->printToOutputPane(tr("Could not run adb. No device found."), Core::MessageManager::NoModeSwitch); + return; + } - AndroidManager::updateDeploymentSettings(target()); -} + QProcess *process = new QProcess(this); + QStringList arguments = AndroidDeviceInfo::adbSelector(deviceSerialNumber); + arguments << QLatin1String("install") << QLatin1String("-r ") << packagePath; -void AndroidDeployStep::setDeployQASIPackagePath(const QString &package) -{ - m_QASIPackagePath = package; - setDeployAction(InstallQASI); + connect(process, SIGNAL(finished(int)), this, SLOT(processFinished())); + const QString adb = AndroidConfigurations::instance().adbToolPath().toString(); + Core::MessageManager::instance()->printToOutputPane(adb + QLatin1String(" ") + + arguments.join(QLatin1String(" ")), + Core::MessageManager::NoModeSwitch); + process->start(adb, arguments); + if (!process->waitForFinished(500)) + delete process; } -void AndroidDeployStep::setUseLocalQtLibs(bool useLocal) +void AndroidDeployStep::setDeployAction(AndroidDeployStep::AndroidDeployAction deploy) { - m_useLocalQtLibs = useLocal; + m_deployAction = deploy; + AndroidManager::updateDeploymentSettings(target()); } @@ -453,17 +463,6 @@ bool AndroidDeployStep::deployPackage() AndroidPackageCreationStep::removeDirectory(tempPath); } - if (m_runDeployAction == InstallQASI) { - if (!runCommand(deployProc, AndroidConfigurations::instance().adbToolPath().toString(), - AndroidDeviceInfo::adbSelector(m_deviceSerialNumber) - << QLatin1String("install") << QLatin1String("-r ") << m_runQASIPackagePath)) { - raiseError(tr("Qt Android smart installer installation failed")); - disconnect(deployProc, 0, this, 0); - deployProc->deleteLater(); - return false; - } - emit resetDelopyAction(); - } deployProc->setWorkingDirectory(m_androidDirPath.toString()); writeOutput(tr("Installing package onto %1.").arg(m_deviceSerialNumber)); diff --git a/src/plugins/android/androiddeploystep.h b/src/plugins/android/androiddeploystep.h index 0fa090aa54..ad922c46e1 100644 --- a/src/plugins/android/androiddeploystep.h +++ b/src/plugins/android/androiddeploystep.h @@ -75,9 +75,10 @@ class AndroidDeployStep : public ProjectExplorer::BuildStep public: enum AndroidDeployAction { - NoDeploy, + NoDeploy, // use ministro DeployLocal, - InstallQASI + InstallQASI, // unused old value + BundleLibraries }; public: @@ -89,28 +90,25 @@ public: int deviceAPILevel(); AndroidDeployAction deployAction(); - bool useLocalQtLibs(); bool fromMap(const QVariantMap &map); QVariantMap toMap() const; void cleanLibsOnDevice(); + void installQASIPackage(const QString &packagePath); public slots: void setDeployAction(AndroidDeployAction deploy); - void setDeployQASIPackagePath(const QString &package); - void setUseLocalQtLibs(bool useLocal); signals: void done(); void error(); - void resetDelopyAction(); private slots: bool deployPackage(); void handleBuildOutput(); void handleBuildError(); - void cleanLibsFinished(); + void processFinished(); private: AndroidDeployStep(ProjectExplorer::BuildStepList *bc, @@ -140,7 +138,6 @@ private: QString m_QASIPackagePath; AndroidDeployAction m_deployAction; - bool m_useLocalQtLibs; // members to transfer data from init() to run QString m_packageName; diff --git a/src/plugins/android/androiddeploystepwidget.cpp b/src/plugins/android/androiddeploystepwidget.cpp index 45a8373b74..482051342c 100644 --- a/src/plugins/android/androiddeploystepwidget.cpp +++ b/src/plugins/android/androiddeploystepwidget.cpp @@ -47,21 +47,26 @@ AndroidDeployStepWidget::AndroidDeployStepWidget(AndroidDeployStep *step) : { ui->setupUi(this); - ui->useLocalQtLibs->setChecked(m_step->useLocalQtLibs()); switch (m_step->deployAction()) { + case AndroidDeployStep::NoDeploy: + ui->ministroOption->setChecked(true); + break; case AndroidDeployStep::DeployLocal: - ui->deployQtLibs->setChecked(true); + ui->temporaryQtOption->setChecked(true); + break; + case AndroidDeployStep::BundleLibraries: + ui->bundleQtOption->setChecked(true); break; default: - ui->devicesQtLibs->setChecked(true); + ui->ministroOption->setChecked(true); break; } - connect(m_step, SIGNAL(resetDelopyAction()), SLOT(resetAction())); - connect(ui->devicesQtLibs, SIGNAL(clicked()), SLOT(resetAction())); - connect(ui->deployQtLibs, SIGNAL(clicked()), SLOT(setDeployLocalQtLibs())); + connect(ui->ministroOption, SIGNAL(clicked()), SLOT(setMinistro())); + connect(ui->temporaryQtOption, SIGNAL(clicked()), SLOT(setDeployLocalQtLibs())); + connect(ui->bundleQtOption, SIGNAL(clicked()), SLOT(setBundleQtLibs())); + connect(ui->chooseButton, SIGNAL(clicked()), SLOT(setQASIPackagePath())); - connect(ui->useLocalQtLibs, SIGNAL(stateChanged(int)), SLOT(useLocalQtLibsStateChanged(int))); connect(ui->cleanLibsPushButton, SIGNAL(clicked()), SLOT(cleanLibsOnDevice())); } @@ -80,9 +85,8 @@ QString AndroidDeployStepWidget::summaryText() const return displayName(); } -void AndroidDeployStepWidget::resetAction() +void AndroidDeployStepWidget::setMinistro() { - ui->devicesQtLibs->setChecked(true); m_step->setDeployAction(AndroidDeployStep::NoDeploy); } @@ -91,19 +95,20 @@ void AndroidDeployStepWidget::setDeployLocalQtLibs() m_step->setDeployAction(AndroidDeployStep::DeployLocal); } +void AndroidDeployStepWidget::setBundleQtLibs() +{ + m_step->setDeployAction(AndroidDeployStep::BundleLibraries); +} + void AndroidDeployStepWidget::setQASIPackagePath() { QString packagePath = QFileDialog::getOpenFileName(this, tr("Qt Android Smart Installer"), QDir::homePath(), tr("Android package (*.apk)")); - if (packagePath.length()) - m_step->setDeployQASIPackagePath(packagePath); + if (!packagePath.isEmpty()) + m_step->installQASIPackage(packagePath); } -void AndroidDeployStepWidget::useLocalQtLibsStateChanged(int state) -{ - m_step->setUseLocalQtLibs(state == Qt::Checked); -} void AndroidDeployStepWidget::cleanLibsOnDevice() { diff --git a/src/plugins/android/androiddeploystepwidget.h b/src/plugins/android/androiddeploystepwidget.h index 90db7d4342..8c05d0aa62 100644 --- a/src/plugins/android/androiddeploystepwidget.h +++ b/src/plugins/android/androiddeploystepwidget.h @@ -49,10 +49,11 @@ public: ~AndroidDeployStepWidget(); private slots: - void resetAction(); + void setMinistro(); void setDeployLocalQtLibs(); + void setBundleQtLibs(); + void setQASIPackagePath(); - void useLocalQtLibsStateChanged(int); void cleanLibsOnDevice(); private: diff --git a/src/plugins/android/androiddeploystepwidget.ui b/src/plugins/android/androiddeploystepwidget.ui index 4458c49408..96ed9eb533 100644 --- a/src/plugins/android/androiddeploystepwidget.ui +++ b/src/plugins/android/androiddeploystepwidget.ui @@ -6,8 +6,8 @@ 0 0 - 560 - 145 + 678 + 155 @@ -19,138 +19,88 @@ Form - - - - - Use Qt libraries from device - - - Use Qt libraries from device - - - true + + + + + Qt Deployment + + + + + Use the external Ministro application to download and maintain Qt libraries. + + + Use Ministro service to install Qt + + + true + + + + + + + Push local Qt libraries to device. You must have Qt libraries compiled for that platform. +The APK will not be usable on any other device. + + + Deploy local Qt libraries to temporary directory + + + + + + + Creates a standalone APK. + + + Bundle Qt libraries in APK + + + + - - - - - - Push local Qt libraries to device. -You must have Qt libraries compiled for that platform - - - Deploy local Qt libraries - - - - - - - Check this option to force the application to use local Qt libraries instead of system libraries. - - - Use local Qt libraries - - - - - - - Clean Libs on Device - - - - - - - - - - - Choose and install Ministro system wide Qt shared libraries. -This option is useful when you want to try your application on devices which don't have Android Market (e.g. Android Emulator). - - - Install Ministro, system-wide Qt shared libraries installer - - - - - - - false - - - Choose APK - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - - - Qt::Vertical - - - - 20 - 41 - + + + + Advanced Actions - + + + + + Clean Temporary Libraries Directory on Device + + + + + + + Install Ministro from APK + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + - - - installQASI - toggled(bool) - chooseButton - setEnabled(bool) - - - 119 - 68 - - - 272 - 64 - - - - - deployQtLibs - clicked(bool) - useLocalQtLibs - setChecked(bool) - - - 138 - 43 - - - 343 - 44 - - - - + diff --git a/src/plugins/android/androidmanager.cpp b/src/plugins/android/androidmanager.cpp index c712a0b06d..b17e044b80 100644 --- a/src/plugins/android/androidmanager.cpp +++ b/src/plugins/android/androidmanager.cpp @@ -319,8 +319,7 @@ bool AndroidManager::bundleQt(ProjectExplorer::Target *target) AndroidRunConfiguration *androidRunConfiguration = qobject_cast(runConfiguration); if (androidRunConfiguration != 0) { AndroidDeployStep *deployStep = androidRunConfiguration->deployStep(); - return deployStep->deployAction() == AndroidDeployStep::NoDeploy - && deployStep->useLocalQtLibs(); + return deployStep->deployAction() == AndroidDeployStep::BundleLibraries; } return false; @@ -340,9 +339,10 @@ bool AndroidManager::updateDeploymentSettings(ProjectExplorer::Target *target) return false; AndroidDeployStep *deployStep = androidRunConfiguration->deployStep(); - bool useLocalLibs = deployStep->useLocalQtLibs(); - bool deployQtLibs = deployStep->deployAction() != AndroidDeployStep::NoDeploy; - bool bundleQtLibs = useLocalLibs && !deployQtLibs; + AndroidDeployStep::AndroidDeployAction deployAction = deployStep->deployAction(); + bool useLocalLibs = deployAction == AndroidDeployStep::DeployLocal + || deployAction == AndroidDeployStep::BundleLibraries; + bool bundleQtLibs = deployAction == AndroidDeployStep::BundleLibraries; QDomDocument doc; if (!openManifest(target, doc)) diff --git a/src/plugins/android/androidpackagecreationwidget.cpp b/src/plugins/android/androidpackagecreationwidget.cpp index ac667ee166..5bb2876955 100644 --- a/src/plugins/android/androidpackagecreationwidget.cpp +++ b/src/plugins/android/androidpackagecreationwidget.cpp @@ -234,7 +234,8 @@ void AndroidPackageCreationWidget::setQtLibs(QModelIndex, QModelIndex) { AndroidManager::setQtLibs(m_step->target(), m_qtLibsModel->checkedItems()); AndroidDeployStep * const deployStep = AndroidGlobal::buildStep(m_step->target()->activeDeployConfiguration()); - if (deployStep->useLocalQtLibs()) + if (deployStep->deployAction() == AndroidDeployStep::DeployLocal + || deployStep->deployAction() == AndroidDeployStep::BundleLibraries) AndroidManager::updateDeploymentSettings(m_step->target()); } @@ -242,7 +243,8 @@ void AndroidPackageCreationWidget::setPrebundledLibs(QModelIndex, QModelIndex) { AndroidManager::setPrebundledLibs(m_step->target(), m_prebundledLibs->checkedItems()); AndroidDeployStep * const deployStep = AndroidGlobal::buildStep(m_step->target()->activeDeployConfiguration()); - if (deployStep->useLocalQtLibs()) + if (deployStep->deployAction() == AndroidDeployStep::DeployLocal + || deployStep->deployAction() == AndroidDeployStep::BundleLibraries) AndroidManager::updateDeploymentSettings(m_step->target()); } diff --git a/src/plugins/android/androidrunner.cpp b/src/plugins/android/androidrunner.cpp index 471c380f3b..a005e10fde 100644 --- a/src/plugins/android/androidrunner.cpp +++ b/src/plugins/android/androidrunner.cpp @@ -74,7 +74,9 @@ AndroidRunner::AndroidRunner(QObject *parent, } ProjectExplorer::Target *target = runConfig->target(); AndroidDeployStep *ds = runConfig->deployStep(); - if ((m_useLocalQtLibs = ds->useLocalQtLibs())) { + m_useLocalQtLibs = ds->deployAction() == AndroidDeployStep::DeployLocal + || ds->deployAction() == AndroidDeployStep::BundleLibraries; + if (m_useLocalQtLibs) { m_localLibs = AndroidManager::loadLocalLibs(target, ds->deviceAPILevel()); m_localJars = AndroidManager::loadLocalJars(target, ds->deviceAPILevel()); m_localJarsInitClasses = AndroidManager::loadLocalJarsInitClasses(target, ds->deviceAPILevel()); -- cgit v1.2.1 From cc611e076f1a7901be2cc8ebae877d7aa4730294 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 29 May 2013 14:54:47 +0200 Subject: Debugger: Pass autoderef pointers down to LLDB machinery Change-Id: I282e78c352066ddd05e96199fd8ead088e3e9f56 Reviewed-by: hjk --- src/plugins/debugger/lldb/lldbengine.cpp | 25 ++++++++++++++++++++----- src/plugins/debugger/lldb/lldbengine.h | 4 ++-- 2 files changed, 22 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 4af3b76380..1680a18296 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -84,6 +84,17 @@ LldbEngine::LldbEngine(const DebuggerStartParameters &startParameters) m_lastAgentId = 0; m_lastToken = 0; setObjectName(QLatin1String("LldbEngine")); + + connect(debuggerCore()->action(AutoDerefPointers), SIGNAL(valueChanged(QVariant)), + SLOT(updateLocals())); + connect(debuggerCore()->action(CreateFullBacktrace), SIGNAL(triggered()), + SLOT(updateAll())); + connect(debuggerCore()->action(UseDebuggingHelpers), SIGNAL(valueChanged(QVariant)), + SLOT(updateLocals())); + connect(debuggerCore()->action(UseDynamicType), SIGNAL(valueChanged(QVariant)), + SLOT(updateLocals())); + connect(debuggerCore()->action(IntelFlavor), SIGNAL(valueChanged(QVariant)), + SLOT(updateAll())); } LldbEngine::~LldbEngine() @@ -654,6 +665,10 @@ bool LldbEngine::setToolTipExpression(const QPoint &mousePos, return false; } +void LldbEngine::updateAll() +{ + updateLocals(); +} ////////////////////////////////////////////////////////////////////// // @@ -677,6 +692,11 @@ void LldbEngine::updateWatchData(const WatchData &data, const WatchUpdateFlags & { Q_UNUSED(data); Q_UNUSED(flags); + updateLocals(); +} + +void LldbEngine::updateLocals() +{ WatchHandler *handler = watchHandler(); Command cmd("updateData"); @@ -873,11 +893,6 @@ QByteArray LldbEngine::currentOptions() const return result; } -void LldbEngine::updateAll() -{ - runCommand("reportData"); -} - void LldbEngine::refreshLocals(const GdbMi &vars) { //const bool partial = response.cookie.toBool(); diff --git a/src/plugins/debugger/lldb/lldbengine.h b/src/plugins/debugger/lldb/lldbengine.h index 82c58ea46d..fe44c1940a 100644 --- a/src/plugins/debugger/lldb/lldbengine.h +++ b/src/plugins/debugger/lldb/lldbengine.h @@ -153,6 +153,8 @@ private: Q_SLOT void readLldbStandardError(); Q_SLOT void handleResponse(const QByteArray &data); Q_SLOT void runEngine2(); + Q_SLOT void updateAll(); + Q_SLOT void updateLocals(); void refreshAll(const GdbMi &all); void refreshThreads(const GdbMi &threads); void refreshStack(const GdbMi &stack); @@ -167,8 +169,6 @@ private: void refreshBreakpoints(const GdbMi &bkpts); void runContinuation(const GdbMi &data); - void updateAll(); - typedef void (LldbEngine::*LldbCommandContinuation)(); QByteArray currentOptions() const; -- cgit v1.2.1 From b75209d653ffc9906b2e2b90e0ca63a809755b3a Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 29 May 2013 15:38:49 +0200 Subject: Debugger: Cleaner shutdown of LLDB/python machinery Change-Id: I482e78c352066ddd05e96199fd8ead088e3e9f58 Reviewed-by: hjk --- src/plugins/debugger/lldb/lldbengine.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 1680a18296..5f0397b80a 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -119,7 +119,7 @@ void LldbEngine::runCommand(const Command &command) void LldbEngine::shutdownInferior() { QTC_ASSERT(state() == InferiorShutdownRequested, qDebug() << state()); - notifyInferiorShutdownOk(); + runCommand(Command("shutdownInferior")); } void LldbEngine::shutdownEngine() @@ -1018,6 +1018,14 @@ void LldbEngine::refreshState(const GdbMi &reportedState) notifyEngineRunAndInferiorRunOk(); else if (newState == "enginerunandinferiorstopok") notifyEngineRunAndInferiorStopOk(); + else if (newState == "inferiorshutdownok") + notifyInferiorShutdownOk(); + else if (newState == "inferiorshutdownfailed") + notifyInferiorShutdownFailed(); + else if (newState == "engineshutdownok") + notifyEngineShutdownOk(); + else if (newState == "engineshutdownfailed") + notifyEngineShutdownFailed(); else if (newState == "inferiorexited") notifyInferiorExited(); } -- cgit v1.2.1 From b462f37742103a553a684a4628e709526dade04e Mon Sep 17 00:00:00 2001 From: hjk Date: Sat, 25 May 2013 03:47:40 +0200 Subject: BinEditor: Code cosmetics Change-Id: I59836b26094d86699dc36e36167b025fadb7ca37 Reviewed-by: Christian Kandeler Reviewed-by: hjk --- src/plugins/bineditor/bineditor.cpp | 8 ++++++ src/plugins/bineditor/bineditor.h | 1 + src/plugins/bineditor/bineditorplugin.cpp | 42 +++++++++++++------------------ 3 files changed, 27 insertions(+), 24 deletions(-) (limited to 'src') diff --git a/src/plugins/bineditor/bineditor.cpp b/src/plugins/bineditor/bineditor.cpp index 4fa6c608eb..4f8c109c3d 100644 --- a/src/plugins/bineditor/bineditor.cpp +++ b/src/plugins/bineditor/bineditor.cpp @@ -31,6 +31,7 @@ #include #include +#include #include #include #include @@ -106,6 +107,13 @@ BinEditorWidget::BinEditorWidget(QWidget *parent) m_canRequestNewWindow = false; setFocusPolicy(Qt::WheelFocus); setFrameStyle(QFrame::Plain); + + // Font settings + TextEditor::TextEditorSettings *settings = TextEditor::TextEditorSettings::instance(); + setFontSettings(settings->fontSettings()); + connect(settings, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)), + this, SLOT(setFontSettings(TextEditor::FontSettings))); + } BinEditorWidget::~BinEditorWidget() diff --git a/src/plugins/bineditor/bineditor.h b/src/plugins/bineditor/bineditor.h index 83ef6a346c..a75c10175c 100644 --- a/src/plugins/bineditor/bineditor.h +++ b/src/plugins/bineditor/bineditor.h @@ -62,6 +62,7 @@ class BinEditorWidget : public QAbstractScrollArea Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly DESIGNABLE false) Q_PROPERTY(QList markup READ markup WRITE setMarkup DESIGNABLE false) Q_PROPERTY(bool newWindowRequestAllowed READ newWindowRequestAllowed WRITE setNewWindowRequestAllowed DESIGNABLE false) + public: BinEditorWidget(QWidget *parent = 0); ~BinEditorWidget(); diff --git a/src/plugins/bineditor/bineditorplugin.cpp b/src/plugins/bineditor/bineditorplugin.cpp index a805e66f6c..f4887a5a83 100644 --- a/src/plugins/bineditor/bineditorplugin.cpp +++ b/src/plugins/bineditor/bineditorplugin.cpp @@ -58,8 +58,6 @@ #include #include #include -#include -#include #include #include @@ -77,9 +75,10 @@ public: m_widget = widget; m_incrementalStartPos = m_contPos = -1; } - ~BinEditorFind() {} bool supportsReplace() const { return false; } + QString currentFindString() const { return QString(); } + QString completedFindString() const { return QString(); } Find::FindFlags supportedFindFlags() const { @@ -96,12 +95,13 @@ public: m_widget->highlightSearchResults(txt.toLatin1(), Find::textDocumentFlagsForFindFlags(findFlags)); } - void clearResults() { m_widget->highlightSearchResults(QByteArray()); } - QString currentFindString() const { return QString(); } - QString completedFindString() const { return QString(); } - + void clearResults() + { + m_widget->highlightSearchResults(QByteArray()); + } - int find(const QByteArray &pattern, int pos, Find::FindFlags findFlags) { + int find(const QByteArray &pattern, int pos, Find::FindFlags findFlags) + { if (pattern.isEmpty()) { m_widget->setCursorPosition(pos); return pos; @@ -341,13 +341,15 @@ public: m_toolBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); m_toolBar->addWidget(w); - connect(m_widget, SIGNAL(cursorPositionChanged(int)), this, - SLOT(updateCursorPosition(int))); - connect(m_file, SIGNAL(changed()), this, SIGNAL(changed())); - connect(m_addressEdit, SIGNAL(editingFinished()), this, - SLOT(jumpToAddress())); + widget->setEditor(this); + + connect(m_widget, SIGNAL(cursorPositionChanged(int)), SLOT(updateCursorPosition(int))); + connect(m_file, SIGNAL(changed()), SIGNAL(changed())); + connect(m_addressEdit, SIGNAL(editingFinished()), SLOT(jumpToAddress())); + connect(m_widget, SIGNAL(modificationChanged(bool)), SIGNAL(changed())); updateCursorPosition(m_widget->cursorPosition()); } + ~BinEditor() { delete m_widget; } @@ -411,8 +413,10 @@ QString BinEditorFactory::displayName() const Core::IEditor *BinEditorFactory::createEditor(QWidget *parent) { BinEditorWidget *widget = new BinEditorWidget(parent); + BinEditor *editor = new BinEditor(widget); + m_owner->initializeEditor(widget); - return widget->editor(); + return editor; } QStringList BinEditorFactory::mimeTypes() const @@ -471,10 +475,6 @@ QAction *BinEditorPlugin::registerNewAction(Core::Id id, void BinEditorPlugin::initializeEditor(BinEditorWidget *widget) { - BinEditor *editor = new BinEditor(widget); - QObject::connect(widget, SIGNAL(modificationChanged(bool)), editor, SIGNAL(changed())); - widget->setEditor(editor); - m_context.add(Constants::C_BINEDITOR); if (!m_undoAction) { m_undoAction = registerNewAction(Core::Constants::UNDO, this, SLOT(undoAction()), tr("&Undo")); @@ -483,12 +483,6 @@ void BinEditorPlugin::initializeEditor(BinEditorWidget *widget) m_selectAllAction = registerNewAction(Core::Constants::SELECTALL, this, SLOT(selectAllAction())); } - // Font settings - TextEditor::TextEditorSettings *settings = TextEditor::TextEditorSettings::instance(); - widget->setFontSettings(settings->fontSettings()); - connect(settings, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)), - widget, SLOT(setFontSettings(TextEditor::FontSettings))); - QObject::connect(widget, SIGNAL(undoAvailable(bool)), this, SLOT(updateActions())); QObject::connect(widget, SIGNAL(redoAvailable(bool)), this, SLOT(updateActions())); -- cgit v1.2.1 From 49d48760d6120bc54e2837e77fabcadda2fd07a4 Mon Sep 17 00:00:00 2001 From: hjk Date: Sat, 25 May 2013 03:10:12 +0200 Subject: BinEditor/Debugger: Simplify signal and slot signatures The IEditor parameter was never used. Change-Id: Id374d9404701131d6c3ee02ed43fdbf3e3ed8af8 Reviewed-by: David Schulz --- src/plugins/bineditor/bineditor.cpp | 12 ++++++------ src/plugins/bineditor/bineditor.h | 6 +++--- src/plugins/bineditor/bineditorplugin.cpp | 14 ++++++++------ src/plugins/debugger/memoryagent.cpp | 31 +++++++++---------------------- src/plugins/debugger/memoryagent.h | 7 +++---- 5 files changed, 29 insertions(+), 41 deletions(-) (limited to 'src') diff --git a/src/plugins/bineditor/bineditor.cpp b/src/plugins/bineditor/bineditor.cpp index 4f8c109c3d..25b12f0cc6 100644 --- a/src/plugins/bineditor/bineditor.cpp +++ b/src/plugins/bineditor/bineditor.cpp @@ -196,7 +196,7 @@ bool BinEditorWidget::requestDataAt(int pos) const if (!m_requests.contains(block)) { m_requests.insert(block); emit const_cast(this)-> - dataRequested(editor(), m_baseAddr / m_blockSize + block); + dataRequested(m_baseAddr / m_blockSize + block); return true; } return false; @@ -230,7 +230,7 @@ void BinEditorWidget::changeDataAt(int pos, char c) } } - emit dataChanged(editor(), m_baseAddr + pos, QByteArray(1, c)); + emit dataChanged(m_baseAddr + pos, QByteArray(1, c)); } QByteArray BinEditorWidget::dataMid(int from, int length, bool old) const @@ -442,9 +442,9 @@ void BinEditorWidget::scrollContentsBy(int dx, int dy) const QScrollBar * const scrollBar = verticalScrollBar(); const int scrollPos = scrollBar->value(); if (dy <= 0 && scrollPos == scrollBar->maximum()) - emit newRangeRequested(editor(), baseAddress() + m_size); + emit newRangeRequested(baseAddress() + m_size); else if (dy >= 0 && scrollPos == scrollBar->minimum()) - emit newRangeRequested(editor(), baseAddress()); + emit newRangeRequested(baseAddress()); } void BinEditorWidget::changeEvent(QEvent *e) @@ -1058,7 +1058,7 @@ bool BinEditorWidget::event(QEvent *e) const QScrollBar * const scrollBar = verticalScrollBar(); const int maximum = scrollBar->maximum(); if (maximum && scrollBar->value() >= maximum - 1) { - emit newRangeRequested(editor(), baseAddress() + m_size); + emit newRangeRequested(baseAddress() + m_size); return true; } break; @@ -1571,7 +1571,7 @@ void BinEditorWidget::jumpToAddress(quint64 address) if (address >= m_baseAddr && address < m_baseAddr + m_size) setCursorPosition(address - m_baseAddr); else - emit newRangeRequested(editor(), address); + emit newRangeRequested(address); } void BinEditorWidget::setNewWindowRequestAllowed(bool c) diff --git a/src/plugins/bineditor/bineditor.h b/src/plugins/bineditor/bineditor.h index a75c10175c..81b4b33045 100644 --- a/src/plugins/bineditor/bineditor.h +++ b/src/plugins/bineditor/bineditor.h @@ -139,11 +139,11 @@ Q_SIGNALS: void redoAvailable(bool); void cursorPositionChanged(int position); - void dataRequested(Core::IEditor *editor, quint64 block); + void dataRequested(quint64 block); void newWindowRequested(quint64 address); - void newRangeRequested(Core::IEditor *, quint64 address); + void newRangeRequested(quint64 address); void addWatchpointRequested(quint64 address, uint size); - void dataChanged(Core::IEditor *, quint64 address, const QByteArray &data); + void dataChanged(quint64 address, const QByteArray &data); protected: void scrollContentsBy(int dx, int dy); diff --git a/src/plugins/bineditor/bineditorplugin.cpp b/src/plugins/bineditor/bineditorplugin.cpp index f4887a5a83..dbfd7e219e 100644 --- a/src/plugins/bineditor/bineditorplugin.cpp +++ b/src/plugins/bineditor/bineditorplugin.cpp @@ -184,10 +184,10 @@ public: Core::IDocument(parent) { m_widget = parent; - connect(m_widget, SIGNAL(dataRequested(Core::IEditor*,quint64)), - this, SLOT(provideData(Core::IEditor*,quint64))); - connect(m_widget, SIGNAL(newRangeRequested(Core::IEditor*,quint64)), - this, SLOT(provideNewRange(Core::IEditor*,quint64))); + connect(m_widget, SIGNAL(dataRequested(quint64)), + this, SLOT(provideData(quint64))); + connect(m_widget, SIGNAL(newRangeRequested(quint64)), + this, SLOT(provideNewRange(quint64))); } ~BinEditorDocument() {} @@ -246,7 +246,8 @@ public: } private slots: - void provideData(Core::IEditor *, quint64 block) { + void provideData(quint64 block) + { if (m_fileName.isEmpty()) return; QFile file(m_fileName); @@ -266,7 +267,8 @@ private slots: } } - void provideNewRange(Core::IEditor *, quint64 offset) { + void provideNewRange(quint64 offset) + { open(0, m_fileName, offset); } diff --git a/src/plugins/debugger/memoryagent.cpp b/src/plugins/debugger/memoryagent.cpp index 0d045a4679..5289b50272 100644 --- a/src/plugins/debugger/memoryagent.cpp +++ b/src/plugins/debugger/memoryagent.cpp @@ -129,24 +129,12 @@ void MemoryAgent::updateMemoryView(quint64 address, quint64 length) void MemoryAgent::connectBinEditorWidget(QWidget *w) { - connect(w, - SIGNAL(dataRequested(Core::IEditor*,quint64)), - SLOT(fetchLazyData(Core::IEditor*,quint64))); - connect(w, - SIGNAL(newWindowRequested(quint64)), - SLOT(createBinEditor(quint64))); - connect(w, - SIGNAL(newRangeRequested(Core::IEditor*,quint64)), - SLOT(provideNewRange(Core::IEditor*,quint64))); - connect(w, - SIGNAL(dataChanged(Core::IEditor*,quint64,QByteArray)), - SLOT(handleDataChanged(Core::IEditor*,quint64,QByteArray))); - connect(w, - SIGNAL(dataChanged(Core::IEditor*,quint64,QByteArray)), - SLOT(handleDataChanged(Core::IEditor*,quint64,QByteArray))); - connect(w, - SIGNAL(addWatchpointRequested(quint64,uint)), - SLOT(handleWatchpointRequest(quint64,uint))); + connect(w, SIGNAL(dataRequested(quint64)), SLOT(fetchLazyData(quint64))); + connect(w, SIGNAL(newWindowRequested(quint64)), SLOT(createBinEditor(quint64))); + connect(w, SIGNAL(newRangeRequested(quint64)), SLOT(provideNewRange(quint64))); + connect(w, SIGNAL(dataChanged(quint64,QByteArray)), SLOT(handleDataChanged(quint64,QByteArray))); + connect(w, SIGNAL(dataChanged(quint64,QByteArray)), SLOT(handleDataChanged(quint64,QByteArray))); + connect(w, SIGNAL(addWatchpointRequested(quint64,uint)), SLOT(handleWatchpointRequest(quint64,uint))); } bool MemoryAgent::doCreateBinEditor(quint64 addr, unsigned flags, @@ -222,7 +210,7 @@ void MemoryAgent::createBinEditor(quint64 addr) createBinEditor(addr, 0, QList(), QPoint(), QString(), 0); } -void MemoryAgent::fetchLazyData(IEditor *, quint64 block) +void MemoryAgent::fetchLazyData(quint64 block) { m_engine->fetchMemory(this, sender(), BinBlockSize * block, BinBlockSize); } @@ -235,15 +223,14 @@ void MemoryAgent::addLazyData(QObject *editorToken, quint64 addr, MemoryView::binEditorAddData(w, addr, ba); } -void MemoryAgent::provideNewRange(IEditor *, quint64 address) +void MemoryAgent::provideNewRange(quint64 address) { QWidget *w = qobject_cast(sender()); QTC_ASSERT(w, return); MemoryView::setBinEditorRange(w, address, DataRange, BinBlockSize); } -void MemoryAgent::handleDataChanged(IEditor *, - quint64 addr, const QByteArray &data) +void MemoryAgent::handleDataChanged(quint64 addr, const QByteArray &data) { m_engine->changeMemory(this, sender(), addr, data); } diff --git a/src/plugins/debugger/memoryagent.h b/src/plugins/debugger/memoryagent.h index f44df5d2f1..5046e0753a 100644 --- a/src/plugins/debugger/memoryagent.h +++ b/src/plugins/debugger/memoryagent.h @@ -95,10 +95,9 @@ public slots: void closeViews(); private slots: - void fetchLazyData(Core::IEditor *, quint64 block); - void provideNewRange(Core::IEditor *editor, quint64 address); - void handleDataChanged(Core::IEditor *editor, quint64 address, - const QByteArray &data); + void fetchLazyData(quint64 block); + void provideNewRange(quint64 address); + void handleDataChanged(quint64 address, const QByteArray &data); void handleWatchpointRequest(quint64 address, uint size); void updateMemoryView(quint64 address, quint64 length); void engineStateChanged(Debugger::DebuggerState s); -- cgit v1.2.1 From 8906b4a4c8c0cae5bd5694aed2ff420a88e0cf20 Mon Sep 17 00:00:00 2001 From: hjk Date: Wed, 29 May 2013 16:24:17 +0200 Subject: Debugger: Make thread switching work in LLDB interface Change-Id: I332e78c352066ddd05e96199fd8ead088e3e9f58 Reviewed-by: hjk --- src/plugins/debugger/lldb/lldbengine.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp index 5f0397b80a..2b3af11a48 100644 --- a/src/plugins/debugger/lldb/lldbengine.cpp +++ b/src/plugins/debugger/lldb/lldbengine.cpp @@ -821,7 +821,7 @@ void LldbEngine::readLldbStandardError() qDebug() << "\nLLDB STDERR" << err; //qWarning() << "Unexpected lldb stderr:" << err; showMessage(_("Lldb stderr: " + err)); - //handleOutput(err); + m_lldbProc.kill(); } void LldbEngine::readLldbStandardOutput() -- cgit v1.2.1 From 6567a673942a3450a6516fb461abdc0bdafc6674 Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Wed, 29 May 2013 15:27:05 +0200 Subject: Fix possible crash in target We need to make sure to remove RCs we delete from the lists held in the updateDefaultRunConfigurations method. Change-Id: Icf7908af3554e682af6ba9101058cb210e35f999 Reviewed-by: Daniel Teske --- src/plugins/projectexplorer/target.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp index f6fb277c5a..d18d7fd464 100644 --- a/src/plugins/projectexplorer/target.cpp +++ b/src/plugins/projectexplorer/target.cpp @@ -658,8 +658,10 @@ void Target::updateDefaultRunConfigurations() } // Do actual changes: - foreach (RunConfiguration *rc, toRemove) + foreach (RunConfiguration *rc, toRemove) { removeRunConfiguration(rc); + existingConfigured.removeOne(rc); // make sure to also remove them from existingConfigured! + } if (removeExistingUnconfigured) { foreach (RunConfiguration *rc, existingUnconfigured) -- cgit v1.2.1 From 400806181625a0a167ef924bf11719f4e46ae2df Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Wed, 29 May 2013 13:08:17 +0200 Subject: Qbs: Update to new way of Qbs announcing warnings Change-Id: Ie707a24d5a081c058f838410c1223201ca4021b3 Reviewed-by: Christian Kandeler --- src/plugins/projectexplorer/taskhub.h | 8 ++++++-- src/plugins/qbsprojectmanager/qbsbuildstep.cpp | 10 ---------- src/plugins/qbsprojectmanager/qbsbuildstep.h | 1 - src/plugins/qbsprojectmanager/qbslogsink.cpp | 16 ++++++++++++++++ src/plugins/qbsprojectmanager/qbslogsink.h | 6 ++++++ src/shared/qbs | 2 +- 6 files changed, 29 insertions(+), 14 deletions(-) (limited to 'src') diff --git a/src/plugins/projectexplorer/taskhub.h b/src/plugins/projectexplorer/taskhub.h index 1355705e61..90f77abd75 100644 --- a/src/plugins/projectexplorer/taskhub.h +++ b/src/plugins/projectexplorer/taskhub.h @@ -45,10 +45,13 @@ public: TaskHub(); virtual ~TaskHub(); +public slots: void addCategory(const Core::Id &categoryId, const QString &displayName, bool visible = true); - void addTask(Task task); + void addTask(ProjectExplorer::Task task); void clearTasks(const Core::Id &categoryId = Core::Id()); - void removeTask(const Task &task); + void removeTask(const ProjectExplorer::Task &task); + +public: void updateTaskFileName(unsigned int id, const QString &fileName); void updateTaskLineNumber(unsigned int id, int line); void taskMarkClicked(unsigned int id); @@ -58,6 +61,7 @@ public: void requestPopup(); QIcon taskTypeIcon(ProjectExplorer::Task::TaskType t) const; + signals: void categoryAdded(const Core::Id &categoryId, const QString &displayName, bool visible); void taskAdded(const ProjectExplorer::Task &task); diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp index 9e944c9422..10522cebe1 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp @@ -135,8 +135,6 @@ void QbsBuildStep::run(QFutureInterface &fi) this, SLOT(handleProgress(int))); connect(m_job, SIGNAL(reportCommandDescription(QString,QString)), this, SLOT(handleCommandDescriptionReport(QString,QString))); - connect(m_job, SIGNAL(reportWarning(qbs::Error)), - this, SLOT(handleWarningReport(qbs::Error))); connect(m_job, SIGNAL(reportProcessResult(qbs::ProcessResult)), this, SLOT(handleProcessResultReport(qbs::ProcessResult))); } @@ -246,14 +244,6 @@ void QbsBuildStep::handleProgress(int value) m_fi->setProgressValue(m_progressBase + value); } -void QbsBuildStep::handleWarningReport(const qbs::Error &error) -{ - foreach (const qbs::ErrorData &data, error.entries()) { - createTaskAndOutput(ProjectExplorer::Task::Warning, data.description(), - data.codeLocation().fileName(), data.codeLocation().line()); - } -} - void QbsBuildStep::handleCommandDescriptionReport(const QString &highlight, const QString &message) { Q_UNUSED(highlight); diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.h b/src/plugins/qbsprojectmanager/qbsbuildstep.h index 9d5e1da394..0d1ce0691b 100644 --- a/src/plugins/qbsprojectmanager/qbsbuildstep.h +++ b/src/plugins/qbsprojectmanager/qbsbuildstep.h @@ -78,7 +78,6 @@ private slots: void buildingDone(bool success); void handleTaskStarted(const QString &desciption, int max); void handleProgress(int value); - void handleWarningReport(const qbs::Error &error); void handleCommandDescriptionReport(const QString &highlight, const QString &message); void handleProcessResultReport(const qbs::ProcessResult &result); diff --git a/src/plugins/qbsprojectmanager/qbslogsink.cpp b/src/plugins/qbsprojectmanager/qbslogsink.cpp index 03cfe0fdf6..624f513917 100644 --- a/src/plugins/qbsprojectmanager/qbslogsink.cpp +++ b/src/plugins/qbsprojectmanager/qbslogsink.cpp @@ -32,6 +32,9 @@ #include #include +#include +#include +#include #include #include @@ -46,6 +49,9 @@ namespace Internal { QbsLogSink::QbsLogSink(QObject *parent) : QObject(parent) { + ProjectExplorer::TaskHub *hub = ProjectExplorer::ProjectExplorerPlugin::instance()->taskHub(); + connect(this, SIGNAL(newTask(ProjectExplorer::Task)), + hub, SLOT(addTask(ProjectExplorer::Task)), Qt::QueuedConnection); } void QbsLogSink::sendMessages() @@ -62,6 +68,16 @@ void QbsLogSink::sendMessages() mm->printToOutputPane(msg); } +void QbsLogSink::doPrintWarning(const qbs::Error &warning) +{ + foreach (const qbs::ErrorData &data, warning.entries()) + emit newTask(ProjectExplorer::Task(ProjectExplorer::Task::Warning, + data.description(), + Utils::FileName::fromString(data.codeLocation().fileName()), + data.codeLocation().line(), + ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM)); +} + void QbsLogSink::doPrintMessage(qbs::LoggerLevel level, const QString &message, const QString &tag) { Q_UNUSED(tag); diff --git a/src/plugins/qbsprojectmanager/qbslogsink.h b/src/plugins/qbsprojectmanager/qbslogsink.h index cfbfc1b1d0..fe40101e88 100644 --- a/src/plugins/qbsprojectmanager/qbslogsink.h +++ b/src/plugins/qbsprojectmanager/qbslogsink.h @@ -30,6 +30,8 @@ #ifndef QBSLOGSINK_H #define QBSLOGSINK_H +#include + #include #include @@ -45,10 +47,14 @@ class QbsLogSink : public QObject, public qbs::ILogSink public: QbsLogSink(QObject *parent = 0); +signals: + void newTask(const ProjectExplorer::Task &task); + private slots: void sendMessages(); private: + void doPrintWarning(const qbs::Error &warning); void doPrintMessage(qbs::LoggerLevel level, const QString &message, const QString &tag); QStringList m_messages; diff --git a/src/shared/qbs b/src/shared/qbs index 32ae53690c..5df624fa58 160000 --- a/src/shared/qbs +++ b/src/shared/qbs @@ -1 +1 @@ -Subproject commit 32ae53690c01e5269ac2a9ad0dadf549ce04ee3f +Subproject commit 5df624fa5884ba7ca9d1d0666484ad24c1c0b70b -- cgit v1.2.1 From 0b91475b6d2a7752763a5c5146ef80905cb6a40a Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 29 May 2013 15:23:44 +0200 Subject: QmlDesigner.Instances: fix for Mac OS and Qt 4 The QSharedMemory implementations of Qt5 and Qt4 on Mac seem to be incompatible. We seem to have the same bug casually for Linux. Until we solve the real issue this serves as a quick fix. Change-Id: I686e3e94b6bb777b96f8c68cac6036c18b8d070d Reviewed-by: Marco Bubke --- .../qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'src') diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp index c5fb89d1e8..5ddff4a7ed 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp @@ -158,6 +158,10 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV QProcessEnvironment enviroment = QProcessEnvironment::systemEnvironment(); +#if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) && (defined(Q_OS_MAC) || defined(Q_OS_LINUX)) + enviroment.insert(QLatin1String("DESIGNER_DONT_USE_SHARED_MEMORY"), QLatin1String("1")); +#endif + if (QFileInfo(applicationPath).exists()) { m_qmlPuppetEditorProcess = new QProcess; m_qmlPuppetEditorProcess->setProcessEnvironment(enviroment); -- cgit v1.2.1 From 74038300553faa003ecb29e20f143b6b62fc692c Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Wed, 29 May 2013 13:05:34 +0200 Subject: QmlDesigner.Instances: fixing spelling mistake Change-Id: I26f822fac1702e83f8f39747106c0fd3ebc22202 Reviewed-by: Marco Bubke --- .../designercore/instances/nodeinstanceserverproxy.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp index 5ddff4a7ed..a3dedd831a 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp @@ -156,7 +156,7 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV if (!envImportPath.isEmpty()) applicationPath = envImportPath; - QProcessEnvironment enviroment = QProcessEnvironment::systemEnvironment(); + QProcessEnvironment environment = QProcessEnvironment::systemEnvironment(); #if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) && (defined(Q_OS_MAC) || defined(Q_OS_LINUX)) enviroment.insert(QLatin1String("DESIGNER_DONT_USE_SHARED_MEMORY"), QLatin1String("1")); @@ -164,7 +164,7 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV if (QFileInfo(applicationPath).exists()) { m_qmlPuppetEditorProcess = new QProcess; - m_qmlPuppetEditorProcess->setProcessEnvironment(enviroment); + m_qmlPuppetEditorProcess->setProcessEnvironment(environment); m_qmlPuppetEditorProcess->setObjectName("EditorProcess"); connect(m_qmlPuppetEditorProcess.data(), SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished(int,QProcess::ExitStatus))); connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), m_qmlPuppetEditorProcess.data(), SLOT(kill())); @@ -175,7 +175,7 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV if (runModus == NormalModus) { m_qmlPuppetPreviewProcess = new QProcess; - m_qmlPuppetPreviewProcess->setProcessEnvironment(enviroment); + m_qmlPuppetPreviewProcess->setProcessEnvironment(environment); m_qmlPuppetPreviewProcess->setObjectName("PreviewProcess"); connect(m_qmlPuppetPreviewProcess.data(), SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished(int,QProcess::ExitStatus))); connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), m_qmlPuppetPreviewProcess.data(), SLOT(kill())); @@ -184,7 +184,7 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV m_qmlPuppetPreviewProcess->start(applicationPath, QStringList() << socketToken << "previewmode" << "-graphicssystem raster"); m_qmlPuppetRenderProcess = new QProcess; - m_qmlPuppetRenderProcess->setProcessEnvironment(enviroment); + m_qmlPuppetRenderProcess->setProcessEnvironment(environment); m_qmlPuppetRenderProcess->setObjectName("RenderProcess"); connect(m_qmlPuppetRenderProcess.data(), SIGNAL(finished(int,QProcess::ExitStatus)), this, SLOT(processFinished(int,QProcess::ExitStatus))); connect(QCoreApplication::instance(), SIGNAL(aboutToQuit()), m_qmlPuppetRenderProcess.data(), SLOT(kill())); -- cgit v1.2.1 From a05e63d7b0d277a1fc99761311e6a007789147ac Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Mon, 27 May 2013 10:17:43 +0200 Subject: QmlDesigner.Controls: updating sheets for Controls Updating sheets for QtQuick.Controls: * Adding enabled to Button * Adding translation to CheckBox * Adding translation to RadioButton Change-Id: I7d312c19e14cd7d653f0878cbae8af66641aa7f7 Reviewed-by: Thomas Hartmann --- .../componentsplugin/Controls/ButtonSpecifics.qml | 15 +++++++++++++++ .../componentsplugin/Controls/CheckBoxSpecifics.qml | 1 + .../componentsplugin/Controls/RadioButtonSpecifics.qml | 1 + 3 files changed, 17 insertions(+) (limited to 'src') diff --git a/src/plugins/qmldesigner/componentsplugin/Controls/ButtonSpecifics.qml b/src/plugins/qmldesigner/componentsplugin/Controls/ButtonSpecifics.qml index 3fa325c189..95101e3599 100644 --- a/src/plugins/qmldesigner/componentsplugin/Controls/ButtonSpecifics.qml +++ b/src/plugins/qmldesigner/componentsplugin/Controls/ButtonSpecifics.qml @@ -86,6 +86,21 @@ QWidget { } } + QWidget { + layout: HorizontalLayout { + Label { + text: qsTr("Enabled") + toolTip: qsTr("Determines whether the button is enabled or not.") + } + CheckBox { + text: backendValues.enabled.value + backendValue: backendValues.enabled + baseStateFlag: isBaseState + checkable: true + } + } + } + QWidget { layout: HorizontalLayout { Label { diff --git a/src/plugins/qmldesigner/componentsplugin/Controls/CheckBoxSpecifics.qml b/src/plugins/qmldesigner/componentsplugin/Controls/CheckBoxSpecifics.qml index 12486b9067..412fdeb95b 100644 --- a/src/plugins/qmldesigner/componentsplugin/Controls/CheckBoxSpecifics.qml +++ b/src/plugins/qmldesigner/componentsplugin/Controls/CheckBoxSpecifics.qml @@ -42,6 +42,7 @@ GroupBox { LineEdit { backendValue: backendValues.text baseStateFlag: isBaseState + translation: true } } } diff --git a/src/plugins/qmldesigner/componentsplugin/Controls/RadioButtonSpecifics.qml b/src/plugins/qmldesigner/componentsplugin/Controls/RadioButtonSpecifics.qml index d006c3d963..25ed160c0f 100644 --- a/src/plugins/qmldesigner/componentsplugin/Controls/RadioButtonSpecifics.qml +++ b/src/plugins/qmldesigner/componentsplugin/Controls/RadioButtonSpecifics.qml @@ -43,6 +43,7 @@ GroupBox { LineEdit { backendValue: backendValues.text baseStateFlag: isBaseState + translation: true } } } -- cgit v1.2.1 From 8762dd2ea94e4a2f371b9f1667d8b14352264e6b Mon Sep 17 00:00:00 2001 From: Fawzi Mohamed Date: Tue, 21 May 2013 15:42:02 +0200 Subject: qmljstools: reset code model after update of exported cpp types Task-number: QTCREATORBUG-9105 Change-Id: Id0021902985da8e5e7faec23766bb37541d041c0 Reviewed-by: Thomas Hartmann --- src/plugins/qmljstools/qmljsmodelmanager.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp index 5893c972d7..07e9ec06c1 100644 --- a/src/plugins/qmljstools/qmljsmodelmanager.cpp +++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp @@ -925,6 +925,7 @@ void ModelManager::updateCppQmlTypes(QFutureInterface &interface, FindExportedCppTypes finder(snapshot); + bool hasNewInfo = false; typedef QPair DocScanPair; foreach (const DocScanPair &pair, documents) { if (interface.isCanceled()) @@ -934,7 +935,7 @@ void ModelManager::updateCppQmlTypes(QFutureInterface &interface, const bool scan = pair.second; const QString fileName = doc->fileName(); if (!scan) { - newData.remove(fileName); + hasNewInfo = hasNewInfo || newData.remove(fileName) > 0; continue; } @@ -943,9 +944,11 @@ void ModelManager::updateCppQmlTypes(QFutureInterface &interface, QList exported = finder.exportedTypes(); QHash contextProperties = finder.contextProperties(); if (exported.isEmpty() && contextProperties.isEmpty()) { - newData.remove(fileName); + hasNewInfo = hasNewInfo || newData.remove(fileName) > 0; } else { CppData &data = newData[fileName]; + // currently we have no simple way to compare, so we assume the worse + hasNewInfo = true; data.exportedTypes = exported; data.contextProperties = contextProperties; } @@ -955,6 +958,9 @@ void ModelManager::updateCppQmlTypes(QFutureInterface &interface, QMutexLocker locker(&qmlModelManager->m_cppDataMutex); qmlModelManager->m_cppDataHash = newData; + if (hasNewInfo) + // one could get away with re-linking the cpp types... + QMetaObject::invokeMethod(qmlModelManager, "resetCodeModel"); } ModelManager::CppDataHash ModelManager::cppData() const -- cgit v1.2.1 From 2b903b46d37dc54e39b43faffffc60a33a2b9974 Mon Sep 17 00:00:00 2001 From: Petar Perisin Date: Wed, 29 May 2013 22:01:10 +0200 Subject: Git - added dummy locator actions for Merge, Rebase, Show, Cherry Pick, Revert and Checkout. Task-number: QTCREATORBUG-9405 Change-Id: I9a10d93382248ca86fe566bf1dccf4d390601aaf Reviewed-by: Orgad Shaneh Reviewed-by: Tobias Hunger --- src/plugins/git/gitplugin.cpp | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 1eb1ec4215..665c332b21 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -233,7 +233,8 @@ ActionCommandPair { QAction *action = new QAction(text, this); Core::Command *command = Core::ActionManager::registerAction(action, id, context); - ac->addAction(command); + if (ac) + ac->addAction(command); m_repositoryActions.push_back(action); if (addToLocator) m_commandLocator->appendCommand(command); @@ -439,7 +440,7 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage) globalcontext, false, SLOT(resetRepository())); createRepositoryAction(localRepositoryMenu, - tr("Interactive Rebase..."), Core::Id("Git.Rebase"), + tr("Interactive Rebase..."), Core::Id("Git.InteractiveRebase"), globalcontext, true, SLOT(startRebase())); createRepositoryAction(localRepositoryMenu, @@ -591,6 +592,29 @@ bool GitPlugin::initialize(const QStringList &arguments, QString *errorMessage) // -------------- + /* Actions only in locator */ + createRepositoryAction(0, tr("Show..."), Core::Id("Git.Show"), + globalcontext, true, SLOT(startChangeRelatedAction())); + + createRepositoryAction(0, tr("Revert..."), Core::Id("Git.Revert"), + globalcontext, true, SLOT(startChangeRelatedAction())); + + createRepositoryAction(0, tr("Cherry Pick..."), Core::Id("Git.CherryPick"), + globalcontext, true, SLOT(startChangeRelatedAction())); + + createRepositoryAction(0, tr("Checkout..."), Core::Id("Git.Checkout"), + globalcontext, true, SLOT(startChangeRelatedAction())); + + createRepositoryAction(0, tr("Rebase..."), Core::Id("Git.Rebase"), + globalcontext, true, SLOT(branchList())); + + createRepositoryAction(0, tr("Merge..."), Core::Id("Git.Merge"), + globalcontext, true, SLOT(branchList())); + + /* \Actions only in locator */ + + // -------------- + /* "Git Tools" menu */ Core::ActionContainer *gitToolsMenu = Core::ActionManager::createMenu(Core::Id("Git.GitToolsMenu")); gitToolsMenu->menu()->setTitle(tr("Git &Tools")); -- cgit v1.2.1 From b45fbc57f03c0048f4b78d79db7274e65a924bcf Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Wed, 29 May 2013 12:11:34 +0200 Subject: Fix qbs build. Referring to non-existing files causes an error now. Change-Id: I51aed8dfdcc92779158b284b849a34f259997e7c Reviewed-by: Joerg Bornemann --- src/plugins/projectexplorer/projectexplorer.qbs | 2 -- src/plugins/texteditor/texteditor.qbs | 1 - 2 files changed, 3 deletions(-) (limited to 'src') diff --git a/src/plugins/projectexplorer/projectexplorer.qbs b/src/plugins/projectexplorer/projectexplorer.qbs index 05f971036f..fbadafac3b 100644 --- a/src/plugins/projectexplorer/projectexplorer.qbs +++ b/src/plugins/projectexplorer/projectexplorer.qbs @@ -310,8 +310,6 @@ QtcPlugin { "images/targetleftbutton.png", "images/targetpanel_bottom.png", "images/targetpanel_gradient.png", - "images/targetremovebutton.png", - "images/targetremovebuttondark.png", "images/targetrightbutton.png", "images/targetrunselected.png", "images/targetseparatorbackground.png", diff --git a/src/plugins/texteditor/texteditor.qbs b/src/plugins/texteditor/texteditor.qbs index ed32f2e26f..b20ee44f0b 100644 --- a/src/plugins/texteditor/texteditor.qbs +++ b/src/plugins/texteditor/texteditor.qbs @@ -187,7 +187,6 @@ QtcPlugin { "ifunctionhintproposalmodel.h", "igenericproposalmodel.cpp", "igenericproposalmodel.h", - "ikeywords.h", "keywordscompletionassist.cpp", "keywordscompletionassist.h", "quickfixassistprocessor.cpp", -- cgit v1.2.1 From b0aa436fa5694f943b79d64626e3dd18df554d4a Mon Sep 17 00:00:00 2001 From: Laurent Montel Date: Thu, 30 May 2013 11:46:58 +0200 Subject: Fix compile on linux + qt < 5 Change-Id: Iadb7df3cdb32180f78dace7bc11c7c673399c65b Reviewed-by: Nicolas Arnaud-Cormos --- .../qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp index a3dedd831a..f366abbb01 100644 --- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp +++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp @@ -159,7 +159,7 @@ NodeInstanceServerProxy::NodeInstanceServerProxy(NodeInstanceView *nodeInstanceV QProcessEnvironment environment = QProcessEnvironment::systemEnvironment(); #if (QT_VERSION < QT_VERSION_CHECK(5, 0, 0)) && (defined(Q_OS_MAC) || defined(Q_OS_LINUX)) - enviroment.insert(QLatin1String("DESIGNER_DONT_USE_SHARED_MEMORY"), QLatin1String("1")); + environment.insert(QLatin1String("DESIGNER_DONT_USE_SHARED_MEMORY"), QLatin1String("1")); #endif if (QFileInfo(applicationPath).exists()) { -- cgit v1.2.1