diff --git a/interface/CMakeLists.txt b/interface/CMakeLists.txt index d05ea7a7c0..6af6ed478d 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) @@ -81,7 +80,14 @@ find_package(Qt5Svg REQUIRED) find_package(Qt5WebKit REQUIRED) 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) diff --git a/interface/src/ui/UpdateDialog.cpp b/interface/src/ui/UpdateDialog.cpp index 12c5cd83e0..deb671427f 100644 --- a/interface/src/ui/UpdateDialog.cpp +++ b/interface/src/ui/UpdateDialog.cpp @@ -6,48 +6,40 @@ // Copyright (c) 2013, 2014 High Fidelity, Inc. All rights reserved. // -#include -#include -#include #include -#include -#include -#include -#include #include "Application.h" -#include "SharedUtil.h" +#include "ui_updateDialog.h" + #include "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