summaryrefslogtreecommitdiff
path: root/src/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/bineditor/bineditor.cpp4
-rw-r--r--src/plugins/debugger/qml/qmlengine.cpp3
-rw-r--r--src/plugins/qmldesigner/customstyleplugin/plugindestdir.pri2
-rw-r--r--src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp4
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp2
-rw-r--r--src/plugins/qt4projectmanager/qmakestep.cpp2
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp39
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h6
-rw-r--r--src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp6
-rw-r--r--src/plugins/qt4projectmanager/qt4buildconfiguration.cpp5
-rw-r--r--src/plugins/qt4projectmanager/qt4projectmanager.pro1
-rw-r--r--src/plugins/qt4projectmanager/qt4projectmanagerconstants.h1
-rw-r--r--src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp27
-rw-r--r--src/plugins/qt4projectmanager/wizards/abstractmobileapp.h7
-rw-r--r--src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp8
-rw-r--r--src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h3
-rw-r--r--src/plugins/qt4projectmanager/wizards/mobileappwizardharmattanoptionspage.ui95
-rw-r--r--src/plugins/qt4projectmanager/wizards/mobileappwizardmaemooptionspage.ui2
-rw-r--r--src/plugins/qt4projectmanager/wizards/mobileappwizardpages.cpp150
-rw-r--r--src/plugins/qt4projectmanager/wizards/mobileappwizardpages.h24
-rw-r--r--src/plugins/qt4projectmanager/wizards/qtquickapp.cpp14
-rw-r--r--src/plugins/remotelinux/maemopackagecreationwidget.cpp13
-rw-r--r--src/plugins/remotelinux/qt4maemotarget.cpp91
-rw-r--r--src/plugins/remotelinux/remotelinuxruncontrol.cpp5
24 files changed, 398 insertions, 116 deletions
diff --git a/src/plugins/bineditor/bineditor.cpp b/src/plugins/bineditor/bineditor.cpp
index a8a04e24a6..e2dd621fc9 100644
--- a/src/plugins/bineditor/bineditor.cpp
+++ b/src/plugins/bineditor/bineditor.cpp
@@ -945,8 +945,8 @@ void BinEditor::setCursorPosition(int pos, MoveMode moveMode)
hasSelection = m_anchorPosition != m_cursorPosition;
updateLines(hasSelection ? oldCursorPosition : m_cursorPosition, m_cursorPosition);
ensureCursorVisible();
- if (hasSelection != (m_anchorPosition != m_anchorPosition))
- emit copyAvailable(m_anchorPosition != m_cursorPosition);
+ if (hasSelection)
+ emit copyAvailable(hasSelection);
emit cursorPositionChanged(m_cursorPosition);
}
diff --git a/src/plugins/debugger/qml/qmlengine.cpp b/src/plugins/debugger/qml/qmlengine.cpp
index 6ec45a45c8..e2e0886130 100644
--- a/src/plugins/debugger/qml/qmlengine.cpp
+++ b/src/plugins/debugger/qml/qmlengine.cpp
@@ -164,10 +164,9 @@ void QmlEngine::setupInferior()
QTC_ASSERT(state() == InferiorSetupRequested, qDebug() << state());
if (startParameters().startMode == AttachToRemote) {
+ emit requestRemoteSetup();
if (startParameters().qmlServerPort != quint16(-1))
notifyInferiorSetupOk();
- else
- emit requestRemoteSetup();
} else {
d->m_applicationLauncher.setEnvironment(startParameters().environment);
d->m_applicationLauncher.setWorkingDirectory(startParameters().workingDirectory);
diff --git a/src/plugins/qmldesigner/customstyleplugin/plugindestdir.pri b/src/plugins/qmldesigner/customstyleplugin/plugindestdir.pri
index 24f0c19b72..4975d9e153 100644
--- a/src/plugins/qmldesigner/customstyleplugin/plugindestdir.pri
+++ b/src/plugins/qmldesigner/customstyleplugin/plugindestdir.pri
@@ -1,5 +1,5 @@
macx {
DESTDIR = $$IDE_LIBRARY_PATH/QmlDesigner
} else {
- DESTDIR = $$IDE_BUILD_TREE/lib/qmldesigner
+ DESTDIR = $$IDE_BUILD_TREE/$${IDE_LIBRARY_BASENAME}/qmldesigner
}
diff --git a/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp b/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp
index 0333b5e4fc..3ae4815cc2 100644
--- a/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp
+++ b/src/plugins/qmldesigner/designercore/model/modelnodecontextmenu.cpp
@@ -71,7 +71,7 @@ static inline bool checkIfNodeIsAView(const ModelNode &node)
static inline bool isItem(const ModelNode &node)
{
- return node.metaInfo().isValid() && node.metaInfo().isSubclassOf("QtQuick.Item", -1, -1);
+ return node.isValid() && node.metaInfo().isValid() && node.metaInfo().isSubclassOf("QtQuick.Item", -1, -1);
}
static inline QList<QmlItemNode> siblingsForNode(const QmlItemNode &itemNode)
@@ -251,7 +251,7 @@ void ModelNodeContextMenu::execute(const QPoint &pos, bool selectionMenuBool)
editMenu->addAction(action);
action = createModelNodeAction(tr("Visibility"), editMenu, QList<ModelNode>() << currentSingleNode, ModelNodeAction::ModelNodeVisibility, singleSelected);
editMenu->addAction(action);
- if (!isItem(currentSingleNode))
+ if (singleSelected && !isItem(currentSingleNode))
action->setDisabled(true);
} else {
diff --git a/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp b/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
index 01aadc0671..8a0f8ce8e7 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectruncontrol.cpp
@@ -216,6 +216,8 @@ RunControl *QmlProjectRunControlFactory::createDebugRunControl(QmlProjectRunConf
params.displayName = runConfig->displayName();
params.projectSourceDirectory = runConfig->target()->project()->projectDirectory();
params.projectSourceFiles = runConfig->target()->project()->files(Project::ExcludeGeneratedFiles);
+ if (!runConfig->qtVersion()->qtAbis().isEmpty())
+ params.toolChainAbi = runConfig->qtVersion()->qtAbis().first();
// Makes sure that all bindings go through the JavaScript engine, so that
// breakpoints are actually hit!
diff --git a/src/plugins/qt4projectmanager/qmakestep.cpp b/src/plugins/qt4projectmanager/qmakestep.cpp
index 02dca1d90c..abecb0d5cb 100644
--- a/src/plugins/qt4projectmanager/qmakestep.cpp
+++ b/src/plugins/qt4projectmanager/qmakestep.cpp
@@ -180,7 +180,7 @@ QStringList QMakeStep::moreArguments()
if (!bc->qtVersion()->needsQmlDebuggingLibrary()) {
// This Qt version has the QML debugging services built in, however
// they still need to be enabled at compile time
- arguments << QLatin1String("CONFIG+=declarative_debug");
+ arguments << QLatin1String(Constants::QMAKEVAR_DECLARATIVE_DEBUG);
} else {
QString qmlDebuggingHelperLibrary = bc->qtVersion()->qmlDebuggingHelperLibrary(true);
if (!qmlDebuggingHelperLibrary.isEmpty()) {
diff --git a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp
index 39f7ee0a85..11ac93ecde 100644
--- a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp
@@ -70,7 +70,6 @@ CodaRunControl::CodaRunControl(RunConfiguration *runConfiguration, const QString
S60RunControlBase(runConfiguration, mode),
m_port(0),
m_state(StateUninit),
- m_codaFlags(0),
m_stopAfterConnect(false)
{
const S60DeviceRunConfiguration *s60runConfig = qobject_cast<S60DeviceRunConfiguration *>(runConfiguration);
@@ -167,7 +166,7 @@ void CodaRunControl::doStop()
case StateProcessRunning:
QTC_ASSERT(!m_runningProcessId.isEmpty(), return);
m_codaDevice->sendRunControlTerminateCommand(CodaCallback(),
- m_runningProcessId.toAscii());
+ m_runningProcessId.toAscii());
break;
default:
if (debug)
@@ -226,10 +225,7 @@ void CodaRunControl::slotCodaEvent(const CodaEvent &event)
void CodaRunControl::initCommunication()
{
- if (m_codaFlags & OptionsUseDebugSession)
- m_codaDevice->sendDebugSessionControlSessionStartCommand(CodaCallback(this, &CodaRunControl::handleDebugSessionStarted));
- else
- m_codaDevice->sendLoggingAddListenerCommand(CodaCallback(this, &CodaRunControl::handleAddListener));
+ m_codaDevice->sendDebugSessionControlSessionStartCommand(CodaCallback(this, &CodaRunControl::handleDebugSessionStarted));
}
void CodaRunControl::handleConnected(const CodaEvent &event)
@@ -241,8 +237,6 @@ void CodaRunControl::handleConnected(const CodaEvent &event)
setProgress(maxProgress()*0.80);
m_codaServices = static_cast<const CodaLocatorHelloEvent &>(event).services();
- if (m_codaServices.contains(QLatin1String("DebugSessionControl")))
- m_codaFlags |= OptionsUseDebugSession;
emit connected();
if (!m_stopAfterConnect)
@@ -255,11 +249,7 @@ void CodaRunControl::handleContextRemoved(const CodaEvent &event)
= static_cast<const CodaRunControlContextRemovedEvent &>(event).ids();
if (!m_runningProcessId.isEmpty()
&& removedItems.contains(m_runningProcessId.toAscii())) {
- appendMessage(tr("Process has finished.\n"), Utils::NormalMessageFormat);
- if (m_codaFlags & OptionsUseDebugSession)
- m_codaDevice->sendDebugSessionControlSessionEndCommand(CodaCallback(this, &CodaRunControl::handleDebugSessionEnded));
- else
- finishRunControl();
+ m_codaDevice->sendDebugSessionControlSessionEndCommand(CodaCallback(this, &CodaRunControl::handleDebugSessionEnded));
}
}
@@ -331,6 +321,10 @@ void CodaRunControl::handleAddListener(const CodaCommandResult &result)
void CodaRunControl::handleDebugSessionStarted(const CodaCommandResult &result)
{
Q_UNUSED(result)
+ if (m_codaDevice.isNull()) {
+ finishRunControl();
+ return;
+ }
m_state = StateDebugSessionStarted;
m_codaDevice->sendLoggingAddListenerCommand(CodaCallback(this, &CodaRunControl::handleAddListener));
}
@@ -355,7 +349,7 @@ void CodaRunControl::handleFindProcesses(const CodaCommandResult &result)
executableUid(),
commandLineArguments().split(' '),
QString(),
- !(m_codaFlags & OptionsUseDebugSession));
+ true);
appendMessage(tr("Launching: %1\n").arg(executableName()), Utils::NormalMessageFormat);
}
}
@@ -365,17 +359,14 @@ void CodaRunControl::handleCreateProcess(const CodaCommandResult &result)
const bool ok = result.type == CodaCommandResult::SuccessReply;
bool processCreated = false;
if (ok) {
- if (m_codaFlags & OptionsUseDebugSession) {
- if (result.values.size()) {
- Json::JsonValue id = result.values.at(0).findChild("ID");
- if (id.isValid()) {
- m_state = StateProcessRunning;
- m_runningProcessId = id.data();
- processCreated = true;
- }
+ if (result.values.size()) {
+ Json::JsonValue id = result.values.at(0).findChild("ID");
+ if (id.isValid()) {
+ m_state = StateProcessRunning;
+ m_runningProcessId = id.data();
+ processCreated = true;
}
- } else // If no DebugSession is present the process will already be created by now
- processCreated = true;
+ }
}
if (processCreated) {
setProgress(maxProgress());
diff --git a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h
index ccbb7701e2..584897c6e6 100644
--- a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h
+++ b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.h
@@ -116,11 +116,6 @@ private:
StateDebugSessionEnded
};
- enum Options {
- OptionsNone = 0,
- OptionsUseDebugSession = 1
- };
-
QSharedPointer<Coda::CodaDevice> m_codaDevice;
QString m_address;
@@ -130,7 +125,6 @@ private:
QStringList m_codaServices;
State m_state;
- quint32 m_codaFlags;
bool m_stopAfterConnect;
};
diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp b/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp
index 25e94091b0..363357d6a7 100644
--- a/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp
+++ b/src/plugins/qt4projectmanager/qt-s60/s60deployconfigurationwidget.cpp
@@ -77,6 +77,7 @@ const char LAST_DRIVE_LETTER = 'Z';
static const quint32 CODA_UID = 0x20021F96;
static const quint32 QTMOBILITY_UID = 0x2002AC89;
static const quint32 QTCOMPONENTS_UID = 0x200346DE;
+static const quint32 QMLVIEWER_UID = 0x20021317;
QString formatDriveText(const S60DeployConfiguration::DeviceDrive &drive)
{
@@ -597,6 +598,7 @@ void S60DeployConfigurationWidget::getRomInfoResult(const Coda::CodaCommandResul
packagesOfInterest.append(CODA_UID);
packagesOfInterest.append(QTMOBILITY_UID);
packagesOfInterest.append(QTCOMPONENTS_UID);
+ packagesOfInterest.append(QMLVIEWER_UID);
if (m_codaInfoDevice)
m_codaInfoDevice->sendSymbianInstallGetPackageInfoCommand(Coda::CodaCallback(this, &S60DeployConfigurationWidget::getInstalledPackagesResult), packagesOfInterest);
}
@@ -642,6 +644,10 @@ void S60DeployConfigurationWidget::getInstalledPackagesResult(const Coda::CodaCo
addToTable(str, tr("Qt Quick components version: "), error ? tr("Not installed") : versionString);
}
break;
+ case QMLVIEWER_UID: {
+ addToTable(str, tr("QML Viewer version: "), error ? tr("Not installed") : versionString);
+ }
+ break;
default: break;
}
}
diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
index 39833e6ee4..96dc194795 100644
--- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
+++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp
@@ -535,8 +535,9 @@ bool Qt4BuildConfiguration::removeQMLInspectorFromArguments(QString *args)
{
bool removedArgument = false;
for (Utils::QtcProcess::ArgIterator ait(args); ait.next(); ) {
- if (ait.value().contains(QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH))) {
- ait.deleteArg();
+ const QString arg = ait.value();
+ if (arg.contains(QLatin1String(Constants::QMAKEVAR_QMLJSDEBUGGER_PATH))
+ || arg.contains(Constants::QMAKEVAR_DECLARATIVE_DEBUG)) {
removedArgument = true;
}
}
diff --git a/src/plugins/qt4projectmanager/qt4projectmanager.pro b/src/plugins/qt4projectmanager/qt4projectmanager.pro
index 5452bf28be..81410e78fb 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanager.pro
+++ b/src/plugins/qt4projectmanager/qt4projectmanager.pro
@@ -137,6 +137,7 @@ FORMS += makestep.ui \
wizards/mobileappwizardgenericoptionspage.ui \
wizards/mobileappwizardsymbianoptionspage.ui \
wizards/mobileappwizardmaemooptionspage.ui \
+ wizards/mobileappwizardharmattanoptionspage.ui \
wizards/qtquickcomponentsetoptionspage.ui
RESOURCES += qt4projectmanager.qrc \
diff --git a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
index f3a21193b1..35c8ca0ced 100644
--- a/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
+++ b/src/plugins/qt4projectmanager/qt4projectmanagerconstants.h
@@ -115,6 +115,7 @@ const char * const ICON_HTML5_APP = ":/wizards/images/html5app.png";
// Env variables
const char * const QMAKEVAR_QMLJSDEBUGGER_PATH = "QMLJSDEBUGGER_PATH";
+const char * const QMAKEVAR_DECLARATIVE_DEBUG = "CONFIG+=declarative_debug";
} // namespace Constants
} // namespace Qt4ProjectManager
diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp
index d56a1275fa..8b24bae49d 100644
--- a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp
+++ b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.cpp
@@ -42,6 +42,7 @@
#endif // CREATORLESSTEST
#include <utils/fileutils.h>
+#include <utils/qtcassert.h>
namespace Qt4ProjectManager {
@@ -62,8 +63,11 @@ const QString AbstractMobileApp::FileStubVersion(QLatin1String("version"));
const int AbstractMobileApp::StubVersion = 6;
AbstractMobileApp::AbstractMobileApp()
- : m_orientation(ScreenOrientationAuto)
+ : QObject()
+ , m_canSupportMeegoBooster(false)
+ , m_orientation(ScreenOrientationAuto)
, m_networkEnabled(true)
+ , m_supportsMeegoBooster(false)
{
}
@@ -209,7 +213,10 @@ QByteArray AbstractMobileApp::generateDesktopFile(QString *errorMessage, int fil
} else if (fileType == AbstractGeneratedFileInfo::DesktopFileHarmattan) {
desktopFileContent.replace("Icon=thisApp",
"Icon=/usr/share/icons/hicolor/80x80/apps/" + projectName().toUtf8() + "80.png");
- desktopFileContent.replace("Exec=", "Exec=/usr/bin/single-instance ");
+ if (m_supportsMeegoBooster)
+ desktopFileContent.replace("Exec=", "Exec=/usr/bin/invoker --type=d -s ");
+ else
+ desktopFileContent.replace("Exec=", "Exec=/usr/bin/single-instance ");
}
return desktopFileContent.replace("thisApp", projectName().toUtf8());
}
@@ -416,6 +423,22 @@ QString AbstractMobileApp::error() const
return m_error;
}
+bool AbstractMobileApp::canSupportMeegoBooster() const
+{
+ return m_canSupportMeegoBooster;
+}
+
+bool AbstractMobileApp::supportsMeegoBooster() const
+{
+ return m_supportsMeegoBooster;
+}
+
+void AbstractMobileApp::setSupportsMeegoBooster(bool supportMeegoBooster)
+{
+ QTC_ASSERT(canSupportMeegoBooster(), return);
+ m_supportsMeegoBooster = supportMeegoBooster;
+}
+
QByteArray AbstractMobileApp::readBlob(const QString &filePath,
QString *errorMsg) const
{
diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h
index c1d5ff80de..caabba1aab 100644
--- a/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h
+++ b/src/plugins/qt4projectmanager/wizards/abstractmobileapp.h
@@ -133,6 +133,10 @@ public:
QString path(int fileType) const;
QString error() const;
+ bool canSupportMeegoBooster() const;
+ bool supportsMeegoBooster() const;
+ void setSupportsMeegoBooster(bool supportBooster);
+
#ifndef CREATORLESSTEST
virtual Core::GeneratedFiles generateFiles(QString *errorMessage) const;
#else
@@ -168,6 +172,8 @@ protected:
static const int StubVersion;
QString m_error;
+ bool m_canSupportMeegoBooster;
+
private:
QByteArray generateDesktopFile(QString *errorMessage, int fileType) const;
QByteArray generateMainCpp(QString *errorMessage) const;
@@ -194,6 +200,7 @@ private:
QString m_symbianTargetUid;
ScreenOrientation m_orientation;
bool m_networkEnabled;
+ bool m_supportsMeegoBooster;
};
} // namespace Qt4ProjectManager
diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp b/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp
index 650f6b92ba..b1c6f12187 100644
--- a/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp
+++ b/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.cpp
@@ -70,8 +70,8 @@ AbstractMobileAppWizardDialog::AbstractMobileAppWizardDialog(QWidget *parent, co
m_genericOptionsPage = new Internal::MobileAppWizardGenericOptionsPage;
m_symbianOptionsPage = new Internal::MobileAppWizardSymbianOptionsPage;
- m_maemoOptionsPage = new Internal::MobileAppWizardMaemoOptionsPage(64);
- m_harmattanOptionsPage = new Internal::MobileAppWizardMaemoOptionsPage(80);
+ m_maemoOptionsPage = new Internal::MobileAppWizardMaemoOptionsPage;
+ m_harmattanOptionsPage = new Internal::MobileAppWizardHarmattanOptionsPage;
}
void AbstractMobileAppWizardDialog::addMobilePages()
@@ -235,6 +235,7 @@ QWizard *AbstractMobileAppWizard::createWizardDialog(QWidget *parent,
wdlg->m_symbianOptionsPage->setNetworkEnabled(app()->networkEnabled());
wdlg->m_maemoOptionsPage->setPngIcon(app()->pngIcon64());
wdlg->m_harmattanOptionsPage->setPngIcon(app()->pngIcon80());
+ wdlg->m_harmattanOptionsPage->setBoosterOptionEnabled(app()->canSupportMeegoBooster());
connect(wdlg, SIGNAL(projectParametersChanged(QString, QString)),
SLOT(useProjectPath(QString, QString)));
foreach (QWizardPage *p, extensionPages)
@@ -253,6 +254,9 @@ Core::GeneratedFiles AbstractMobileAppWizard::generateFiles(const QWizard *wizar
app()->setNetworkEnabled(wdlg->m_symbianOptionsPage->networkEnabled());
app()->setPngIcon64(wdlg->m_maemoOptionsPage->pngIcon());
app()->setPngIcon80(wdlg->m_harmattanOptionsPage->pngIcon());
+ if (wdlg->isHarmattanTargetSelected())
+ app()->setSupportsMeegoBooster(wdlg->isHarmattanTargetSelected()
+ && wdlg->m_harmattanOptionsPage->supportsBooster());
prepareGenerateFiles(wizard, errorMessage);
return app()->generateFiles(errorMessage);
}
diff --git a/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h b/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h
index 3efbf1737f..f4aff8058d 100644
--- a/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h
+++ b/src/plugins/qt4projectmanager/wizards/abstractmobileappwizard.h
@@ -48,6 +48,7 @@ namespace Internal {
class MobileAppWizardGenericOptionsPage;
class MobileAppWizardSymbianOptionsPage;
class MobileAppWizardMaemoOptionsPage;
+class MobileAppWizardHarmattanOptionsPage;
}
/// \internal
@@ -81,7 +82,7 @@ private:
Internal::MobileAppWizardGenericOptionsPage *m_genericOptionsPage;
Internal::MobileAppWizardSymbianOptionsPage *m_symbianOptionsPage;
Internal::MobileAppWizardMaemoOptionsPage *m_maemoOptionsPage;
- Internal::MobileAppWizardMaemoOptionsPage *m_harmattanOptionsPage;
+ Internal::MobileAppWizardHarmattanOptionsPage *m_harmattanOptionsPage;
TargetSetupPage *m_targetsPage;
int m_genericOptionsPageId;
diff --git a/src/plugins/qt4projectmanager/wizards/mobileappwizardharmattanoptionspage.ui b/src/plugins/qt4projectmanager/wizards/mobileappwizardharmattanoptionspage.ui
new file mode 100644
index 0000000000..7354c26ecc
--- /dev/null
+++ b/src/plugins/qt4projectmanager/wizards/mobileappwizardharmattanoptionspage.ui
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>MobileAppWizardHarmattanOptionsPage</class>
+ <widget class="QWizardPage" name="MobileAppWizardHarmattanOptionsPage">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>WizardPage</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QLabel" name="appIconLabel">
+ <property name="text">
+ <string>Application icon (80x80):</string>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="1">
+ <widget class="QToolButton" name="pngIconButton">
+ <property name="minimumSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="iconSize">
+ <size>
+ <width>64</width>
+ <height>64</height>
+ </size>
+ </property>
+ </widget>
+ </item>
+ <item row="1" column="0" colspan="2">
+ <widget class="QCheckBox" name="makeBoostableCheckBox">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="toolTip">
+ <string>Generate code to speed up the launching on the device.</string>
+ </property>
+ <property name="text">
+ <string>Make application boostable</string>
+ </property>
+ <property name="checked">
+ <bool>true</bool>
+ </property>
+ </widget>
+ </item>
+ <item row="0" column="2">
+ <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>
+ <item row="2" column="1">
+ <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>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/src/plugins/qt4projectmanager/wizards/mobileappwizardmaemooptionspage.ui b/src/plugins/qt4projectmanager/wizards/mobileappwizardmaemooptionspage.ui
index c21869d7cc..20f1f979d2 100644
--- a/src/plugins/qt4projectmanager/wizards/mobileappwizardmaemooptionspage.ui
+++ b/src/plugins/qt4projectmanager/wizards/mobileappwizardmaemooptionspage.ui
@@ -17,7 +17,7 @@
<item row="0" column="0">
<widget class="QLabel" name="appIconLabel">
<property name="text">
- <string>Application icon (%%w%%x%%h%%):</string>
+ <string>Application icon (64x64):</string>
</property>
</widget>
</item>
diff --git a/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.cpp b/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.cpp
index 3e400c03d9..ec2721413d 100644
--- a/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.cpp
+++ b/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.cpp
@@ -33,6 +33,7 @@
#include "mobileappwizardpages.h"
#include "ui_mobileappwizardgenericoptionspage.h"
#include "ui_mobileappwizardmaemooptionspage.h"
+#include "ui_mobileappwizardharmattanoptionspage.h"
#include "ui_mobileappwizardsymbianoptionspage.h"
#include <coreplugin/coreconstants.h>
#include <utils/fileutils.h>
@@ -67,6 +68,14 @@ class MobileAppWizardMaemoOptionsPagePrivate
friend class MobileAppWizardMaemoOptionsPage;
};
+class MobileAppWizardHarmattanOptionsPagePrivate
+{
+ Ui::MobileAppWizardHarmattanOptionsPage ui;
+ QSize iconSize;
+ QString pngIcon;
+ friend class MobileAppWizardHarmattanOptionsPage;
+};
+
MobileAppWizardGenericOptionsPage::MobileAppWizardGenericOptionsPage(QWidget *parent)
: QWizardPage(parent)
, m_d(new MobileAppWizardGenericOptionsPagePrivate)
@@ -167,18 +176,12 @@ void MobileAppWizardSymbianOptionsPage::openSvgIcon()
setSvgIcon(svgIcon);
}
-
-MobileAppWizardMaemoOptionsPage::MobileAppWizardMaemoOptionsPage(int appIconSize,
- QWidget *parent)
+MobileAppWizardMaemoOptionsPage::MobileAppWizardMaemoOptionsPage(QWidget *parent)
: QWizardPage(parent)
, m_d(new MobileAppWizardMaemoOptionsPagePrivate)
{
m_d->ui.setupUi(this);
- QString iconLabelText = m_d->ui.appIconLabel->text();
- iconLabelText.replace(QLatin1String("%%w%%"), QString::number(appIconSize));
- iconLabelText.replace(QLatin1String("%%h%%"), QString::number(appIconSize));
- m_d->ui.appIconLabel->setText(iconLabelText);
- m_d->iconSize = QSize(appIconSize, appIconSize);
+ m_d->iconSize = QSize(64, 64);
m_d->ui.pngIconButton->setIconSize(m_d->iconSize);
connect(m_d->ui.pngIconButton, SIGNAL(clicked()), this, SLOT(openPngIcon()));
}
@@ -193,42 +196,66 @@ QString MobileAppWizardMaemoOptionsPage::pngIcon() const
return m_d->pngIcon;
}
-void MobileAppWizardMaemoOptionsPage::setPngIcon(const QString &icon)
+
+class PngIconScaler : public QObject
{
- QString error;
- QPixmap iconPixmap(icon);
- if (iconPixmap.isNull()) {
- QMessageBox::critical(this, tr("Invalid Icon"),
- tr("The file is not a valid image."));
- return;
+ Q_OBJECT
+public:
+ PngIconScaler(const QSize &expectedSize, const QString &iconPath)
+ : m_expectedSize(expectedSize)
+ , m_iconPath(iconPath)
+ , m_pixmap(iconPath)
+ {
}
- QString actualIconPath;
- if (iconPixmap.size() == m_d->iconSize) {
- actualIconPath = icon;
- } else {
- const QMessageBox::StandardButton button = QMessageBox::warning(this,
- tr("Wrong Icon Size"), tr("The icon needs to be %1x%2 pixels big, "
- "but is not. Do you want Creator to scale it?")
- .arg(m_d->iconSize.width()).arg(m_d->iconSize.height()),
- QMessageBox::Ok | QMessageBox::Cancel);
+ bool hasRightSize() const { return m_expectedSize == m_pixmap.size(); }
+ QPixmap pixmap() const { return m_pixmap; }
+
+ bool scale(QString *newPath) {
+ const QMessageBox::StandardButton button
+ = QMessageBox::warning(QApplication::activeWindow(),
+ tr("Wrong Icon Size"),
+ tr("The icon needs to be %1x%2 pixels big, "
+ "but is not. Do you want Qt Creator to scale it?")
+ .arg(m_expectedSize.width()).arg(m_expectedSize.height()),
+ QMessageBox::Ok | QMessageBox::Cancel);
if (button != QMessageBox::Ok)
- return;
- iconPixmap = iconPixmap.scaled(m_d->iconSize);
+ return false;
+
+ m_pixmap = m_pixmap.scaled(m_expectedSize);
Utils::TempFileSaver saver;
saver.setAutoRemove(false);
if (!saver.hasError())
- saver.setResult(iconPixmap.save(
- saver.file(), QFileInfo(icon).suffix().toAscii().constData()));
+ saver.setResult(m_pixmap.save(
+ saver.file(), QFileInfo(m_iconPath).suffix().toAscii().constData()));
if (!saver.finalize()) {
- QMessageBox::critical(this, tr("File Error"),
- tr("Could not copy icon file: %1").arg(saver.errorString()));
- return;
+ QMessageBox::critical(QApplication::activeWindow(),
+ tr("File Error"),
+ tr("Could not copy icon file: %1").arg(saver.errorString()));
+ return false;
}
- actualIconPath = saver.fileName();
+ *newPath = saver.fileName();
+ return true;
}
+private:
+ QSize m_expectedSize;
+ QString m_iconPath;
+ QPixmap m_pixmap;
+};
- m_d->ui.pngIconButton->setIcon(iconPixmap);
+
+void MobileAppWizardMaemoOptionsPage::setPngIcon(const QString &icon)
+{
+ QString actualIconPath;
+ PngIconScaler scaler(m_d->iconSize, icon);
+ if (scaler.hasRightSize()) {
+ actualIconPath = icon;
+ } else {
+ if (!scaler.scale(&actualIconPath))
+ return;
+ }
+
+ m_d->ui.pngIconButton->setIcon(scaler.pixmap());
m_d->pngIcon = actualIconPath;
}
@@ -241,5 +268,62 @@ void MobileAppWizardMaemoOptionsPage::openPngIcon()
setPngIcon(iconPath);
}
+MobileAppWizardHarmattanOptionsPage::MobileAppWizardHarmattanOptionsPage(QWidget *parent)
+ : QWizardPage(parent)
+ , m_d(new MobileAppWizardHarmattanOptionsPagePrivate)
+{
+ m_d->ui.setupUi(this);
+ m_d->iconSize = QSize(80, 80);
+ m_d->ui.pngIconButton->setIconSize(m_d->iconSize);
+ connect(m_d->ui.pngIconButton, SIGNAL(clicked()), this, SLOT(openPngIcon()));
+}
+
+MobileAppWizardHarmattanOptionsPage::~MobileAppWizardHarmattanOptionsPage()
+{
+ delete m_d;
+}
+
+QString MobileAppWizardHarmattanOptionsPage::pngIcon() const
+{
+ return m_d->pngIcon;
+}
+
+void MobileAppWizardHarmattanOptionsPage::setPngIcon(const QString &icon)
+{
+ QString actualIconPath;
+ PngIconScaler scaler(m_d->iconSize, icon);
+ if (scaler.hasRightSize()) {
+ actualIconPath = icon;
+ } else {
+ if (!scaler.scale(&actualIconPath))
+ return;
+ }
+
+ m_d->ui.pngIconButton->setIcon(scaler.pixmap());
+ m_d->pngIcon = actualIconPath;
+}
+
+void MobileAppWizardHarmattanOptionsPage::openPngIcon()
+{
+ const QString iconPath = QFileDialog::getOpenFileName(this,
+ m_d->ui.appIconLabel->text(), m_d->pngIcon,
+ QLatin1String("*.png"));
+ if (!iconPath.isEmpty())
+ setPngIcon(iconPath);
+}
+
+void MobileAppWizardHarmattanOptionsPage::setBoosterOptionEnabled(bool enable)
+{
+ m_d->ui.makeBoostableCheckBox->setEnabled(enable);
+ m_d->ui.makeBoostableCheckBox->setChecked(enable);
+}
+
+bool MobileAppWizardHarmattanOptionsPage::supportsBooster() const
+{
+ return m_d->ui.makeBoostableCheckBox->isChecked();
+}
+
} // namespace Internal
} // namespace Qt4ProjectManager
+
+#include "mobileappwizardpages.moc"
diff --git a/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.h b/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.h
index 87dc8e1fd2..029108c3fc 100644
--- a/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.h
+++ b/src/plugins/qt4projectmanager/wizards/mobileappwizardpages.h
@@ -82,8 +82,7 @@ class MobileAppWizardMaemoOptionsPage : public QWizardPage
Q_OBJECT
public:
- explicit MobileAppWizardMaemoOptionsPage(int appIconSize,
- QWidget *parent = 0);
+ explicit MobileAppWizardMaemoOptionsPage(QWidget *parent = 0);
virtual ~MobileAppWizardMaemoOptionsPage();
QString pngIcon() const;
@@ -96,6 +95,27 @@ private:
class MobileAppWizardMaemoOptionsPagePrivate *m_d;
};
+class MobileAppWizardHarmattanOptionsPage : public QWizardPage
+{
+ Q_OBJECT
+
+public:
+ explicit MobileAppWizardHarmattanOptionsPage(QWidget *parent = 0);
+ virtual ~MobileAppWizardHarmattanOptionsPage();
+
+ QString pngIcon() const;
+ void setPngIcon(const QString &icon);
+
+ void setBoosterOptionEnabled(bool enable);
+ bool supportsBooster() const;
+
+private slots:
+ void openPngIcon();
+
+private:
+ class MobileAppWizardHarmattanOptionsPagePrivate *m_d;
+};
+
} // namespace Internal
} // namespace Qt4ProjectManager
diff --git a/src/plugins/qt4projectmanager/wizards/qtquickapp.cpp b/src/plugins/qt4projectmanager/wizards/qtquickapp.cpp
index 859d2da090..7756233066 100644
--- a/src/plugins/qt4projectmanager/wizards/qtquickapp.cpp
+++ b/src/plugins/qt4projectmanager/wizards/qtquickapp.cpp
@@ -102,6 +102,7 @@ QtQuickApp::QtQuickApp()
, m_mainQmlMode(ModeGenerate)
, m_componentSet(QtQuick10Components)
{
+ m_canSupportMeegoBooster = true;
}
QtQuickApp::~QtQuickApp()
@@ -226,16 +227,16 @@ QString QtQuickApp::mainWindowClassName() const
bool QtQuickApp::adaptCurrentMainCppTemplateLine(QString &line) const
{
const QLatin1Char quote('"');
- bool adaptLine = true;
+
if (line.contains(QLatin1String("// MAINQML"))) {
insertParameter(line, quote + path(MainQmlDeployed) + quote);
} else if (line.contains(QLatin1String("// ADDIMPORTPATH"))) {
if (m_modules.isEmpty())
- adaptLine = false;
+ return false;
else
insertParameter(line, quote + path(ModulesDir) + quote);
}
- return adaptLine;
+ return true;
}
void QtQuickApp::handleCurrentProFileTemplateLine(const QString &line,
@@ -263,6 +264,11 @@ void QtQuickApp::handleCurrentProFileTemplateLine(const QString &line,
if (componentSet() == Symbian10Components)
nextLine.remove(0, 2); // remove comment
proFile << nextLine << endl;
+ } else if (line.contains(QLatin1String("# HARMATTAN_BOOSTABLE"))) {
+ QString nextLine = proFileTemplate.readLine(); // eats '# CONFIG += qdeclarative-boostable'
+ if (supportsMeegoBooster())
+ nextLine.remove(0, 2); // remove comment
+ proFile << nextLine << endl;
}
}
@@ -460,7 +466,7 @@ QString QtQuickApp::componentSetDir(ComponentSet componentSet) const
}
}
-const int QtQuickApp::StubVersion = 15;
+const int QtQuickApp::StubVersion = 16;
} // namespace Internal
} // namespace Qt4ProjectManager
diff --git a/src/plugins/remotelinux/maemopackagecreationwidget.cpp b/src/plugins/remotelinux/maemopackagecreationwidget.cpp
index bf37c99b3e..121a5514f9 100644
--- a/src/plugins/remotelinux/maemopackagecreationwidget.cpp
+++ b/src/plugins/remotelinux/maemopackagecreationwidget.cpp
@@ -72,7 +72,6 @@ void MaemoPackageCreationWidget::initGui()
{
m_ui->shortDescriptionLineEdit->setMaxLength(60);
updateVersionInfo();
- versionInfoChanged();
const AbstractDebBasedQt4MaemoTarget * const debBasedMaemoTarget
= m_step->debBasedMaemoTarget();
if (debBasedMaemoTarget) {
@@ -142,9 +141,17 @@ void MaemoPackageCreationWidget::updateVersionInfo()
}
const QStringList list = versionString.split(QLatin1Char('.'),
QString::SkipEmptyParts);
+ const bool blocked = m_ui->major->signalsBlocked();
+ m_ui->major->blockSignals(true);
+ m_ui->minor->blockSignals(true);
+ m_ui->patch->blockSignals(true);
m_ui->major->setValue(list.value(0, QLatin1String("0")).toInt());
m_ui->minor->setValue(list.value(1, QLatin1String("0")).toInt());
m_ui->patch->setValue(list.value(2, QLatin1String("0")).toInt());
+ m_ui->major->blockSignals(blocked);
+ m_ui->minor->blockSignals(blocked);
+ m_ui->patch->blockSignals(blocked);
+ updateSummary();
}
void MaemoPackageCreationWidget::handleControlFileUpdate()
@@ -249,8 +256,10 @@ void MaemoPackageCreationWidget::versionInfoChanged()
const bool success = m_step->setVersionString(m_ui->major->text()
+ QLatin1Char('.') + m_ui->minor->text() + QLatin1Char('.')
+ m_ui->patch->text(), &error);
- if (!success)
+ if (!success) {
QMessageBox::critical(this, tr("Could Not Set Version Number"), error);
+ updateVersionInfo();
+ }
}
void MaemoPackageCreationWidget::editDebianFile()
diff --git a/src/plugins/remotelinux/qt4maemotarget.cpp b/src/plugins/remotelinux/qt4maemotarget.cpp
index b48bd71dc7..f43934473f 100644
--- a/src/plugins/remotelinux/qt4maemotarget.cpp
+++ b/src/plugins/remotelinux/qt4maemotarget.cpp
@@ -57,6 +57,8 @@
#include <QtGui/QApplication>
#include <QtGui/QMainWindow>
#include <QtCore/QBuffer>
+#include <QtCore/QDateTime>
+#include <QtCore/QLocale>
#include <QtCore/QRegExp>
#include <QtCore/QDir>
#include <QtCore/QFile>
@@ -276,6 +278,23 @@ void AbstractQt4MaemoTarget::handleTargetAdded(ProjectExplorer::Target *target)
if (status == ActionSuccessful) // Don't do this when the packaging data already exists.
initPackagingSettingsFromOtherTarget();
handleTargetAddedSpecial();
+ if (status == ActionSuccessful) {
+ const QStringList &files = packagingFilePaths();
+ if (!files.isEmpty()) {
+ const QString list = QLatin1String("<ul><li>") + files.join(QLatin1String("</li><li>"))
+ + QLatin1String("</li></ul>");
+ QMessageBox::StandardButton button = QMessageBox::question(Core::ICore::instance()->mainWindow(),
+ tr("Add Packaging Files to Project"),
+ tr("<html>Qt Creator has set up the following files to enable "
+ "packaging:\n %1\nDo you want to add them to the project?</html>")
+ .arg(list), QMessageBox::Yes | QMessageBox::No);
+ if (button == QMessageBox::Yes) {
+ ProjectExplorer::ProjectExplorerPlugin::instance()
+ ->addExistingFiles(project()->rootProjectNode(), files);
+ }
+ }
+ }
+
m_isInitialized = true;
}
@@ -327,27 +346,7 @@ AbstractQt4MaemoTarget::ActionStatus AbstractQt4MaemoTarget::createTemplates()
return ActionFailed;
}
- const ActionStatus actionStatus = createSpecialTemplates();
- if (actionStatus == ActionFailed)
- return ActionFailed;
- if (actionStatus == ActionSuccessful) {
- const QStringList &files = packagingFilePaths();
- if (!files.isEmpty()) {
- const QString list = QLatin1String("<ul><li>")
- + files.join(QLatin1String("</li><li>")) + QLatin1String("</li></ul>");
- QMessageBox::StandardButton button
- = QMessageBox::question(Core::ICore::instance()->mainWindow(),
- tr("Add Packaging Files to Project"),
- tr("<html>Qt Creator has set up the following files to enable "
- "packaging:\n %1\nDo you want to add them to the project?</html>")
- .arg(list), QMessageBox::Yes | QMessageBox::No);
- if (button == QMessageBox::Yes) {
- ProjectExplorer::ProjectExplorerPlugin::instance()
- ->addExistingFiles(project()->rootProjectNode(), files);
- }
- }
- }
- return actionStatus;
+ return createSpecialTemplates();
}
bool AbstractQt4MaemoTarget::initPackagingSettingsFromOtherTarget()
@@ -416,8 +415,50 @@ bool AbstractDebBasedQt4MaemoTarget::setProjectVersionInternal(const QString &ve
if (!reader.fetch(filePath, error))
return false;
QString content = QString::fromUtf8(reader.data());
- content.replace(QRegExp(QLatin1String("\\([a-zA-Z0-9_\\.]+\\)")),
- QLatin1Char('(') + version + QLatin1Char(')'));
+ if (content.contains(QLatin1Char('(') + version + QLatin1Char(')'))) {
+ if (error) {
+ *error = tr("Refusing to update changelog file: Already contains version '%1'.")
+ .arg(version);
+ }
+ return false;
+ }
+
+ int maintainerOffset = content.indexOf(QLatin1String("\n -- "));
+ const int eolOffset = content.indexOf(QLatin1Char('\n'), maintainerOffset+1);
+ if (maintainerOffset == -1 || eolOffset == -1) {
+ if (error) {
+ *error = tr("Cannot update changelog: Invalid format (no maintainer entry found).");
+ }
+ return false;
+ }
+
+ ++maintainerOffset;
+ const QDateTime currentDateTime = QDateTime::currentDateTime();
+ QDateTime utcDateTime = QDateTime(currentDateTime);
+ utcDateTime.setTimeSpec(Qt::UTC);
+ int utcOffsetSeconds = currentDateTime.secsTo(utcDateTime);
+ QChar sign;
+ if (utcOffsetSeconds < 0) {
+ utcOffsetSeconds = -utcOffsetSeconds;
+ sign = QLatin1Char('-');
+ } else {
+ sign = QLatin1Char('+');
+ }
+ const int utcOffsetMinutes = (utcOffsetSeconds / 60) % 60;
+ const int utcOffsetHours = utcOffsetSeconds / 3600;
+ const QString dateString = QString::fromLatin1("%1 %2%3%4")
+ .arg(currentDateTime.toString(QLatin1String("ddd, dd MMM yyyy hh:mm:ss"))).arg(sign)
+ .arg(utcOffsetHours, 2, 10, QLatin1Char('0'))
+ .arg(utcOffsetMinutes, 2, 10, QLatin1Char('0'));
+ const QString maintainerLine = content.mid(maintainerOffset, eolOffset - maintainerOffset + 1)
+ .replace(QRegExp(QLatin1String("> [^\\n]*\n")),
+ QString::fromLocal8Bit("> %1").arg(dateString));
+ QString versionLine = content.left(content.indexOf(QLatin1Char('\n')))
+ .replace(QRegExp(QLatin1String("\\([a-zA-Z0-9_\\.]+\\)")),
+ QLatin1Char('(') + version + QLatin1Char(')'));
+ const QString newEntry = versionLine + QLatin1String("\n * <Add change description here>\n\n")
+ + maintainerLine + QLatin1String("\n\n");
+ content.prepend(newEntry);
Core::FileChangeBlocker update(filePath);
Utils::FileSaver saver(filePath);
saver.write(content.toUtf8());
@@ -664,10 +705,11 @@ void AbstractDebBasedQt4MaemoTarget::handleTargetAddedSpecial()
// Such a file is created by the mobile wizards.
const QString iconPath = project()->projectDirectory()
+ QLatin1Char('/') + project()->displayName()
- + QLatin1String(".png");
+ + QLatin1String("64.png");
if (QFileInfo(iconPath).exists())
setPackageManagerIcon(iconPath);
}
+
m_filesWatcher->addDirectory(debianDirPath(), Utils::FileSystemWatcher::WatchAllChanges);
m_controlFile = new WatchableFile(controlFilePath(), this);
connect(m_controlFile, SIGNAL(modified()), SIGNAL(controlChanged()));
@@ -875,7 +917,6 @@ bool AbstractDebBasedQt4MaemoTarget::setPackageManagerIcon(const QString &iconFi
return success;
}
-
AbstractRpmBasedQt4MaemoTarget::AbstractRpmBasedQt4MaemoTarget(Qt4Project *parent,
const QString &id) : AbstractQt4MaemoTarget(parent, id)
{
diff --git a/src/plugins/remotelinux/remotelinuxruncontrol.cpp b/src/plugins/remotelinux/remotelinuxruncontrol.cpp
index f0e441178c..29c5f43df2 100644
--- a/src/plugins/remotelinux/remotelinuxruncontrol.cpp
+++ b/src/plugins/remotelinux/remotelinuxruncontrol.cpp
@@ -37,10 +37,8 @@
#include <projectexplorer/projectexplorerconstants.h>
#include <utils/qtcassert.h>
-#include <QtGui/QIcon>
-#include <QtGui/QMessageBox>
-
#include <QtCore/QString>
+#include <QtGui/QIcon>
using namespace ProjectExplorer;
@@ -137,7 +135,6 @@ void AbstractRemoteLinuxRunControl::handleError(const QString &errString)
{
stop();
appendMessage(errString, Utils::ErrorMessageFormat);
- QMessageBox::critical(0, tr("Remote Execution Failure"), errString);
}
void AbstractRemoteLinuxRunControl::setFinished()