diff --git a/share/qtcreator/qmldesigner/propertyeditor/Qt/Extended.qml b/share/qtcreator/qmldesigner/propertyeditor/Qt/Extended.qml index ad568ffd0ae1ee180a53122b038e3063f5a04b7d..fc12c8a7ba99a63145c690e69457c420e225035a 100644 --- a/share/qtcreator/qmldesigner/propertyeditor/Qt/Extended.qml +++ b/share/qtcreator/qmldesigner/propertyeditor/Qt/Extended.qml @@ -11,8 +11,8 @@ layout: QVBoxLayout { leftMargin: 10; rightMargin: 10; - property var effect: backendValues == null || backendValues.effect === undefined ? null : backendValues.effect - property var complexNode : effect === null ? null : effect.complexNode + property var effect: backendValues.effect + property var complexNode: effect.complexNode QWidget { maximumHeight: 40; @@ -23,7 +23,7 @@ layout: QVBoxLayout { } QComboBox { enabled: isBaseState; - property var type: complexNode == null ? null : complexNode.type + property var type: backendValues.effect.complexNode.type property var dirty; id: effectComboBox; items : { [ @@ -35,21 +35,29 @@ layout: QVBoxLayout { ] } onCurrentTextChanged: { + + print("currentTextChanged before dirty"); + if (dirty) //avoid recursion; return; - if (complexNode != null && complexNode.exists) - complexNode.remove(); + + print("currentTextChanged"); + + if (backendValues.effect.complexNode.exists) + backendValues.effect.complexNode.remove(); if (currentText == "None") { + print("none"); ; - } else if (complexNode != null) { - complexNode.add("Qt/" + currentText); + } else if (backendValues.effect.complexNode != null) { + print("add"); + backendValues.effect.complexNode.add("Qt/" + currentText); } } onTypeChanged: { dirty = true; - if (complexNode != null && complexNode.type != "") - currentText = complexNode.type; + if (backendValues.effect.complexNode.exists) + currentText = backendValues.effect.complexNode.type; else currentText = "None"; dirty = false; @@ -70,7 +78,7 @@ layout: QVBoxLayout { topMargin: 12; IntEditor { id: blurRadius; - backendValue: properties == null ? null : properties.blurRadius; + backendValue: backendValues.effect.complexNode.exists ? backendValues.effect.complexNode.properties.blurRadius : 0; caption: "Blur Radius:" baseStateFlag: isBaseState; @@ -87,7 +95,7 @@ layout: QVBoxLayout { DoubleSpinBox { id: OpcacityEffectSpinBox; objectName: "OpcacityEffectSpinBox"; - backendValue: properties == null ? null : properties.opacity; + backendValue: backendValues.effect.complexNode.exists ? backendValues.effect.complexNode.properties.opacity : 0; minimum: 0; maximum: 1; singleStep: 0.1; @@ -122,7 +130,7 @@ layout: QVBoxLayout { topMargin: 12; IntEditor { id: pixelSize; - backendValue: properties == null ? null : properties.pixelSize; + backendValue: backendValues.effect.complexNode.exists ? backendValues.effect.complexNode.properties.pixelSize : 0; caption: "Pixel Size:" baseStateFlag: isBaseState; @@ -140,7 +148,7 @@ layout: QVBoxLayout { topMargin: 12; IntEditor { id: blurRadiusShadow; - backendValue: properties == null ? null : properties.blurRadius; + backendValue: backendValues.effect.complexNode.exists ? backendValues.effect.complexNode.properties.blurRadius : 0 caption: "Blur Radius:" baseStateFlag: isBaseState; @@ -164,7 +172,7 @@ layout: QVBoxLayout { IntEditor { id: xOffset; - backendValue: properties == null ? 0 : properties.xOffset; + backendValue: backendValues.effect.complexNode.exists ? backendValues.effect.complexNode.properties.xOffset : 0 caption: "x Offset: " baseStateFlag: isBaseState; @@ -175,7 +183,7 @@ layout: QVBoxLayout { IntEditor { id: yOffset; - backendValue: properties == null ? 0 : properties.yOffset; + backendValue: backendValues.effect.complexNode.exists ? backendValues.effect.complexNode.properties.yOffset : 0 caption: "y Offset: " baseStateFlag: isBaseState; diff --git a/src/plugins/qmldesigner/components/resources/scrollbar.css b/src/plugins/qmldesigner/components/resources/scrollbar.css index a540b67b71faec0108367568600f844997e28624..e4f8ac89c2c7c103c6db9102b1080b43521f569e 100644 --- a/src/plugins/qmldesigner/components/resources/scrollbar.css +++ b/src/plugins/qmldesigner/components/resources/scrollbar.css @@ -6,10 +6,9 @@ } QScrollBar::handle:vertical { - background: qlineargradient(x1: 0, y1: 0, x2: 0.5, y2: 0, x3: 0.8, y3: 0, + background: qlineargradient(x1: 0, y1: 0, x2: 0.5, y2: 0 stop: 0 #cEcEcE, - stop: 1 #8E8E8E, - stop: 2 #101010); + stop: 1 #8E8E8E); min-height: 20px; border-radius: 10px; } diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp index 66250b050774b150e858b54ede6006872d6e0d53..c8760ae93ae7a6136488904ebcd5468615ba4a2c 100644 --- a/src/plugins/qt4projectmanager/qmakestep.cpp +++ b/src/plugins/qt4projectmanager/qmakestep.cpp @@ -210,8 +210,13 @@ bool QMakeStep::processFinished(int exitCode, QProcess::ExitStatus status) void QMakeStep::setUserArguments(const QStringList &arguments) { + if (m_userArgs == arguments) + return; m_userArgs = arguments; + emit userArgumentsChanged(); + + qt4BuildConfiguration()->emitQMakeBuildConfigurationChanged(); } QStringList QMakeStep::userArguments() diff --git a/src/plugins/qt4projectmanager/qt-maemo/maemosshconnection.cpp b/src/plugins/qt4projectmanager/qt-maemo/maemosshconnection.cpp index 1ad9d2b8681252fd19b6420cccd8db37e16d9e18..3b7151f1e9cea34eecd5e64e25ee82f218cefddb 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/maemosshconnection.cpp +++ b/src/plugins/qt4projectmanager/qt-maemo/maemosshconnection.cpp @@ -132,9 +132,11 @@ void MaemoInteractiveSshConnection::runCommand(const QString &command) const char * const error = lastError(); if (error) throw MaemoSshException(tr("SSH error: %1").arg(error)); - const char * output = ssh.readAndReset(channel(), alloc); + const char * const output = ssh.readAndReset(channel(), alloc); if (output) { emit remoteOutput(QString::fromUtf8(output)); + if (!done) + done = strstr(output, m_prompt) != 0; delete[] output; } } while (!done && !stopRequested()); diff --git a/src/plugins/qt4projectmanager/qt-maemo/qt-maemo.pri b/src/plugins/qt4projectmanager/qt-maemo/qt-maemo.pri index 13fb853cf1ced270e0d5252513aa354f0293af81..6b2db8cfc52b1ce62ba810e8cfaed5005f72d6ad 100644 --- a/src/plugins/qt4projectmanager/qt-maemo/qt-maemo.pri +++ b/src/plugins/qt4projectmanager/qt-maemo/qt-maemo.pri @@ -6,7 +6,6 @@ SUPPORT_QT_MAEMO = $$(QTCREATOR_WITH_MAEMO) # INCLUDEPATH += $$PWD/../../../libs/3rdparty/net7ssh/src # INCLUDEPATH += $$PWD/../../../libs/3rdparty/botan/build # LIBS += -l$$qtLibraryTarget(Net7ssh) -l$$qtLibraryTarget(Botan) - HEADERS += $$PWD/maemorunconfiguration.h \ $$PWD/maemomanager.h \ $$PWD/maemotoolchain.h \ diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp index bc44dc52fea50955935c4e5e97727d9697a15169..fa86f4bab4326cb8047bcd1fb7cc5f66ae08936f 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp @@ -316,6 +316,11 @@ void Qt4BuildConfiguration::setQMakeBuildConfiguration(QtVersion::QmakeBuildConf emit targetInformationChanged(); } +void Qt4BuildConfiguration::emitQMakeBuildConfigurationChanged() +{ + emit qmakeBuildConfigurationChanged(); +} + void Qt4BuildConfiguration::getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const { QtVersion::QmakeBuildConfigs defaultBuildConfiguration = qtVersion()->defaultBuildConfig(); diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.h b/src/plugins/qt4projectmanager/qt4buildconfiguration.h index 146195f783f6b09ca4747d68e98b7d4a6dc5365e..1c6512899750792d2528e01961c544492300bf9d 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.h +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.h @@ -90,6 +90,9 @@ public: QtVersion::QmakeBuildConfigs qmakeBuildConfiguration() const; void setQMakeBuildConfiguration(QtVersion::QmakeBuildConfigs config); + // used by qmake step to notify that the qmake args have changed + // not really nice + void emitQMakeBuildConfigurationChanged(); void getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const; // Those functions are used in a few places.