summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@digia.com>2013-05-30 13:48:27 +0200
committerEike Ziller <eike.ziller@digia.com>2013-05-30 13:48:27 +0200
commit0a95b28147d9c4ea57ba9b025beec2d503399acf (patch)
tree9032878c4c1b3877167990376d3871db70eb304c /src
parentcca4cbfb02da327c844c1291d43a8f7f6420e334 (diff)
parent10d7d61e263573116965b1af53cdbda0f668211d (diff)
downloadqt-creator-0a95b28147d9c4ea57ba9b025beec2d503399acf.tar.gz
Merge remote-tracking branch 'origin/2.8'
Diffstat (limited to 'src')
-rw-r--r--src/plugins/android/androiddeploystep.cpp65
-rw-r--r--src/plugins/android/androiddeploystep.h13
-rw-r--r--src/plugins/android/androiddeploystepwidget.cpp35
-rw-r--r--src/plugins/android/androiddeploystepwidget.h5
-rw-r--r--src/plugins/android/androiddeploystepwidget.ui206
-rw-r--r--src/plugins/android/androidmanager.cpp10
-rw-r--r--src/plugins/android/androidpackagecreationstep.cpp2
-rw-r--r--src/plugins/android/androidpackagecreationwidget.cpp6
-rw-r--r--src/plugins/android/androidrunner.cpp4
-rw-r--r--src/plugins/bineditor/bineditor.cpp156
-rw-r--r--src/plugins/bineditor/bineditor.h13
-rw-r--r--src/plugins/bineditor/bineditorplugin.cpp158
-rw-r--r--src/plugins/bineditor/bineditorplugin.h6
-rw-r--r--src/plugins/classview/classviewnavigationwidgetfactory.cpp14
-rw-r--r--src/plugins/coreplugin/dialogs/readonlyfilesdialog.cpp4
-rw-r--r--src/plugins/coreplugin/generalsettings.cpp5
-rw-r--r--src/plugins/cpaster/codepastersettings.cpp18
-rw-r--r--src/plugins/cpaster/codepastersettings.h1
-rw-r--r--src/plugins/cpptools/cppcodestylesettingspage.cpp9
-rw-r--r--src/plugins/cpptools/cppmodelmanagerinterface.cpp14
-rw-r--r--src/plugins/cpptools/cpptoolssettings.cpp2
-rw-r--r--src/plugins/cvs/cvsplugin.cpp6
-rw-r--r--src/plugins/debugger/cdb/cdboptionspage.cpp3
-rw-r--r--src/plugins/debugger/debuggermainwindow.cpp4
-rw-r--r--src/plugins/debugger/lldb/lldbengine.cpp57
-rw-r--r--src/plugins/debugger/lldb/lldbengine.h7
-rw-r--r--src/plugins/debugger/memoryagent.cpp31
-rw-r--r--src/plugins/debugger/memoryagent.h7
-rw-r--r--src/plugins/debugger/shared/symbolpathsdialog.ui6
-rw-r--r--src/plugins/designer/settingsmanager.cpp35
-rw-r--r--src/plugins/find/searchresultwindow.cpp16
-rw-r--r--src/plugins/git/gerrit/gerritplugin.cpp16
-rw-r--r--src/plugins/git/gitclient.cpp60
-rw-r--r--src/plugins/git/gitclient.h12
-rw-r--r--src/plugins/git/gitplugin.cpp31
-rw-r--r--src/plugins/projectexplorer/projectexplorer.cpp60
-rw-r--r--src/plugins/projectexplorer/projectexplorer.qbs2
-rw-r--r--src/plugins/projectexplorer/target.cpp4
-rw-r--r--src/plugins/projectexplorer/taskhub.h8
-rw-r--r--src/plugins/pythoneditor/pythoneditor.pro2
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildstep.cpp10
-rw-r--r--src/plugins/qbsprojectmanager/qbsbuildstep.h1
-rw-r--r--src/plugins/qbsprojectmanager/qbslogsink.cpp16
-rw-r--r--src/plugins/qbsprojectmanager/qbslogsink.h6
-rw-r--r--src/plugins/qmldesigner/componentsplugin/Controls/ButtonSpecifics.qml15
-rw-r--r--src/plugins/qmldesigner/componentsplugin/Controls/CheckBoxSpecifics.qml1
-rw-r--r--src/plugins/qmldesigner/componentsplugin/Controls/RadioButtonSpecifics.qml1
-rw-r--r--src/plugins/qmldesigner/designercore/include/qmlobjectnode.h4
-rw-r--r--src/plugins/qmldesigner/designercore/include/rewritingexception.h2
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp12
-rw-r--r--src/plugins/qmldesigner/designercore/model/qmlobjectnode.cpp33
-rw-r--r--src/plugins/qmljstools/qmljscodestylesettingspage.cpp6
-rw-r--r--src/plugins/qmljstools/qmljsmodelmanager.cpp10
-rw-r--r--src/plugins/qnx/blackberryconfiguration.cpp10
-rw-r--r--src/plugins/subversion/subversionplugin.cpp1
-rw-r--r--src/plugins/texteditor/texteditor.qbs1
m---------src/shared/qbs0
57 files changed, 666 insertions, 576 deletions
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<Qt4Project *>(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<QProcess *>(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 @@
<rect>
<x>0</x>
<y>0</y>
- <width>560</width>
- <height>145</height>
+ <width>678</width>
+ <height>155</height>
</rect>
</property>
<property name="sizePolicy">
@@ -19,138 +19,88 @@
<property name="windowTitle">
<string>Form</string>
</property>
- <layout class="QGridLayout" name="gridLayout">
- <item row="0" column="0">
- <widget class="QRadioButton" name="devicesQtLibs">
- <property name="toolTip">
- <string>Use Qt libraries from device</string>
- </property>
- <property name="text">
- <string>Use Qt libraries from device</string>
- </property>
- <property name="checked">
- <bool>true</bool>
+ <layout class="QHBoxLayout" name="horizontalLayout">
+ <item>
+ <widget class="QGroupBox" name="groupBox">
+ <property name="title">
+ <string>Qt Deployment</string>
</property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QRadioButton" name="ministroOption">
+ <property name="toolTip">
+ <string>Use the external Ministro application to download and maintain Qt libraries.</string>
+ </property>
+ <property name="text">
+ <string>Use Ministro service to install Qt</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="temporaryQtOption">
+ <property name="toolTip">
+ <string>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.</string>
+ </property>
+ <property name="text">
+ <string>Deploy local Qt libraries to temporary directory</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QRadioButton" name="bundleQtOption">
+ <property name="toolTip">
+ <string>Creates a standalone APK.</string>
+ </property>
+ <property name="text">
+ <string>Bundle Qt libraries in APK</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</widget>
</item>
- <item row="1" column="0">
- <layout class="QHBoxLayout" name="horizontalLayout_2">
- <item>
- <widget class="QRadioButton" name="deployQtLibs">
- <property name="toolTip">
- <string>Push local Qt libraries to device.
-You must have Qt libraries compiled for that platform</string>
- </property>
- <property name="text">
- <string>Deploy local Qt libraries</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QCheckBox" name="useLocalQtLibs">
- <property name="toolTip">
- <string>Check this option to force the application to use local Qt libraries instead of system libraries.</string>
- </property>
- <property name="text">
- <string>Use local Qt libraries</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="cleanLibsPushButton">
- <property name="text">
- <string>Clean Libs on Device</string>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item row="2" column="0">
- <layout class="QHBoxLayout" name="horizontalLayout">
- <item>
- <widget class="QRadioButton" name="installQASI">
- <property name="toolTip">
- <string>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).</string>
- </property>
- <property name="text">
- <string>Install Ministro, system-wide Qt shared libraries installer</string>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="chooseButton">
- <property name="enabled">
- <bool>false</bool>
- </property>
- <property name="text">
- <string>Choose APK</string>
- </property>
- </widget>
- </item>
- <item>
- <spacer name="horizontalSpacer">
- <property name="orientation">
- <enum>Qt::Horizontal</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>40</width>
- <height>20</height>
- </size>
- </property>
- </spacer>
- </item>
- </layout>
- </item>
- <item row="3" column="0">
- <spacer name="verticalSpacer">
- <property name="orientation">
- <enum>Qt::Vertical</enum>
- </property>
- <property name="sizeHint" stdset="0">
- <size>
- <width>20</width>
- <height>41</height>
- </size>
+ <item>
+ <widget class="QGroupBox" name="groupBox_2">
+ <property name="title">
+ <string>Advanced Actions</string>
</property>
- </spacer>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QPushButton" name="cleanLibsPushButton">
+ <property name="text">
+ <string>Clean Temporary Libraries Directory on Device</string>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QPushButton" name="chooseButton">
+ <property name="text">
+ <string>Install Ministro from APK</string>
+ </property>
+ </widget>
+ </item>
+ <item row="2" column="0">
+ <spacer name="verticalSpacer">
+ <property name="orientation">
+ <enum>Qt::Vertical</enum>
+ </property>
+ <property name="sizeHint" stdset="0">
+ <size>
+ <width>20</width>
+ <height>40</height>
+ </size>
+ </property>
+ </spacer>
+ </item>
+ </layout>
+ </widget>
</item>
</layout>
</widget>
<resources/>
- <connections>
- <connection>
- <sender>installQASI</sender>
- <signal>toggled(bool)</signal>
- <receiver>chooseButton</receiver>
- <slot>setEnabled(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>119</x>
- <y>68</y>
- </hint>
- <hint type="destinationlabel">
- <x>272</x>
- <y>64</y>
- </hint>
- </hints>
- </connection>
- <connection>
- <sender>deployQtLibs</sender>
- <signal>clicked(bool)</signal>
- <receiver>useLocalQtLibs</receiver>
- <slot>setChecked(bool)</slot>
- <hints>
- <hint type="sourcelabel">
- <x>138</x>
- <y>43</y>
- </hint>
- <hint type="destinationlabel">
- <x>343</x>
- <y>44</y>
- </hint>
- </hints>
- </connection>
- </connections>
+ <connections/>
</ui>
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<AndroidRunConfiguration *>(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/androidpackagecreationstep.cpp b/src/plugins/android/androidpackagecreationstep.cpp
index 9ca9af55f1..6dc5119103 100644
--- a/src/plugins/android/androidpackagecreationstep.cpp
+++ b/src/plugins/android/androidpackagecreationstep.cpp
@@ -338,7 +338,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);
emit updateRequiredLibrariesModels();
}
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<AndroidDeployStep>(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<AndroidDeployStep>(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());
diff --git a/src/plugins/bineditor/bineditor.cpp b/src/plugins/bineditor/bineditor.cpp
index 2037b4542d..25b12f0cc6 100644
--- a/src/plugins/bineditor/bineditor.cpp
+++ b/src/plugins/bineditor/bineditor.cpp
@@ -31,6 +31,7 @@
#include <texteditor/fontsettings.h>
#include <texteditor/texteditorconstants.h>
+#include <texteditor/texteditorsettings.h>
#include <coreplugin/editormanager/ieditor.h>
#include <utils/fileutils.h>
#include <utils/qtcassert.h>
@@ -85,7 +86,7 @@ static QByteArray calculateHexPattern(const QByteArray &pattern)
namespace BINEditor {
-BinEditor::BinEditor(QWidget *parent)
+BinEditorWidget::BinEditorWidget(QWidget *parent)
: QAbstractScrollArea(parent)
{
m_bytesPerLine = 16;
@@ -106,13 +107,20 @@ BinEditor::BinEditor(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)));
+
}
-BinEditor::~BinEditor()
+BinEditorWidget::~BinEditorWidget()
{
}
-void BinEditor::init()
+void BinEditorWidget::init()
{
const int addressStringWidth =
2*m_addressBytes + (m_addressBytes - 1) / 2;
@@ -162,7 +170,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 +184,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 +195,27 @@ bool BinEditor::requestDataAt(int pos) const
return true;
if (!m_requests.contains(block)) {
m_requests.insert(block);
- emit const_cast<BinEditor*>(this)->
- dataRequested(editor(), m_baseAddr / m_blockSize + block);
+ emit const_cast<BinEditorWidget*>(this)->
+ dataRequested(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);
@@ -222,10 +230,10 @@ void BinEditor::changeDataAt(int pos, char c)
}
}
- emit dataChanged(editor(), m_baseAddr + pos, QByteArray(1, c));
+ emit dataChanged(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 +247,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 +259,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 +274,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 +322,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 +331,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 +389,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,23 +431,23 @@ 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();
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 BinEditor::changeEvent(QEvent *e)
+void BinEditorWidget::changeEvent(QEvent *e)
{
QAbstractScrollArea::changeEvent(e);
if (e->type() == QEvent::ActivationChange) {
@@ -451,7 +459,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 +474,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 +489,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 +516,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 +539,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 +572,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 +604,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 +641,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 +666,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 +676,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 +687,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 +706,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 +938,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 +965,7 @@ void BinEditor::setCursorPosition(int pos, MoveMode moveMode)
}
-void BinEditor::ensureCursorVisible()
+void BinEditorWidget::ensureCursorVisible()
{
QRect cr = cursorRect();
QRect vr = viewport()->rect();
@@ -969,7 +977,7 @@ void BinEditor::ensureCursorVisible()
}
}
-void BinEditor::mousePressEvent(QMouseEvent *e)
+void BinEditorWidget::mousePressEvent(QMouseEvent *e)
{
if (e->button() != Qt::LeftButton)
return;
@@ -982,7 +990,7 @@ void BinEditor::mousePressEvent(QMouseEvent *e)
}
}
-void BinEditor::mouseMoveEvent(QMouseEvent *e)
+void BinEditorWidget::mouseMoveEvent(QMouseEvent *e)
{
if (!(e->buttons() & Qt::LeftButton))
return;
@@ -998,7 +1006,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 +1014,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 +1042,7 @@ void BinEditor::clear()
viewport()->update();
}
-bool BinEditor::event(QEvent *e)
+bool BinEditorWidget::event(QEvent *e)
{
switch (e->type()) {
case QEvent::KeyPress:
@@ -1050,7 +1058,7 @@ bool BinEditor::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;
@@ -1075,7 +1083,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 +1265,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 +1364,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 +1374,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 +1408,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 +1420,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 +1452,7 @@ void BinEditor::changeData(int position, uchar character, bool highNibble)
}
-void BinEditor::undo()
+void BinEditorWidget::undo()
{
if (m_undoStack.isEmpty())
return;
@@ -1464,7 +1472,7 @@ void BinEditor::undo()
emit redoAvailable(true);
}
-void BinEditor::redo()
+void BinEditorWidget::redo()
{
if (m_redoStack.isEmpty())
return;
@@ -1483,7 +1491,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 +1553,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,34 +1566,34 @@ 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);
else
- emit newRangeRequested(editor(), address);
+ emit newRangeRequested(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 +1602,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 +1611,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 +1623,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> &markup)
+void BinEditorWidget::setMarkup(const QList<Markup> &markup)
{
m_markup = markup;
viewport()->update();
diff --git a/src/plugins/bineditor/bineditor.h b/src/plugins/bineditor/bineditor.h
index 9242a5b00f..81b4b33045 100644
--- a/src/plugins/bineditor/bineditor.h
+++ b/src/plugins/bineditor/bineditor.h
@@ -55,16 +55,17 @@ class FontSettings;
namespace BINEditor {
-class BinEditor : public QAbstractScrollArea
+class BinEditorWidget : public QAbstractScrollArea
{
Q_OBJECT
Q_PROPERTY(bool modified READ isModified WRITE setModified DESIGNABLE false)
Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly DESIGNABLE false)
Q_PROPERTY(QList<BINEditor::Markup> 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; }
@@ -138,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 f6e401dae7..dbfd7e219e 100644
--- a/src/plugins/bineditor/bineditorplugin.cpp
+++ b/src/plugins/bineditor/bineditorplugin.cpp
@@ -58,8 +58,6 @@
#include <coreplugin/mimedatabase.h>
#include <extensionsystem/pluginmanager.h>
#include <find/ifindsupport.h>
-#include <texteditor/fontsettings.h>
-#include <texteditor/texteditorsettings.h>
#include <utils/reloadpromptutils.h>
#include <utils/qtcassert.h>
@@ -70,15 +68,18 @@ 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; }
+ QString currentFindString() const { return QString(); }
+ QString completedFindString() const { return QString(); }
+
Find::FindFlags supportedFindFlags() const
{
return Find::FindBackward | Find::FindCaseSensitively;
@@ -91,21 +92,22 @@ 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()); }
- 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_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,14 +180,14 @@ 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)),
- this, SLOT(provideData(Core::IEditor*,quint64)));
- connect(m_editor, SIGNAL(newRangeRequested(Core::IEditor*,quint64)),
- this, SLOT(provideNewRange(Core::IEditor*,quint64)));
+ m_widget = parent;
+ connect(m_widget, SIGNAL(dataRequested(quint64)),
+ this, SLOT(provideData(quint64)));
+ connect(m_widget, SIGNAL(newRangeRequested(quint64)),
+ this, SLOT(provideNewRange(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(
@@ -244,19 +246,20 @@ public:
}
private slots:
- void provideData(Core::IEditor *, quint64 block) {
+ void provideData(quint64 block)
+ {
if (m_fileName.isEmpty())
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(
@@ -264,7 +267,8 @@ private slots:
}
}
- void provideNewRange(Core::IEditor *, quint64 offset) {
+ void provideNewRange(quint64 offset)
+ {
open(0, m_fileName, offset);
}
@@ -280,10 +284,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 +310,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 +343,21 @@ public:
m_toolBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
m_toolBar->addWidget(w);
- connect(m_editor, 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());
+ 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());
}
- ~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 +372,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 +414,11 @@ 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);
+ BinEditor *editor = new BinEditor(widget);
+
+ m_owner->initializeEditor(widget);
+ return editor;
}
QStringList BinEditorFactory::mimeTypes() const
@@ -433,7 +441,7 @@ BinEditorWidgetFactory::BinEditorWidgetFactory(QObject *parent) :
QWidget *BinEditorWidgetFactory::createWidget(QWidget *parent)
{
- return new BinEditor(parent);
+ return new BinEditorWidget(parent);
}
///////////////////////////////// BinEditorPlugin //////////////////////////////////
@@ -467,12 +475,8 @@ 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);
-
m_context.add(Constants::C_BINEDITOR);
if (!m_undoAction) {
m_undoAction = registerNewAction(Core::Constants::UNDO, this, SLOT(undoAction()), tr("&Undo"));
@@ -481,19 +485,13 @@ void BinEditorPlugin::initializeEditor(BinEditor *editor)
m_selectAllAction = registerNewAction(Core::Constants::SELECTALL, this, SLOT(selectAllAction()));
}
- // Font settings
- TextEditor::TextEditorSettings *settings = TextEditor::TextEditorSettings::instance();
- editor->setFontSettings(settings->fontSettings());
- connect(settings, SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
- editor, 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 +513,9 @@ void BinEditorPlugin::extensionsInitialized()
void BinEditorPlugin::updateCurrentEditor(Core::IEditor *editor)
{
- BinEditor *binEditor = 0;
+ BinEditorWidget *binEditor = 0;
if (editor)
- binEditor = qobject_cast<BinEditor *>(editor->widget());
+ binEditor = qobject_cast<BinEditorWidget *>(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 <QAction>
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<BinEditor> m_currentEditor;
+ QPointer<BinEditorWidget> m_currentEditor;
};
class BinEditorFactory : public Core::IEditorFactory
diff --git a/src/plugins/classview/classviewnavigationwidgetfactory.cpp b/src/plugins/classview/classviewnavigationwidgetfactory.cpp
index bc3664b9a5..b85a9213c6 100644
--- a/src/plugins/classview/classviewnavigationwidgetfactory.cpp
+++ b/src/plugins/classview/classviewnavigationwidgetfactory.cpp
@@ -123,14 +123,11 @@ void NavigationWidgetFactory::saveSettings(int position, QWidget *widget)
NavigationWidget *pw = qobject_cast<NavigationWidget *>(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)
@@ -138,14 +135,11 @@ void NavigationWidgetFactory::restoreSettings(int position, QWidget *widget)
NavigationWidget *pw = qobject_cast<NavigationWidget *>(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/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<ReadOnlyResult>(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])
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/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);
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/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"
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<QString, QVariant> 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/debugger/lldb/lldbengine.cpp b/src/plugins/debugger/lldb/lldbengine.cpp
index 119382b878..2b3af11a48 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()
@@ -108,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()
@@ -249,6 +260,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 +496,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();
@@ -640,6 +665,10 @@ bool LldbEngine::setToolTipExpression(const QPoint &mousePos,
return false;
}
+void LldbEngine::updateAll()
+{
+ updateLocals();
+}
//////////////////////////////////////////////////////////////////////
//
@@ -663,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");
@@ -787,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()
@@ -859,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();
@@ -985,8 +1014,20 @@ 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 == "inferiorshutdownok")
+ notifyInferiorShutdownOk();
+ else if (newState == "inferiorshutdownfailed")
+ notifyInferiorShutdownFailed();
+ else if (newState == "engineshutdownok")
+ notifyEngineShutdownOk();
+ else if (newState == "engineshutdownfailed")
+ notifyEngineShutdownFailed();
+ else if (newState == "inferiorexited")
+ notifyInferiorExited();
}
void LldbEngine::refreshLocation(const GdbMi &reportedLocation)
diff --git a/src/plugins/debugger/lldb/lldbengine.h b/src/plugins/debugger/lldb/lldbengine.h
index 818ee91ca6..fe44c1940a 100644
--- a/src/plugins/debugger/lldb/lldbengine.h
+++ b/src/plugins/debugger/lldb/lldbengine.h
@@ -153,21 +153,22 @@ 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);
- void refreshRegisters(const GdbMi &stack);
+ void refreshRegisters(const GdbMi &registers);
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);
- void updateAll();
-
typedef void (LldbEngine::*LldbCommandContinuation)();
QByteArray currentOptions() const;
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<MemoryMarkup>(), 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<QWidget *>(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);
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 @@
</sizepolicy>
</property>
<property name="text">
- <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;
-&lt;p&gt;The debugger is not configured to use the public Microsoft Symbol Server.&lt;br&gt;This is recommended for retrieval of the symbols of the operating system libraries.&lt;/p&gt;
-&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Note:&lt;/span&gt; It is recommended, that if you use the Microsoft Symbol Server, to also use a local symbol cache.&lt;br&gt;Also, a fast internet connection is required for this to work smoothly,&lt;br&gt;and a delay might occur when connecting for the first time, when caching the symbols for the first time.&lt;/p&gt;
-&lt;p&gt;Would you like to set it up?&lt;/p&gt;
-&lt;/body&gt;&lt;/html&gt;</string>
+ <string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;The debugger is not configured to use the public Microsoft Symbol Server.&lt;br/&gt;This is recommended for retrieval of the symbols of the operating system libraries.&lt;/p&gt;&lt;p&gt;&lt;span style=&quot; font-style:italic;&quot;&gt;Note:&lt;/span&gt; It is recommended, that if you use the Microsoft Symbol Server, to also use a local symbol cache.&lt;br/&gt;A fast internet connection is required for this to work smoothly,&lt;br/&gt;and a delay might occur when connecting for the first time and caching the symbols.&lt;/p&gt;&lt;p&gt;What would you like to set up?&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
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 61523af265..cda06a6464 100644
--- a/src/plugins/find/searchresultwindow.cpp
+++ b/src/plugins/find/searchresultwindow.cpp
@@ -508,11 +508,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();
}
/*!
@@ -521,11 +519,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/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<Gerrit::Internal::GerritChange> &c
}
}
- if (!verifiedRepository && QFile::exists(repository + QLatin1String("/.gitmodules"))) {
- QMap<QString,QString> submodules = gitClient->synchronousSubmoduleList(repository);
-
- QMap<QString,QString>::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<QString,QString> GitClient::synchronousRemotesList(const QString &workingDi
return result;
}
-// function returns submodules in format path=url
-QMap<QString,QString> GitClient::synchronousSubmoduleList(const QString &workingDirectory)
+SubmoduleDataMap GitClient::submoduleList(const QString &workingDirectory)
{
- QMap<QString,QString> 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<QString, SubmoduleDataMap> 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<QString, SubmoduleData> SubmoduleDataMap;
+
class GitClient : public QObject
{
Q_OBJECT
@@ -200,7 +210,7 @@ public:
QMap<QString,QString> synchronousRemotesList(const QString &workingDirectory,
QString *errorMessage = 0);
- QMap<QString,QString> 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..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"));
@@ -1323,8 +1347,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();
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<QPair<QString, QString> >::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<QPair<QString, QString> >::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/projectexplorer/projectexplorer.qbs b/src/plugins/projectexplorer/projectexplorer.qbs
index d7519ee6ef..c8b5785c80 100644
--- a/src/plugins/projectexplorer/projectexplorer.qbs
+++ b/src/plugins/projectexplorer/projectexplorer.qbs
@@ -319,8 +319,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/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)
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/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 += \
diff --git a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
index 2a1126b3bd..37304766d6 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
+++ b/src/plugins/qbsprojectmanager/qbsbuildstep.cpp
@@ -135,8 +135,6 @@ void QbsBuildStep::run(QFutureInterface<bool> &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)));
}
@@ -248,14 +246,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 62406f9944..a916b9d91c 100644
--- a/src/plugins/qbsprojectmanager/qbsbuildstep.h
+++ b/src/plugins/qbsprojectmanager/qbsbuildstep.h
@@ -79,7 +79,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 48939435a2..3d7ac94eae 100644
--- a/src/plugins/qbsprojectmanager/qbslogsink.cpp
+++ b/src/plugins/qbsprojectmanager/qbslogsink.cpp
@@ -32,6 +32,9 @@
#include <qbs.h>
#include <coreplugin/messagemanager.h>
+#include <projectexplorer/projectexplorer.h>
+#include <projectexplorer/taskhub.h>
+#include <utils/fileutils.h>
#include <QCoreApplication>
#include <QMutexLocker>
@@ -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, Core::MessageManager::NoModeSwitch);
}
+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 <projectexplorer/task.h>
+
#include <qbs.h>
#include <QMutex>
@@ -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/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
@@ -89,6 +89,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 {
text: qsTr("Default button")
toolTip: qsTr("Sets the button as the default button in a dialog.")
}
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
}
}
}
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/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,
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
index c5fb89d1e8..f366abbb01 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserverproxy.cpp
@@ -156,11 +156,15 @@ 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))
+ environment.insert(QLatin1String("DESIGNER_DONT_USE_SHARED_MEMORY"), QLatin1String("1"));
+#endif
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()));
@@ -171,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()));
@@ -180,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()));
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);
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/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<void> &interface,
FindExportedCppTypes finder(snapshot);
+ bool hasNewInfo = false;
typedef QPair<CPlusPlus::Document::Ptr, bool> DocScanPair;
foreach (const DocScanPair &pair, documents) {
if (interface.isCanceled())
@@ -934,7 +935,7 @@ void ModelManager::updateCppQmlTypes(QFutureInterface<void> &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<void> &interface,
QList<LanguageUtils::FakeMetaObject::ConstPtr> exported = finder.exportedTypes();
QHash<QString, QString> 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<void> &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
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();
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;
diff --git a/src/plugins/texteditor/texteditor.qbs b/src/plugins/texteditor/texteditor.qbs
index 28451cae8d..9792f6a884 100644
--- a/src/plugins/texteditor/texteditor.qbs
+++ b/src/plugins/texteditor/texteditor.qbs
@@ -188,7 +188,6 @@ QtcPlugin {
"ifunctionhintproposalmodel.h",
"igenericproposalmodel.cpp",
"igenericproposalmodel.h",
- "ikeywords.h",
"keywordscompletionassist.cpp",
"keywordscompletionassist.h",
"quickfixassistprocessor.cpp",
diff --git a/src/shared/qbs b/src/shared/qbs
-Subproject 32ae53690c01e5269ac2a9ad0dadf549ce04ee3
+Subproject 5df624fa5884ba7ca9d1d0666484ad24c1c0b70