From b7f632077c91fa2983db89c2f20e667d95c7c517 Mon Sep 17 00:00:00 2001 From: Alex Spataru Date: Sat, 6 Aug 2016 13:43:04 -0500 Subject: [PATCH] Use provided settings database --- app/main.cpp | 7 ++++++- app/qml/ApplicationSettings.qml | 14 ++++++++++++++ app/qml/main.qml | 32 ++++++++++++++++++++------------ 3 files changed, 40 insertions(+), 13 deletions(-) diff --git a/app/main.cpp b/app/main.cpp index b06c43b..0cf128f 100644 --- a/app/main.cpp +++ b/app/main.cpp @@ -81,7 +81,12 @@ int main(int argc, char *argv[]) importPathList.prepend(QCoreApplication::applicationDirPath() + "/../../../qmltermwidget"); engine.setImportPathList(importPathList); - engine.load(QUrl("qrc:/main.qml")); + engine.load(QUrl(QStringLiteral ("qrc:/main.qml"))); + + if (engine.rootObjects().isEmpty()) { + qDebug() << "Cannot load QML interface"; + return EXIT_FAILURE; + } // Quit the application when the engine closes. QObject::connect((QObject*) &engine, SIGNAL(quit()), (QObject*) &app, SLOT(quit())); diff --git a/app/qml/ApplicationSettings.qml b/app/qml/ApplicationSettings.qml index 2c645f6..d0f8beb 100644 --- a/app/qml/ApplicationSettings.qml +++ b/app/qml/ApplicationSettings.qml @@ -33,6 +33,11 @@ QtObject{ // GENERAL SETTINGS /////////////////////////////////////////////////////// + property int x: 100 + property int y: 100 + property int width: 1024 + property int height: 768 + property bool fullscreen: false property bool showMenubar: true @@ -211,6 +216,10 @@ QtObject{ function composeSettingsString(){ var settings = { fps: fps, + x: x, + y: y, + width: width, + height: height, windowScaling: windowScaling, showTerminalSize: showTerminalSize, fontScaling: fontScaling, @@ -291,6 +300,11 @@ QtObject{ fps = settings.fps !== undefined ? settings.fps: fps windowScaling = settings.windowScaling !== undefined ? settings.windowScaling : windowScaling + x = settings.x !== undefined ? settings.x : x + y = settings.y !== undefined ? settings.y : y + width = settings.width !== undefined ? settings.width : width + height = settings.height !== undefined ? settings.height : height + fontNames = settings.fontNames !== undefined ? settings.fontNames : fontNames fontScaling = settings.fontScaling !== undefined ? settings.fontScaling : fontScaling diff --git a/app/qml/main.qml b/app/qml/main.qml index eddb782..ed0801c 100644 --- a/app/qml/main.qml +++ b/app/qml/main.qml @@ -21,7 +21,6 @@ import QtQuick 2.2 import QtQuick.Window 2.1 import QtQuick.Controls 1.1 -import Qt.labs.settings 1.0 import QtGraphicalEffects 1.0 ApplicationWindow{ @@ -29,23 +28,33 @@ ApplicationWindow{ width: 1024 height: 768 + + // Save window properties automatically + onXChanged: appSettings.x = x + onYChanged: appSettings.y = y + onWidthChanged: appSettings.width = width + onHeightChanged: appSettings.height = height + + // Load saved window geometry and show the window + Component.onCompleted: { + appSettings.handleFontChanged(); + + x = appSettings.x + y = appSettings.y + width = appSettings.width + height = appSettings.height + + visible = true + } + minimumWidth: 320 minimumHeight: 240 - visible: true + visible: false property bool fullscreen: appSettings.fullscreen onFullscreenChanged: visibility = (fullscreen ? Window.FullScreen : Window.Windowed) - // Save window size automatically - Settings { - category: "MainWindow" - property alias x: terminalWindow.x - property alias y: terminalWindow.y - property alias width: terminalWindow.width - property alias height: terminalWindow.height - } - //Workaround: Without __contentItem a ugly thin border is visible. menuBar: CRTMainMenuBar{ id: mainMenu @@ -150,7 +159,6 @@ ApplicationWindow{ terminalSize: terminalContainer.terminalSize } } - Component.onCompleted: appSettings.handleFontChanged(); onClosing: { // OSX Since we are currently supporting only one window // quit the application when it is closed.