summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorcon <qtc-committer@nokia.com>2011-04-27 11:27:29 +0200
committercon <qtc-committer@nokia.com>2011-04-27 11:27:29 +0200
commit14487af86cb49428baea00d1426b25a109885b8e (patch)
treed0236c4fe3f5d35027f7bb59b0c634e6fd2a66ce /src
parent80ef07dce3bc3af76b988875378d38be3588c912 (diff)
parenta130ebf4131f13c30206d01731c62c4f530a3e69 (diff)
downloadqt-creator-14487af86cb49428baea00d1426b25a109885b8e.tar.gz
Merge remote branch 'origin/2.2'
Conflicts: src/plugins/projectexplorer/gcctoolchain.cpp src/plugins/projectexplorer/target.cpp src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp
Diffstat (limited to 'src')
-rw-r--r--src/libs/utils/abstractprocess_win.cpp5
-rw-r--r--src/libs/utils/winutils.cpp13
-rw-r--r--src/libs/utils/winutils.h3
-rw-r--r--src/plugins/debugger/commonoptionspage.cpp24
-rw-r--r--src/plugins/debugger/debuggeractions.cpp14
-rw-r--r--src/plugins/debugger/debuggeractions.h2
-rw-r--r--src/plugins/debugger/debuggerengine.cpp9
-rw-r--r--src/plugins/debugger/debuggerrunner.cpp7
-rw-r--r--src/plugins/debugger/dumperoptionpage.ui25
-rw-r--r--src/plugins/debugger/qml/qmlcppengine.cpp2
-rw-r--r--src/plugins/debugger/qml/qmlengine.cpp6
-rw-r--r--src/plugins/projectexplorer/applicationlauncher_win.cpp5
-rw-r--r--src/plugins/projectexplorer/target.cpp2
-rw-r--r--src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp9
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp15
-rw-r--r--src/plugins/qt4projectmanager/qmakestep.cpp2
-rw-r--r--src/plugins/qt4projectmanager/qt-maemo/qt4maemotarget.h4
-rw-r--r--src/plugins/texteditor/basetexteditor.cpp1
18 files changed, 51 insertions, 97 deletions
diff --git a/src/libs/utils/abstractprocess_win.cpp b/src/libs/utils/abstractprocess_win.cpp
index 194c67e222..4bc7c08952 100644
--- a/src/libs/utils/abstractprocess_win.cpp
+++ b/src/libs/utils/abstractprocess_win.cpp
@@ -81,7 +81,10 @@ static QString quoteWinArgument(const QString &arg)
// The argument must not end with a \ since this would be interpreted
// as escaping the quote -- rather put the \ behind the quote: e.g.
// rather use "foo"\ than "foo\"
- ret.replace(QRegExp(QLatin1String("(\\\\*)$")), QLatin1String("\"\\1"));
+ int i = ret.length();
+ while (i > 0 && ret.at(i - 1) == QLatin1Char('\\'))
+ --i;
+ ret.insert(i, QLatin1Char('"'));
ret.prepend(QLatin1Char('"'));
}
return ret;
diff --git a/src/libs/utils/winutils.cpp b/src/libs/utils/winutils.cpp
index 7ed6909f2f..f19bdfefbe 100644
--- a/src/libs/utils/winutils.cpp
+++ b/src/libs/utils/winutils.cpp
@@ -163,6 +163,19 @@ QTCREATOR_UTILS_EXPORT QString getLongPathName(const QString &name)
return rc;
}
+// makes sure that capitalization of directories is canonical.
+// This mimics the logic in QDeclarative_isFileCaseCorrect
+QTCREATOR_UTILS_EXPORT QString normalizePathName(const QString &name)
+{
+ QString canonicalName = getShortPathName(name);
+ if (canonicalName.isEmpty())
+ return name;
+ canonicalName = getLongPathName(canonicalName);
+ if (canonicalName.isEmpty())
+ return name;
+ return canonicalName;
+}
+
QTCREATOR_UTILS_EXPORT unsigned long winQPidToPid(const Q_PID qpid)
{
const PROCESS_INFORMATION *processInfo = reinterpret_cast<const PROCESS_INFORMATION*>(qpid);
diff --git a/src/libs/utils/winutils.h b/src/libs/utils/winutils.h
index 92ca1f1578..caf9f9476a 100644
--- a/src/libs/utils/winutils.h
+++ b/src/libs/utils/winutils.h
@@ -59,6 +59,9 @@ QTCREATOR_UTILS_EXPORT QString getShortPathName(const QString &name);
// Returns long name
QTCREATOR_UTILS_EXPORT QString getLongPathName(const QString &name);
+// Returns long name with canonical capitalization.
+QTCREATOR_UTILS_EXPORT QString normalizePathName(const QString &name);
+
QTCREATOR_UTILS_EXPORT unsigned long winQPidToPid(const Q_PID qpid);
QTCREATOR_UTILS_EXPORT bool winIs64BitSystem();
diff --git a/src/plugins/debugger/commonoptionspage.cpp b/src/plugins/debugger/commonoptionspage.cpp
index 829b960854..603eef40c5 100644
--- a/src/plugins/debugger/commonoptionspage.cpp
+++ b/src/plugins/debugger/commonoptionspage.cpp
@@ -217,12 +217,6 @@ bool CommonOptionsPage::matches(const QString &s) const
//
///////////////////////////////////////////////////////////////////////
-static bool oxygenStyle()
-{
- const ManhattanStyle *ms = qobject_cast<const ManhattanStyle *>(qApp->style());
- return ms && !qstrcmp("OxygenStyle", ms->baseStyle()->metaObject()->className());
-}
-
QString DebuggingHelperOptionPage::id() const
{
return _("Z.DebuggingHelper");
@@ -263,28 +257,16 @@ QWidget *DebuggingHelperOptionPage::createPage(QWidget *parent)
QWidget *w = new QWidget(parent);
m_ui.setupUi(w);
- m_ui.dumperLocationChooser->setExpectedKind(Utils::PathChooser::Command);
- m_ui.dumperLocationChooser->setPromptDialogTitle(QCoreApplication::translate
- ("Debugger", "Choose DebuggingHelper Location"));
- m_ui.dumperLocationChooser->setInitialBrowsePathBackup(
- ICore::instance()->resourcePath() + "../../lib");
-
m_group.clear();
DebuggerCore *dc = debuggerCore();
m_group.insert(dc->action(UseDebuggingHelpers),
m_ui.debuggingHelperGroupBox);
- m_group.insert(dc->action(UseCustomDebuggingHelperLocation),
- m_ui.customLocationGroupBox);
- // Suppress Oxygen style's giving flat group boxes bold titles.
- if (oxygenStyle())
- m_ui.customLocationGroupBox->setStyleSheet(_("QGroupBox::title { font: ; }"));
-
- m_group.insert(dc->action(CustomDebuggingHelperLocation),
- m_ui.dumperLocationChooser);
m_group.insert(dc->action(UseCodeModel),
m_ui.checkBoxUseCodeModel);
+ m_ui.checkBoxUseCodeModel->setToolTip(dc->action(UseCodeModel)->toolTip());
+
m_group.insert(dc->action(ShowThreadNames),
m_ui.checkBoxShowThreadNames);
@@ -302,8 +284,6 @@ QWidget *DebuggingHelperOptionPage::createPage(QWidget *parent)
if (m_searchKeywords.isEmpty()) {
QTextStream(&m_searchKeywords)
<< ' ' << m_ui.debuggingHelperGroupBox->title()
- << ' ' << m_ui.customLocationGroupBox->title()
- << ' ' << m_ui.dumperLocationLabel->text()
<< ' ' << m_ui.checkBoxUseCodeModel->text()
<< ' ' << m_ui.checkBoxShowThreadNames->text();
m_searchKeywords.remove(QLatin1Char('&'));
diff --git a/src/plugins/debugger/debuggeractions.cpp b/src/plugins/debugger/debuggeractions.cpp
index f10cbb393f..134434dacb 100644
--- a/src/plugins/debugger/debuggeractions.cpp
+++ b/src/plugins/debugger/debuggeractions.cpp
@@ -266,20 +266,6 @@ DebuggerSettings::DebuggerSettings(QSettings *settings)
insertItem(UseDebuggingHelpers, item);
item = new SavedAction(this);
- item->setSettingsKey(debugModeGroup, QLatin1String("UseCustomDebuggingHelperLocation"));
- item->setCheckable(true);
- item->setDefaultValue(false);
- item->setValue(false);
- insertItem(UseCustomDebuggingHelperLocation, item);
-
- item = new SavedAction(this);
- item->setSettingsKey(debugModeGroup, QLatin1String("CustomDebuggingHelperLocation"));
- item->setCheckable(true);
- item->setDefaultValue(QString());
- item->setValue(QString());
- insertItem(CustomDebuggingHelperLocation, item);
-
- item = new SavedAction(this);
item->setSettingsKey(debugModeGroup, QLatin1String("UseCodeModel"));
item->setText(tr("Use Code Model"));
item->setToolTip(tr("Selecting this causes the C++ Code Model being asked "
diff --git a/src/plugins/debugger/debuggeractions.h b/src/plugins/debugger/debuggeractions.h
index c59e22939c..c3f5ae65f9 100644
--- a/src/plugins/debugger/debuggeractions.h
+++ b/src/plugins/debugger/debuggeractions.h
@@ -101,8 +101,6 @@ enum DebuggerActionCode
SwitchModeOnExit,
UseDebuggingHelpers,
- UseCustomDebuggingHelperLocation,
- CustomDebuggingHelperLocation,
UseCodeModel,
ShowThreadNames,
diff --git a/src/plugins/debugger/debuggerengine.cpp b/src/plugins/debugger/debuggerengine.cpp
index bccd97939a..50f7de2a62 100644
--- a/src/plugins/debugger/debuggerengine.cpp
+++ b/src/plugins/debugger/debuggerengine.cpp
@@ -633,13 +633,6 @@ bool DebuggerEngine::qtDumperLibraryEnabled() const
QStringList DebuggerEngine::qtDumperLibraryLocations() const
{
- if (debuggerCore()->action(UseCustomDebuggingHelperLocation)->value().toBool()) {
- const QString customLocation =
- debuggerCore()->action(CustomDebuggingHelperLocation)->value().toString();
- const QString location =
- tr("%1 (explicitly set in the Debugger Options)").arg(customLocation);
- return QStringList(location);
- }
return d->m_startParameters.dumperLibraryLocations;
}
@@ -650,8 +643,6 @@ void DebuggerEngine::showQtDumperLibraryWarning(const QString &details)
QString DebuggerEngine::qtDumperLibraryName() const
{
- if (debuggerCore()->action(UseCustomDebuggingHelperLocation)->value().toBool())
- return debuggerCore()->action(CustomDebuggingHelperLocation)->value().toString();
return startParameters().dumperLibrary;
}
diff --git a/src/plugins/debugger/debuggerrunner.cpp b/src/plugins/debugger/debuggerrunner.cpp
index ecce430af0..6ea4763db3 100644
--- a/src/plugins/debugger/debuggerrunner.cpp
+++ b/src/plugins/debugger/debuggerrunner.cpp
@@ -47,6 +47,7 @@
#ifdef Q_OS_WIN
# include "peutils.h"
+# include <utils/winutils.h>
#endif
#include <projectexplorer/abi.h>
@@ -686,6 +687,12 @@ static DebuggerStartParameters localStartParameters(RunConfiguration *runConfigu
sp.startMode = StartInternal;
sp.environment = rc->environment();
sp.workingDirectory = rc->workingDirectory();
+
+#if defined(Q_OS_WIN)
+ // Work around QTBUG-17529 (QtDeclarative fails with 'File name case mismatch' ...)
+ sp.workingDirectory = Utils::normalizePathName(sp.workingDirectory);
+#endif
+
sp.executable = rc->executable();
sp.processArgs = rc->commandLineArguments();
sp.toolChainAbi = rc->abi();
diff --git a/src/plugins/debugger/dumperoptionpage.ui b/src/plugins/debugger/dumperoptionpage.ui
index 3dcf247816..ff71eb9f69 100644
--- a/src/plugins/debugger/dumperoptionpage.ui
+++ b/src/plugins/debugger/dumperoptionpage.ui
@@ -51,31 +51,6 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
- <widget class="QGroupBox" name="customLocationGroupBox">
- <property name="title">
- <string>Use debugging helper from custom location</string>
- </property>
- <property name="flat">
- <bool>true</bool>
- </property>
- <property name="checkable">
- <bool>true</bool>
- </property>
- <layout class="QFormLayout" name="formLayout">
- <item row="0" column="0">
- <widget class="QLabel" name="dumperLocationLabel">
- <property name="text">
- <string>Location: </string>
- </property>
- </widget>
- </item>
- <item row="0" column="1">
- <widget class="Utils::PathChooser" name="dumperLocationChooser" native="true"/>
- </item>
- </layout>
- </widget>
- </item>
- <item>
<widget class="QCheckBox" name="checkBoxUseCodeModel">
<property name="toolTip">
<string>Makes use of Qt Creator's code model to find out if a variable has already been assigned a value at the point the debugger interrupts.</string>
diff --git a/src/plugins/debugger/qml/qmlcppengine.cpp b/src/plugins/debugger/qml/qmlcppengine.cpp
index 888a0b47d2..f0d9826a83 100644
--- a/src/plugins/debugger/qml/qmlcppengine.cpp
+++ b/src/plugins/debugger/qml/qmlcppengine.cpp
@@ -668,7 +668,7 @@ void QmlCppEngine::handleRemoteSetupFailed(const QString &message)
void QmlCppEngine::showMessage(const QString &msg, int channel, int timeout) const
{
- if (channel == AppOutput || channel == AppError) {
+ if (channel == AppOutput || channel == AppError || channel == AppStuff) {
// message is from CppEngine, allow qml engine to process
d->m_qmlEngine->filterApplicationMessage(msg, channel);
}
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index c3f6d377ba..8a4e680b0a 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -1048,7 +1048,11 @@ QString QmlEngine::mangleFilenamePaths(const QString &filename,
QFileInfo fileInfo(filename);
if (oldBaseDir.exists() && newBaseDir.exists() && fileInfo.exists()) {
- if (fileInfo.absoluteFilePath().startsWith(oldBaseDir.canonicalPath())) {
+ Qt::CaseSensitivity caseSensitive = Qt::CaseSensitive;
+#ifdef Q_OS_WIN
+ caseSensitive = Qt::CaseInsensitive;
+#endif
+ if (fileInfo.absoluteFilePath().startsWith(oldBaseDir.canonicalPath(), caseSensitive)) {
QString fileRelativePath = fileInfo.canonicalFilePath().mid(oldBaseDir.canonicalPath().length());
QFileInfo projectFile(newBaseDir.canonicalPath() + QLatin1Char('/') + fileRelativePath);
diff --git a/src/plugins/projectexplorer/applicationlauncher_win.cpp b/src/plugins/projectexplorer/applicationlauncher_win.cpp
index 7c9364308b..2576d35235 100644
--- a/src/plugins/projectexplorer/applicationlauncher_win.cpp
+++ b/src/plugins/projectexplorer/applicationlauncher_win.cpp
@@ -71,10 +71,7 @@ ApplicationLauncher::~ApplicationLauncher()
void ApplicationLauncher::setWorkingDirectory(const QString &dir)
{
// Work around QTBUG-17529 (QtDeclarative fails with 'File name case mismatch' ...)
- QString fixedPath = dir;
- const QString longPath = Utils::getLongPathName(dir);
- if (!longPath.isEmpty())
- fixedPath = longPath;
+ const QString fixedPath = Utils::normalizePathName(dir);
d->m_winGuiProcess.setWorkingDirectory(fixedPath);
d->m_consoleProcess.setWorkingDirectory(fixedPath);
diff --git a/src/plugins/projectexplorer/target.cpp b/src/plugins/projectexplorer/target.cpp
index c1b87cc94a..35f81dc8b0 100644
--- a/src/plugins/projectexplorer/target.cpp
+++ b/src/plugins/projectexplorer/target.cpp
@@ -505,8 +505,6 @@ bool Target::fromMap(const QVariantMap &map)
if (i == activeConfiguration)
setActiveDeployConfiguration(dc);
}
- if (deployConfigurations().isEmpty() && d->deployFactories().isEmpty())
- return false;
int rcCount = map.value(QLatin1String(RC_COUNT_KEY), 0).toInt(&ok);
if (!ok || rcCount < 0)
diff --git a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
index 43849c096d..3d256b697a 100644
--- a/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
+++ b/src/plugins/qmldesigner/designercore/instances/nodeinstanceserver.cpp
@@ -865,6 +865,11 @@ InformationChangedCommand NodeInstanceServer::createAllInformationChangedCommand
return InformationChangedCommand(informationVector);
}
+static bool supportedVariantType(QVariant::Type type)
+{
+ return type < QVariant::UserType && type != QVariant::Icon;
+}
+
ValuesChangedCommand NodeInstanceServer::createValuesChangedCommand(const QList<ServerNodeInstance> &instanceList) const
{
QVector<PropertyValueContainer> valueVector;
@@ -872,7 +877,7 @@ ValuesChangedCommand NodeInstanceServer::createValuesChangedCommand(const QList<
foreach(const ServerNodeInstance &instance, instanceList) {
foreach(const QString &propertyName, instance.propertyNames()) {
QVariant propertyValue = instance.property(propertyName);
- if (propertyValue.type() < QVariant::UserType)
+ if (supportedVariantType(propertyValue.type()))
valueVector.append(PropertyValueContainer(instance.instanceId(), propertyName, propertyValue, QString()));
}
}
@@ -901,7 +906,7 @@ ValuesChangedCommand NodeInstanceServer::createValuesChangedCommand(const QVecto
if( instance.isValid()) {
QVariant propertyValue = instance.property(propertyName);
- if (propertyValue.type() < QVariant::UserType)
+ if (supportedVariantType(propertyValue.type()))
valueVector.append(PropertyValueContainer(instance.instanceId(), propertyName, propertyValue, QString()));
}
}
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
index 6f7da331ce..63150230e4 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
@@ -45,7 +45,7 @@
#include <qt4projectmanager/qtoutputformatter.h>
#include <qt4projectmanager/qt4projectmanagerconstants.h>
-#ifdef Q_OS_WIN32
+#ifdef Q_OS_WIN
#include <utils/winutils.h>
#endif
@@ -180,20 +180,13 @@ void QmlProjectRunConfiguration::setQtVersionId(int id)
}
/* QtDeclarative checks explicitly that the capitalization for any URL / path
- is exactly like the capitalization on disk. This method is uses the same
- native Windows API's to get the exact canonical path. */
+ is exactly like the capitalization on disk.*/
QString QmlProjectRunConfiguration::canonicalCapsPath(const QString &fileName)
{
QString canonicalPath = QFileInfo(fileName).canonicalFilePath();
-#if defined(Q_OS_WIN32)
- // don't know whether the shortpath step is really needed,
- // but we do this in QtDeclarative too.
- QString path = Utils::getShortPathName(canonicalPath);
- if (!path.isEmpty())
- path = Utils::getLongPathName(canonicalPath);
- if (!path.isEmpty())
- canonicalPath = path;
+#if defined(Q_OS_WIN)
+ canonicalPath = Utils::normalizePathName(canonicalPath);
#endif
return canonicalPath;
diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index d2763af08e..c59b4a62bd 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -620,7 +620,7 @@ void QMakeStepConfigWidget::updateQmlDebuggingWarningsLabel()
if (m_step->linkQmlDebuggingLibrary()) {
if (m_step->isQmlDebuggingLibrarySupported()) {
- m_ui.qmlDebuggingWarningText->setText("Might make your application vulnerable. Only use in a safe environment!");
+ m_ui.qmlDebuggingWarningText->setText(tr("Might make the application vulnerable. Use only in a safe environment."));
}
}
diff --git a/src/plugins/qt4projectmanager/qt-maemo/qt4maemotarget.h b/src/plugins/qt4projectmanager/qt-maemo/qt4maemotarget.h
index 62c97cb2c4..c676ee0587 100644
--- a/src/plugins/qt4projectmanager/qt-maemo/qt4maemotarget.h
+++ b/src/plugins/qt4projectmanager/qt-maemo/qt4maemotarget.h
@@ -196,7 +196,7 @@ public:
virtual bool allowsRemoteMounts() const { return false; }
virtual bool allowsPackagingDisabling() const { return false; }
- virtual bool allowsQmlDebugging() const { return true; }
+ virtual bool allowsQmlDebugging() const { return false; }
virtual QString projectVersion(QString *error = 0) const;
virtual QString packageName() const;
@@ -258,7 +258,7 @@ public:
virtual bool allowsRemoteMounts() const { return false; }
virtual bool allowsPackagingDisabling() const { return false; }
- virtual bool allowsQmlDebugging() const { return true; }
+ virtual bool allowsQmlDebugging() const { return false; }
static QString defaultDisplayName();
diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp
index b6117a8919..2ee537db6a 100644
--- a/src/plugins/texteditor/basetexteditor.cpp
+++ b/src/plugins/texteditor/basetexteditor.cpp
@@ -4276,6 +4276,7 @@ void BaseTextEditorWidget::extraAreaMouseEvent(QMouseEvent *e)
if (!contextMenu->isEmpty())
contextMenu->exec(e->globalPos());
delete contextMenu;
+ e->accept();
}
} else if (d->extraAreaSelectionAnchorBlockNumber >= 0) {
QTextCursor selection = cursor;