From d2e02c15d82c012ff6f91014f030924c4eca8725 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Wed, 22 Jan 2014 14:17:56 -0800 Subject: [PATCH] repair the UpdateDialog so it is a QDialog with no child QWidget --- interface/CMakeLists.txt | 9 +++++- interface/src/Application.cpp | 3 +- interface/src/ui/UpdateDialog.cpp | 29 ++++++++++---------- interface/src/ui/UpdateDialog.h | 2 +- interface/{resources => }/ui/updateDialog.ui | 0 5 files changed, 25 insertions(+), 18 deletions(-) rename interface/{resources => }/ui/updateDialog.ui (100%) diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt index d05ea7a7c0..165c3c4c15 100644 --- a/interface/CMakeLists.txt +++ b/interface/CMakeLists.txt @@ -71,7 +71,6 @@ foreach(EXTERNAL_SOURCE_SUBDIR ${EXTERNAL_SOURCE_SUBDIRS}) set(INTERFACE_SRCS ${INTERFACE_SRCS} ${SUBDIR_SRCS}) endforeach(EXTERNAL_SOURCE_SUBDIR) - find_package(Qt5Core REQUIRED) find_package(Qt5Gui REQUIRED) find_package(Qt5Multimedia REQUIRED) @@ -83,6 +82,14 @@ find_package(Qt5WebKitWidgets REQUIRED) find_package(Qt5Xml REQUIRED) find_package(Qt5UiTools REQUIRED) +# grab the ui files in resources/ui +file (GLOB_RECURSE QT_UI_FILES ui/*.ui) +# have qt5 wrap them and generate the appropriate header files +qt5_wrap_ui(QT_UI_HEADERS ${QT_UI_FILES}) + +# add them to the interface source files +set(INTERFACE_SRCS ${INTERFACE_SRCS} ${QT_UI_HEADERS}) + if (APPLE) set(MACOSX_BUNDLE_BUNDLE_NAME Interface) # set how the icon shows up in the Info.plist file diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index 678c7ab647..78d65048bd 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -4415,7 +4415,8 @@ bool Application::shouldSkipVersion(QString latestVersion) { QFile skipFile(SKIP_FILENAME); skipFile.open(QIODevice::ReadWrite); QString skipVersion(skipFile.readAll()); - return (skipVersion == latestVersion || applicationVersion() == "dev"); +// return (skipVersion == latestVersion || applicationVersion() == "dev"); + return false; } void Application::skipVersion(QString latestVersion) { diff --git a/interface/src/ui/UpdateDialog.cpp b/interface/src/ui/UpdateDialog.cpp index 12c5cd83e0..c13425be61 100644 --- a/interface/src/ui/UpdateDialog.cpp +++ b/interface/src/ui/UpdateDialog.cpp @@ -19,35 +19,34 @@ #include "SharedUtil.h" #include "UpdateDialog.h" +#include "ui_updateDialog.h" + UpdateDialog::UpdateDialog(QWidget *parent, const QString& releaseNotes, const QString& latestVersion, const QUrl& downloadURL) : - QWidget(parent, Qt::Widget), + QDialog(parent), _latestVersion(latestVersion), - _downloadUrl(downloadURL) { - - QUiLoader updateDialogLoader; - QWidget* updateDialog; - QFile updateDialogUi("resources/ui/updateDialog.ui"); - updateDialogUi.open(QFile::ReadOnly); - updateDialog = updateDialogLoader.load(&updateDialogUi, this); + _downloadUrl(downloadURL) +{ + Ui::Dialog dialogUI; + dialogUI.setupUi(this); QString updateRequired = QString("You are currently running build %1, the latest build released is %2. \ Please download and install the most recent release to access the latest features and bug fixes.") .arg(Application::getInstance()->applicationVersion(), latestVersion); + setAttribute(Qt::WA_DeleteOnClose); - updateDialog->setAttribute(Qt::WA_DeleteOnClose); - - QPushButton* downloadButton = updateDialog->findChild("downloadButton"); - QPushButton* skipButton = updateDialog->findChild("skipButton"); - QPushButton* closeButton = updateDialog->findChild("closeButton"); - QLabel* updateContent = updateDialog->findChild("updateContent"); + QPushButton* downloadButton = findChild("downloadButton"); + QPushButton* skipButton = findChild("skipButton"); + QPushButton* closeButton = findChild("closeButton"); + QLabel* updateContent = findChild("updateContent"); updateContent->setText(updateRequired); connect(downloadButton, SIGNAL(released()), this, SLOT(handleDownload())); connect(skipButton, SIGNAL(released()), this, SLOT(handleSkip())); connect(closeButton, SIGNAL(released()), this, SLOT(close())); - updateDialog->show(); + + QMetaObject::invokeMethod(this, "show", Qt::QueuedConnection); } void UpdateDialog::handleDownload() { diff --git a/interface/src/ui/UpdateDialog.h b/interface/src/ui/UpdateDialog.h index 1c4f5de9d0..14f4e6f39c 100644 --- a/interface/src/ui/UpdateDialog.h +++ b/interface/src/ui/UpdateDialog.h @@ -11,7 +11,7 @@ #include -class UpdateDialog : public QWidget { +class UpdateDialog : public QDialog { Q_OBJECT public: diff --git a/interface/resources/ui/updateDialog.ui b/interface/ui/updateDialog.ui similarity index 100% rename from interface/resources/ui/updateDialog.ui rename to interface/ui/updateDialog.ui