diff --git a/CMakeLists.txt b/CMakeLists.txt
index e583f23d4..6498e723c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -379,7 +379,6 @@ if(WIN32)
"${OpenMW_SOURCE_DIR}/OFL.txt"
"${OpenMW_SOURCE_DIR}/DejaVu Font License.txt"
"${OpenMW_SOURCE_DIR}/Daedric Font License.txt"
- "${OpenMW_BINARY_DIR}/launcher.qss"
"${OpenMW_BINARY_DIR}/settings-default.cfg"
"${OpenMW_BINARY_DIR}/transparency-overrides.cfg"
"${OpenMW_BINARY_DIR}/Release/omwlauncher.exe"
@@ -566,8 +565,6 @@ if (APPLE)
install(DIRECTORY "${APP_BUNDLE_DIR}" USE_SOURCE_PERMISSIONS DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
install(DIRECTORY "${OpenMW_BINARY_DIR}/resources" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
install(FILES "${OpenMW_BINARY_DIR}/openmw.cfg.install" RENAME "openmw.cfg" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
- install(FILES "${OpenMW_BINARY_DIR}/launcher.qss" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
-
install(FILES "${OpenMW_BINARY_DIR}/settings-default.cfg" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
install(FILES "${OpenMW_BINARY_DIR}/transparency-overrides.cfg" DESTINATION "${INSTALL_SUBDIR}" COMPONENT Runtime)
@@ -681,7 +678,4 @@ if (NOT WIN32 AND NOT DPKG_PROGRAM AND NOT APPLE)
# Install resources
INSTALL(DIRECTORY "${OpenMW_BINARY_DIR}/resources" DESTINATION "${DATADIR}" )
- IF(BUILD_LAUNCHER)
- INSTALL(FILES "${OpenMW_BINARY_DIR}/launcher.qss" DESTINATION "${DATADIR}/resources" )
- ENDIF(BUILD_LAUNCHER)
endif(NOT WIN32 AND NOT DPKG_PROGRAM AND NOT APPLE)
diff --git a/apps/launcher/CMakeLists.txt b/apps/launcher/CMakeLists.txt
index bc3969097..206e94794 100644
--- a/apps/launcher/CMakeLists.txt
+++ b/apps/launcher/CMakeLists.txt
@@ -36,6 +36,7 @@ set(LAUNCHER_HEADER
utils/comboboxlineedit.hpp
utils/profilescombobox.hpp
utils/textinputdialog.hpp
+
)
# Headers that must be pre-processed
@@ -54,9 +55,9 @@ set(LAUNCHER_HEADER_MOC
)
set(LAUNCHER_UI
- ui/graphicspage.ui
- ui/mainwindow.ui
- ui/playpage.ui
+ ./ui/graphicspage.ui
+ ./ui/mainwindow.ui
+ ./ui/playpage.ui
)
source_group(launcher FILES ${LAUNCHER} ${LAUNCHER_HEADER})
@@ -72,9 +73,10 @@ endif(WIN32)
QT4_ADD_RESOURCES(RCC_SRCS resources.qrc)
QT4_WRAP_CPP(MOC_SRCS ${LAUNCHER_HEADER_MOC})
-QT4_WRAP_UI(UI_HDRS ${LAUCHER_UI})
+QT4_WRAP_UI(UI_HDRS ${LAUNCHER_UI})
include(${QT_USE_FILE})
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
# Main executable
IF(OGRE_STATIC)
@@ -107,18 +109,6 @@ if(DPKG_PROGRAM)
INSTALL(TARGETS omwlauncher RUNTIME DESTINATION games COMPONENT omwlauncher)
endif()
-if (APPLE)
- configure_file(${CMAKE_SOURCE_DIR}/files/launcher.qss
- "${APP_BUNDLE_DIR}/../launcher.qss")
-else()
- configure_file(${CMAKE_SOURCE_DIR}/files/launcher.qss
- "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/resources/launcher.qss")
-
- # Fallback in case getGlobalDataPath does not point to resources
- configure_file(${CMAKE_SOURCE_DIR}/files/launcher.qss
- "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/launcher.qss")
-endif()
-
if (BUILD_WITH_CODE_COVERAGE)
add_definitions (--coverage)
target_link_libraries(omwlauncher gcov)
diff --git a/apps/launcher/maindialog.cpp b/apps/launcher/maindialog.cpp
index e69f134d2..f438e64c9 100644
--- a/apps/launcher/maindialog.cpp
+++ b/apps/launcher/maindialog.cpp
@@ -12,46 +12,6 @@
MainDialog::MainDialog()
: mGameSettings(mCfgMgr)
{
- QWidget *centralWidget = new QWidget(this);
- setCentralWidget(centralWidget);
-
- mIconWidget = new QListWidget(centralWidget);
- mIconWidget->setObjectName("IconWidget");
- mIconWidget->setViewMode(QListView::IconMode);
- mIconWidget->setWrapping(false);
- mIconWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); // Just to be sure
- mIconWidget->setIconSize(QSize(48, 48));
- mIconWidget->setMovement(QListView::Static);
-
- mIconWidget->setMinimumWidth(400);
- mIconWidget->setFixedHeight(80);
- mIconWidget->setSpacing(4);
- mIconWidget->setCurrentRow(0);
- mIconWidget->setFlow(QListView::LeftToRight);
-
- QGroupBox *groupBox = new QGroupBox(centralWidget);
- QVBoxLayout *groupLayout = new QVBoxLayout(groupBox);
-
- mPagesWidget = new QStackedWidget(groupBox);
- groupLayout->addWidget(mPagesWidget);
-
- QPushButton *playButton = new QPushButton(tr("Play"));
-
- QDialogButtonBox *buttonBox = new QDialogButtonBox(centralWidget);
- buttonBox->setStandardButtons(QDialogButtonBox::Close);
- buttonBox->addButton(playButton, QDialogButtonBox::AcceptRole);
-
- QVBoxLayout *dialogLayout = new QVBoxLayout(centralWidget);
- dialogLayout->addWidget(mIconWidget);
- dialogLayout->addWidget(groupBox);
- dialogLayout->addWidget(buttonBox);
-
- setWindowTitle(tr("OpenMW Launcher"));
- setWindowIcon(QIcon(":/images/openmw.png"));
- // Remove what's this? button
- setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint);
- setMinimumSize(QSize(575, 575));
-
// Install the stylesheet font
QFile file;
QFontDatabase fontDatabase;
@@ -71,31 +31,27 @@ MainDialog::MainDialog()
fontDatabase.addApplicationFont(font);
}
- // Load the stylesheet
- QString config = QString::fromStdString(mCfgMgr.getGlobalDataPath().string()) + QString("resources/launcher.qss");
- file.setFileName(config);
+ setupUi(this);
- if (!file.exists())
- file.setFileName(QString::fromStdString(mCfgMgr.getLocalPath().string()) + QString("launcher.qss"));
+ iconWidget->setViewMode(QListView::IconMode);
+ iconWidget->setWrapping(false);
+ iconWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); // Just to be sure
+ iconWidget->setIconSize(QSize(48, 48));
+ iconWidget->setMovement(QListView::Static);
- if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
- QMessageBox msgBox;
- msgBox.setWindowTitle(tr("Error opening Launcher stylesheet"));
- msgBox.setIcon(QMessageBox::Warning);
- msgBox.setStandardButtons(QMessageBox::Ok);
- msgBox.setText(QObject::tr("
Could not open %0 for reading
\
- Please make sure you have the right permissions \
- and try again.
").arg(file.fileName()));
- msgBox.exec();
- } else {
- QString styleSheet = QLatin1String(file.readAll());
- qApp->setStyleSheet(styleSheet);
- file.close();
- }
+ iconWidget->setSpacing(4);
+ iconWidget->setCurrentRow(0);
+ iconWidget->setFlow(QListView::LeftToRight);
+
+ QPushButton *playButton = new QPushButton(tr("Play"));
+ buttonBox->addButton(playButton, QDialogButtonBox::AcceptRole);
connect(buttonBox, SIGNAL(rejected()), this, SLOT(close()));
connect(buttonBox, SIGNAL(accepted()), this, SLOT(play()));
+ // Remove what's this? button
+ setWindowFlags(this->windowFlags() & ~Qt::WindowContextHelpButtonHint);
+
createIcons();
}
@@ -107,25 +63,25 @@ void MainDialog::createIcons()
// We create a fallback icon because the default fallback doesn't work
QIcon graphicsIcon = QIcon(":/icons/tango/video-display.png");
- QListWidgetItem *playButton = new QListWidgetItem(mIconWidget);
+ QListWidgetItem *playButton = new QListWidgetItem(iconWidget);
playButton->setIcon(QIcon(":/images/openmw.png"));
playButton->setText(tr("Play"));
playButton->setTextAlignment(Qt::AlignCenter);
playButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
- QListWidgetItem *graphicsButton = new QListWidgetItem(mIconWidget);
+ QListWidgetItem *graphicsButton = new QListWidgetItem(iconWidget);
graphicsButton->setIcon(QIcon::fromTheme("video-display", graphicsIcon));
graphicsButton->setText(tr("Graphics"));
graphicsButton->setTextAlignment(Qt::AlignHCenter | Qt::AlignBottom | Qt::AlignAbsolute);
graphicsButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
- QListWidgetItem *dataFilesButton = new QListWidgetItem(mIconWidget);
+ QListWidgetItem *dataFilesButton = new QListWidgetItem(iconWidget);
dataFilesButton->setIcon(QIcon(":/images/openmw-plugin.png"));
dataFilesButton->setText(tr("Data Files"));
dataFilesButton->setTextAlignment(Qt::AlignHCenter | Qt::AlignBottom);
dataFilesButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
- connect(mIconWidget,
+ connect(iconWidget,
SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),
this, SLOT(changePage(QListWidgetItem*,QListWidgetItem*)));
@@ -142,12 +98,12 @@ void MainDialog::createPages()
mPlayPage->mProfilesComboBox->setCurrentIndex(mDataFilesPage->mProfilesComboBox->currentIndex());
// Add the pages to the stacked widget
- mPagesWidget->addWidget(mPlayPage);
- mPagesWidget->addWidget(mGraphicsPage);
- mPagesWidget->addWidget(mDataFilesPage);
+ pagesWidget->addWidget(mPlayPage);
+ pagesWidget->addWidget(mGraphicsPage);
+ pagesWidget->addWidget(mDataFilesPage);
// Select the first page
- mIconWidget->setCurrentItem(mIconWidget->item(0), QItemSelectionModel::Select);
+ iconWidget->setCurrentItem(iconWidget->item(0), QItemSelectionModel::Select);
connect(mPlayPage->mPlayButton, SIGNAL(clicked()), this, SLOT(play()));
@@ -326,7 +282,7 @@ void MainDialog::changePage(QListWidgetItem *current, QListWidgetItem *previous)
if (!current)
current = previous;
- mPagesWidget->setCurrentIndex(mIconWidget->row(current));
+ pagesWidget->setCurrentIndex(iconWidget->row(current));
}
bool MainDialog::setupLauncherSettings()
diff --git a/apps/launcher/maindialog.hpp b/apps/launcher/maindialog.hpp
index f221bd5e6..780cd8beb 100644
--- a/apps/launcher/maindialog.hpp
+++ b/apps/launcher/maindialog.hpp
@@ -9,6 +9,8 @@
#include "settings/graphicssettings.hpp"
#include "settings/launchersettings.hpp"
+#include "ui_mainwindow.h"
+
class QListWidget;
class QListWidgetItem;
class QStackedWidget;
@@ -20,7 +22,7 @@ class PlayPage;
class GraphicsPage;
class DataFilesPage;
-class MainDialog : public QMainWindow
+class MainDialog : public QMainWindow, private Ui::MainWindow
{
Q_OBJECT
@@ -56,8 +58,8 @@ private:
void closeEvent(QCloseEvent *event);
- QListWidget *mIconWidget;
- QStackedWidget *mPagesWidget;
+// QListWidget *mIconWidget;
+// QStackedWidget *mPagesWidget;
PlayPage *mPlayPage;
GraphicsPage *mGraphicsPage;
diff --git a/files/launcher.qss b/files/launcher.qss
deleted file mode 100644
index 1eb056d4d..000000000
--- a/files/launcher.qss
+++ /dev/null
@@ -1,123 +0,0 @@
-#PlayGroup {
- background-image: url(":/images/playpage-background.png");
- background-repeat: no-repeat;
- background-position: top;
- padding-left: 30px;
- padding-right: 30px;
-}
-
-#MastersWidget {
- selection-background-color: palette(highlight);
-}
-
-#PlayButton {
- height: 50px;
- margin-bottom: 30px;
-
- background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1,
- stop:0 rgba(255, 255, 255, 200),
- stop:0.1 rgba(255, 255, 255, 15),
- stop:0.49 rgba(255, 255, 255, 75),
- stop:0.5 rgba(0, 0, 0, 0),
- stop:0.9 rgba(0, 0, 0, 55),
- stop:1 rgba(0, 0, 0, 100));
-
- font-size: 26pt;
- font-family: "EB Garamond", "EB Garamond 08";
- color: black;
-
- border-right: 1px solid rgba(0, 0, 0, 155);
- border-left: 1px solid rgba(0, 0, 0, 55);
- border-top: 1px solid rgba(0, 0, 0, 55);
- border-bottom: 1px solid rgba(0, 0, 0, 155);
-
- border-radius: 5px;
-}
-
-#PlayButton:hover {
- border-bottom: qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, stop:0 rgba(164, 192, 228, 255), stop:1 rgba(255, 255, 255, 0));
- border-top: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(164, 192, 228, 255), stop:1 rgba(255, 255, 255, 0));
- border-right: qlineargradient(spread:pad, x1:1, y1:0, x2:0, y2:0, stop:0 rgba(164, 192, 228, 255), stop:1 rgba(255, 255, 255, 0));
- border-left: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(164, 192, 228, 255), stop:1 rgba(255, 255, 255, 0));
- border-width: 2px;
- border-style: solid;
-}
-
-#PlayButton:pressed {
- background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
- stop:0 rgba(0, 0, 0, 75),
- stop:0.1 rgba(0, 0, 0, 15),
- stop:0.2 rgba(255, 255, 255, 55)
- stop:0.95 rgba(255, 255, 255, 55),
- stop:1 rgba(255, 255, 255, 155));
-
- border: 1px solid rgba(0, 0, 0, 55);
-}
-
-#ProfileLabel {
- font-size: 18pt;
- font-family: "EB Garamond", "EB Garamond 08";
-}
-
-#ProfilesComboBox {
- padding: 1px 18px 1px 3px;
-
- background: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 white, stop:0.2 rgba(0, 0, 0, 25), stop:1 white);
- border-width: 1px;
- border-color: rgba(0, 0, 0, 125);
- border-style: solid;
- border-radius: 2px;
-}
-
-/*QComboBox gets the "on" state when the popup is open */
-#ProfilesComboBox:!editable:on, #ProfilesComboBox::drop-down:editable:on {
- background: qlineargradient(x1:0, y1:0, x2:0, y2:1,
- stop:0 rgba(0, 0, 0, 75),
- stop:0.1 rgba(0, 0, 0, 15),
- stop:0.2 rgba(255, 255, 255, 55));
-
- border: 1px solid rgba(0, 0, 0, 55);
-}
-
-
-#ProfilesComboBox { /* shift the text when the popup opens */
- padding-top: 3px;
- padding-left: 4px;
-
- font-size: 12pt;
- font-family: "EB Garamond", "EB Garamond 08";
-}
-
-#ProfilesComboBox::drop-down {
- subcontrol-origin: padding;
- subcontrol-position: top right;
-
- border-width: 1px;
- border-left-width: 1px;
- border-left-color: darkgray;
- border-left-style: solid; /* just a single line */
- border-top-right-radius: 3px; /* same radius as the QComboBox */
- border-bottom-right-radius: 3px;
-}
-
-#ProfilesComboBox::down-arrow {
- image: url(":/images/down.png");
-}
-
-#ProfilesComboBox::down-arrow:on { /* shift the arrow when popup is open */
- top: 1px;
- left: 1px;
-}
-
-#ProfilesComboBox QAbstractItemView {
- border: 2px solid lightgray;
- border-radius: 5px;
-}
-
-#IconWidget {
- background-image: url(":/images/openmw-header.png");
- background-color: white;
- background-repeat: no-repeat;
- background-attachment: scroll;
- background-position: right;
-}