diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index e8323c2c6249bed51a7b0dd2e6e2856ba4f9563b..aa655204ffc4c42b032a97d160ae6c1b4e10568e 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -121,11 +121,6 @@ QtVersionManager::QtVersionManager() writeVersionsIntoSettings(); - if (Welcome::WelcomeMode *welcomeMode = qobject_cast<Welcome::WelcomeMode*> - (Core::ICore::instance()->modeManager()->mode(Core::Constants::MODE_WELCOME))) { - connect(this, SIGNAL(updatedExamples(QString, QString)), - welcomeMode, SIGNAL(updatedExamples(QString, QString))); - } updateDocumentation(); updateExamples(); } @@ -190,7 +185,9 @@ void QtVersionManager::updateExamples() if (version->hasDemos()) demosPath = version->demosPath(); if (!examplesPath.isEmpty() && !demosPath.isEmpty()) { - emit updatedExamples(examplesPath, demosPath); + if (Welcome::WelcomeMode *welcomeMode = qobject_cast<Welcome::WelcomeMode*> + (Core::ICore::instance()->modeManager()->mode(Core::Constants::MODE_WELCOME))) + welcomeMode->updateExamples(examplesPath, demosPath, version->sourcePath()); return; } } diff --git a/src/plugins/qt4projectmanager/qtversionmanager.h b/src/plugins/qt4projectmanager/qtversionmanager.h index c1fe58f9f0d02d3c2b517c342a78f4f8a7e1218a..0f2144c250076f03063c1ac872e53d058c76e682 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.h +++ b/src/plugins/qt4projectmanager/qtversionmanager.h @@ -201,7 +201,6 @@ public: signals: void defaultQtVersionChanged(); void qtVersionsChanged(); - void updatedExamples(const QString& examplesPath, const QString& demosPath); private: static QString findQMakeLine(const QString &directory); static QString trimLine(const QString line); diff --git a/src/plugins/welcome/welcomemode.cpp b/src/plugins/welcome/welcomemode.cpp index f712399dcc8c0007452178e3ed75e9f8c602786e..0035fefe7bbe98230697da6fe2082c398ecfdebe 100644 --- a/src/plugins/welcome/welcomemode.cpp +++ b/src/plugins/welcome/welcomemode.cpp @@ -169,9 +169,6 @@ WelcomeMode::WelcomeMode() : connect(m_d->ui.openExampleButton, SIGNAL(clicked()), SLOT(slotOpenExample())); connect(m_d->ui.examplesComboBox, SIGNAL(currentIndexChanged(int)), SLOT(slotEnableExampleButton(int))); - connect(this, SIGNAL(updatedExamples(QString, QString)), - this, SLOT(slotUpdateExamples(QString, QString))); - connect(m_d->rssFetcher, SIGNAL(newsItemReady(QString, QString, QString)), m_d->ui.newsTreeWidget, SLOT(slotAddNewsItem(QString, QString, QString))); @@ -315,11 +312,14 @@ void WelcomeMode::slotUrlClicked(const QString &data) QDesktopServices::openUrl(QUrl(data)); } -void WelcomeMode::slotUpdateExamples(const QString& examplePath, const QString& demosPath) +void WelcomeMode::updateExamples(const QString& examplePath, const QString& demosPath, const QString &sourcePath) { QString demoxml = demosPath + "/qtdemo/xml/examples.xml"; - if (!QFile::exists(demoxml)) - return; + if (!QFile::exists(demoxml)) { + demoxml = sourcePath + "/demos/qtdemo/xml/examples.xml"; + if (!QFile::exists(demoxml)) + return; + } QFile description(demoxml); if (!description.open(QFile::ReadOnly)) @@ -353,7 +353,10 @@ void WelcomeMode::slotUpdateExamples(const QString& examplePath, const QString& if (inExamples && reader.name() == "example") { QString name = reader.attributes().value(QLatin1String("name")).toString(); QString fn = reader.attributes().value(QLatin1String("filename")).toString(); - QString fileName = examplePath + '/' + dirName + '/' + fn + '/' + fn + ".pro"; + QString relativeProPath = '/' + dirName + '/' + fn + '/' + fn + ".pro"; + QString fileName = examplePath + relativeProPath; + if (!QFile::exists(fileName)) + fileName = sourcePath + "/examples" + relativeProPath; QString helpPath = "qthelp://com.trolltech.qt/qdoc/" + dirName.replace("/", "-") + "-" + fn + ".html"; m_d->ui.examplesComboBox->addItem(" " + name, fileName); diff --git a/src/plugins/welcome/welcomemode.h b/src/plugins/welcome/welcomemode.h index 3825b9dbef30e5548fa8f5003d5ffbe5b6190685..0555ce60f30ce1fa2fb640f8236045fc607eb684 100644 --- a/src/plugins/welcome/welcomemode.h +++ b/src/plugins/welcome/welcomemode.h @@ -76,20 +76,20 @@ public: void activated(); QString contextHelpId() const { return QLatin1String("Qt Creator"); } + void updateExamples(const QString& examplePath, const QString& demosPath, const QString &sourcePath); + signals: void requestProject(const QString &project); void requestSession(const QString &session); void openHelpPage(const QString& url); void openContextHelpPage(const QString& url); void manageSessions(); - void updatedExamples(const QString& examplePath, const QString& demosPath); private slots: void slotFeedback(); void slotSessionClicked(const QString &data); void slotProjectClicked(const QString &data); void slotUrlClicked(const QString &data); - void slotUpdateExamples(const QString& examplePath, const QString& demosPath); void slotEnableExampleButton(int); void slotOpenExample(); void slotCreateNewProject();