mirror of
https://github.com/Serial-Studio/Serial-Studio.git
synced 2025-01-31 17:42:55 +08:00
Add window shadow & respect fixed sizes
This commit is contained in:
parent
3349c366d3
commit
6fbfa829c9
@ -273,6 +273,11 @@ DISTFILES += \
|
|||||||
assets/qml/Dashboard/WidgetDelegate.qml \
|
assets/qml/Dashboard/WidgetDelegate.qml \
|
||||||
assets/qml/Dashboard/WidgetGrid.qml \
|
assets/qml/Dashboard/WidgetGrid.qml \
|
||||||
assets/qml/Dashboard/WidgetModel.qml \
|
assets/qml/Dashboard/WidgetModel.qml \
|
||||||
|
assets/qml/FramelessWindow/CustomWindow.qml \
|
||||||
|
assets/qml/FramelessWindow/ResizeHandles.qml \
|
||||||
|
assets/qml/FramelessWindow/WindowBorder.qml \
|
||||||
|
assets/qml/FramelessWindow/WindowButton.qml \
|
||||||
|
assets/qml/FramelessWindow/WindowButtonMacOS.qml \
|
||||||
assets/qml/JsonEditor/Footer.qml \
|
assets/qml/JsonEditor/Footer.qml \
|
||||||
assets/qml/JsonEditor/GroupEditor.qml \
|
assets/qml/JsonEditor/GroupEditor.qml \
|
||||||
assets/qml/JsonEditor/Header.qml \
|
assets/qml/JsonEditor/Header.qml \
|
||||||
@ -287,19 +292,15 @@ DISTFILES += \
|
|||||||
assets/qml/Panes/SetupPanes/Serial.qml \
|
assets/qml/Panes/SetupPanes/Serial.qml \
|
||||||
assets/qml/Panes/SetupPanes/Settings.qml \
|
assets/qml/Panes/SetupPanes/Settings.qml \
|
||||||
assets/qml/Panes/Toolbar.qml \
|
assets/qml/Panes/Toolbar.qml \
|
||||||
assets/qml/PlatformDependent/CustomWindow.qml \
|
|
||||||
assets/qml/PlatformDependent/DecentMenuItem.qml \
|
assets/qml/PlatformDependent/DecentMenuItem.qml \
|
||||||
assets/qml/PlatformDependent/Menubar.qml \
|
assets/qml/PlatformDependent/Menubar.qml \
|
||||||
assets/qml/PlatformDependent/MenubarMacOS.qml \
|
assets/qml/PlatformDependent/MenubarMacOS.qml \
|
||||||
assets/qml/PlatformDependent/WindowBorder.qml \
|
|
||||||
assets/qml/PlatformDependent/WindowButton.qml \
|
|
||||||
assets/qml/PlatformDependent/WindowButtonMacOS.qml \
|
|
||||||
assets/qml/Widgets/Icon.qml \
|
assets/qml/Widgets/Icon.qml \
|
||||||
assets/qml/Widgets/JSONDropArea.qml \
|
assets/qml/Widgets/JSONDropArea.qml \
|
||||||
assets/qml/Widgets/LED.qml \
|
assets/qml/Widgets/LED.qml \
|
||||||
assets/qml/Widgets/Shadow.qml \
|
assets/qml/Widgets/Shadow.qml \
|
||||||
assets/qml/Widgets/Window.qml \
|
|
||||||
assets/qml/Widgets/Terminal.qml \
|
assets/qml/Widgets/Terminal.qml \
|
||||||
|
assets/qml/Widgets/Window.qml \
|
||||||
assets/qml/Windows/About.qml \
|
assets/qml/Windows/About.qml \
|
||||||
assets/qml/Windows/Acknowledgements.qml \
|
assets/qml/Windows/Acknowledgements.qml \
|
||||||
assets/qml/Windows/CsvPlayer.qml \
|
assets/qml/Windows/CsvPlayer.qml \
|
||||||
@ -308,9 +309,9 @@ DISTFILES += \
|
|||||||
assets/qml/Windows/MainWindow.qml \
|
assets/qml/Windows/MainWindow.qml \
|
||||||
assets/qml/main.qml
|
assets/qml/main.qml
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------
|
||||||
# Deploy files
|
# Deploy files
|
||||||
#-------------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------------------
|
||||||
|
|
||||||
OTHER_FILES += \
|
OTHER_FILES += \
|
||||||
deploy/linux/* \
|
deploy/linux/* \
|
||||||
|
@ -60,6 +60,7 @@
|
|||||||
<file>icons/power.svg</file>
|
<file>icons/power.svg</file>
|
||||||
<file>icons/ram.svg</file>
|
<file>icons/ram.svg</file>
|
||||||
<file>icons/registration.svg</file>
|
<file>icons/registration.svg</file>
|
||||||
|
<file>icons/restore.svg</file>
|
||||||
<file>icons/right.svg</file>
|
<file>icons/right.svg</file>
|
||||||
<file>icons/save.svg</file>
|
<file>icons/save.svg</file>
|
||||||
<file>icons/schedule.svg</file>
|
<file>icons/schedule.svg</file>
|
||||||
@ -96,6 +97,11 @@
|
|||||||
<file>qml/Dashboard/WidgetDelegate.qml</file>
|
<file>qml/Dashboard/WidgetDelegate.qml</file>
|
||||||
<file>qml/Dashboard/WidgetGrid.qml</file>
|
<file>qml/Dashboard/WidgetGrid.qml</file>
|
||||||
<file>qml/Dashboard/WidgetModel.qml</file>
|
<file>qml/Dashboard/WidgetModel.qml</file>
|
||||||
|
<file>qml/FramelessWindow/CustomWindow.qml</file>
|
||||||
|
<file>qml/FramelessWindow/ResizeHandles.qml</file>
|
||||||
|
<file>qml/FramelessWindow/WindowBorder.qml</file>
|
||||||
|
<file>qml/FramelessWindow/WindowButton.qml</file>
|
||||||
|
<file>qml/FramelessWindow/WindowButtonMacOS.qml</file>
|
||||||
<file>qml/JsonEditor/Footer.qml</file>
|
<file>qml/JsonEditor/Footer.qml</file>
|
||||||
<file>qml/JsonEditor/GroupEditor.qml</file>
|
<file>qml/JsonEditor/GroupEditor.qml</file>
|
||||||
<file>qml/JsonEditor/Header.qml</file>
|
<file>qml/JsonEditor/Header.qml</file>
|
||||||
@ -133,10 +139,15 @@
|
|||||||
<file>touchbar/dashboard.png</file>
|
<file>touchbar/dashboard.png</file>
|
||||||
<file>touchbar/setup.png</file>
|
<file>touchbar/setup.png</file>
|
||||||
<file>translations/de.qm</file>
|
<file>translations/de.qm</file>
|
||||||
|
<file>translations/de.ts</file>
|
||||||
<file>translations/en.qm</file>
|
<file>translations/en.qm</file>
|
||||||
|
<file>translations/en.ts</file>
|
||||||
<file>translations/es.qm</file>
|
<file>translations/es.qm</file>
|
||||||
|
<file>translations/es.ts</file>
|
||||||
<file>translations/ru.qm</file>
|
<file>translations/ru.qm</file>
|
||||||
|
<file>translations/ru.ts</file>
|
||||||
<file>translations/zh.qm</file>
|
<file>translations/zh.qm</file>
|
||||||
|
<file>translations/zh.ts</file>
|
||||||
<file>window-border/macOS/close-active.svg</file>
|
<file>window-border/macOS/close-active.svg</file>
|
||||||
<file>window-border/macOS/close-hover.svg</file>
|
<file>window-border/macOS/close-hover.svg</file>
|
||||||
<file>window-border/macOS/close-normal.svg</file>
|
<file>window-border/macOS/close-normal.svg</file>
|
||||||
@ -146,16 +157,11 @@
|
|||||||
<file>window-border/macOS/minimize-active.svg</file>
|
<file>window-border/macOS/minimize-active.svg</file>
|
||||||
<file>window-border/macOS/minimize-hover.svg</file>
|
<file>window-border/macOS/minimize-hover.svg</file>
|
||||||
<file>window-border/macOS/minimize-normal.svg</file>
|
<file>window-border/macOS/minimize-normal.svg</file>
|
||||||
<file>qml/PlatformDependent/WindowBorder.qml</file>
|
|
||||||
<file>qml/PlatformDependent/WindowButton.qml</file>
|
|
||||||
<file>qml/PlatformDependent/CustomWindow.qml</file>
|
|
||||||
<file>icons/restore.svg</file>
|
|
||||||
<file>window-border/close.svg</file>
|
<file>window-border/close.svg</file>
|
||||||
|
<file>window-border/fullscreen.svg</file>
|
||||||
<file>window-border/maximize.svg</file>
|
<file>window-border/maximize.svg</file>
|
||||||
<file>window-border/minimize.svg</file>
|
<file>window-border/minimize.svg</file>
|
||||||
<file>window-border/unmaximize.svg</file>
|
|
||||||
<file>window-border/fullscreen.svg</file>
|
|
||||||
<file>window-border/restore.svg</file>
|
<file>window-border/restore.svg</file>
|
||||||
<file>qml/PlatformDependent/WindowButtonMacOS.qml</file>
|
<file>window-border/unmaximize.svg</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
@ -26,7 +26,7 @@ import QtQuick.Controls 2.12
|
|||||||
|
|
||||||
import SerialStudio 1.0
|
import SerialStudio 1.0
|
||||||
import "../Widgets" as Widgets
|
import "../Widgets" as Widgets
|
||||||
import "../PlatformDependent" as PlatformDependent
|
import "../FramelessWindow" as FramelessWindow
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
@ -60,7 +60,7 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PlatformDependent.CustomWindow {
|
FramelessWindow.CustomWindow {
|
||||||
id: externalWindow
|
id: externalWindow
|
||||||
minimumWidth: 640
|
minimumWidth: 640
|
||||||
minimumHeight: 480
|
minimumHeight: 480
|
||||||
@ -74,10 +74,10 @@ Item {
|
|||||||
id: externalLoader
|
id: externalLoader
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
isExternalWindow: true
|
isExternalWindow: true
|
||||||
anchors.margins: windowBorder
|
|
||||||
widgetIndex: root.widgetIndex
|
widgetIndex: root.widgetIndex
|
||||||
anchors.topMargin: titlebar.height
|
|
||||||
widgetVisible: externalWindow.visible
|
widgetVisible: externalWindow.visible
|
||||||
|
anchors.margins: externalWindow.margin
|
||||||
|
anchors.topMargin: externalWindow.titlebar.height
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
|
189
assets/qml/FramelessWindow/CustomWindow.qml
Normal file
189
assets/qml/FramelessWindow/CustomWindow.qml
Normal file
@ -0,0 +1,189 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2020-2021 Alex Spataru <https://github.com/alex-spataru>
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import QtQuick 2.12
|
||||||
|
import QtQuick.Window 2.12
|
||||||
|
import QtGraphicalEffects 1.0
|
||||||
|
|
||||||
|
Window {
|
||||||
|
id: root
|
||||||
|
color: "transparent"
|
||||||
|
flags: root.customFlags
|
||||||
|
|
||||||
|
//
|
||||||
|
// Custom signals
|
||||||
|
//
|
||||||
|
signal closed()
|
||||||
|
signal minimized()
|
||||||
|
signal maximized()
|
||||||
|
signal unmaximized()
|
||||||
|
|
||||||
|
//
|
||||||
|
// Window radius control
|
||||||
|
//
|
||||||
|
readonly property int handleSize: radius + 5 + margin
|
||||||
|
readonly property int radius: ((root.visibility === Window.Maximized && maximizeEnabled) || fullScreen) ? 0 : 10
|
||||||
|
|
||||||
|
//
|
||||||
|
// Visibility properties
|
||||||
|
//
|
||||||
|
property bool firstChange: true
|
||||||
|
property bool windowMaximized: false
|
||||||
|
property bool windowMinimized: false
|
||||||
|
property alias fullScreen: border.fullScreen
|
||||||
|
readonly property int customFlags: Qt.FramelessWindowHint |
|
||||||
|
Qt.WindowMinMaxButtonsHint
|
||||||
|
|
||||||
|
//
|
||||||
|
// Toggle fullscreen state
|
||||||
|
//
|
||||||
|
function toggleFullscreen() {
|
||||||
|
root.fullScreen = !root.fullScreen
|
||||||
|
if (root.fullScreen)
|
||||||
|
root.showFullScreen()
|
||||||
|
else
|
||||||
|
root.showNormal()
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Alias to the titlebar
|
||||||
|
//
|
||||||
|
property alias titlebar: border
|
||||||
|
|
||||||
|
//
|
||||||
|
// Background color of the window & the titlebar
|
||||||
|
//
|
||||||
|
property int margin: root.radius > 0 ? 10 : 0
|
||||||
|
property color borderColor: Cpp_ThemeManager.highlight
|
||||||
|
property color backgroundColor: Cpp_ThemeManager.window
|
||||||
|
property color titlebarText: Cpp_ThemeManager.brightText
|
||||||
|
property color titlebarColor: Cpp_ThemeManager.toolbarGradient2
|
||||||
|
|
||||||
|
//
|
||||||
|
// Window controls
|
||||||
|
//
|
||||||
|
property alias displayIcon: border.displayIcon
|
||||||
|
property alias closeEnabled: border.closeEnabled
|
||||||
|
property alias minimizeEnabled: border.minimizeEnabled
|
||||||
|
property alias maximizeEnabled: border.maximizeEnabled
|
||||||
|
property alias titlebarBorderEnabled: border.titlebarBorderEnabled
|
||||||
|
|
||||||
|
//
|
||||||
|
// Shadow implementation
|
||||||
|
//
|
||||||
|
RectangularGlow {
|
||||||
|
anchors.fill: bg
|
||||||
|
glowRadius: root.margin
|
||||||
|
color: Qt.rgba(0,0,0,0.1)
|
||||||
|
} Rectangle {
|
||||||
|
id: bg
|
||||||
|
color: "transparent"
|
||||||
|
radius: root.radius
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.margins: root.margin
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Window border
|
||||||
|
//
|
||||||
|
Rectangle {
|
||||||
|
z: 1000
|
||||||
|
opacity: 0.8
|
||||||
|
border.width: 1
|
||||||
|
radius: root.radius
|
||||||
|
color: "transparent"
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.margins: root.margin - 1
|
||||||
|
border.color: root.borderColor
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Titlebar control
|
||||||
|
//
|
||||||
|
WindowBorder {
|
||||||
|
id: border
|
||||||
|
window: root
|
||||||
|
radius: root.radius
|
||||||
|
color: root.titlebarColor
|
||||||
|
textColor: root.titlebarText
|
||||||
|
|
||||||
|
onClosed: root.closed()
|
||||||
|
onMinimized: root.minimized()
|
||||||
|
onMaximized: root.maximized()
|
||||||
|
onUnmaximized: root.unmaximized()
|
||||||
|
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
|
margins: root.margin
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Maximize window fixes
|
||||||
|
//
|
||||||
|
onVisibilityChanged: {
|
||||||
|
if (visibility === Window.Maximized) {
|
||||||
|
if (!root.windowMaximized)
|
||||||
|
root.firstChange = false
|
||||||
|
|
||||||
|
root.fullScreen = false
|
||||||
|
root.windowMaximized = true
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (visibility === Window.Minimized) {
|
||||||
|
root.fullScreen = false
|
||||||
|
root.windowMaximized = false
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (visibility === Window.FullScreen) {
|
||||||
|
if (!root.fullScreen)
|
||||||
|
root.firstChange = false
|
||||||
|
|
||||||
|
root.fullScreen = true
|
||||||
|
root.windowMaximized = false
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (visibility !== Window.Hidden) {
|
||||||
|
if (windowMaximized || fullScreen && firstChange) {
|
||||||
|
root.width = root.minimumWidth
|
||||||
|
root.height = root.minimumHeight
|
||||||
|
root.x = (Screen.desktopAvailableWidth - root.width) / 2
|
||||||
|
root.y = (Screen.desktopAvailableHeight - root.height) / 2
|
||||||
|
}
|
||||||
|
|
||||||
|
root.fullScreen = false
|
||||||
|
root.windowMaximized = false
|
||||||
|
root.flags = root.customFlags
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Resize handler
|
||||||
|
//
|
||||||
|
ResizeHandles {
|
||||||
|
window: root
|
||||||
|
anchors.fill: parent
|
||||||
|
handleSize: root.handleSize
|
||||||
|
}
|
||||||
|
}
|
@ -23,117 +23,31 @@
|
|||||||
import QtQuick 2.12
|
import QtQuick 2.12
|
||||||
import QtQuick.Window 2.12
|
import QtQuick.Window 2.12
|
||||||
|
|
||||||
Window {
|
Item {
|
||||||
id: root
|
id: root
|
||||||
color: "transparent"
|
|
||||||
flags: root.customFlags
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Window radius control
|
// Pointer to window to control
|
||||||
//
|
//
|
||||||
readonly property int windowBorder: radius + 5
|
property Window window
|
||||||
property int radius: ((root.visibility === Window.Maximized && maximizeEnabled) || fullScreen) ? 0 : 10
|
property int handleSize
|
||||||
|
|
||||||
//
|
//
|
||||||
// Visibility properties
|
// Disable handles if window size is fixed or window is maximized
|
||||||
//
|
//
|
||||||
property bool firstChange: true
|
enabled: ((window.minimumWidth !== window.maximumWidth) ||
|
||||||
property bool windowMaximized: false
|
(window.minimumHeight !== window.maximumHeight)) &&
|
||||||
property alias fullScreen: border.fullScreen
|
(window.visibility !== Window.Maximized)
|
||||||
readonly property int customFlags: Qt.Dialog |
|
|
||||||
Qt.FramelessWindowHint
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Toggle fullscreen state
|
// Global mouse area to fix cursor shape while resizing
|
||||||
//
|
//
|
||||||
function toggleFullscreen() {
|
MouseArea {
|
||||||
root.fullScreen = !root.fullScreen
|
z: 1000
|
||||||
if (root.fullScreen)
|
id: globalMouseArea
|
||||||
root.showFullScreen()
|
|
||||||
else
|
|
||||||
root.showNormal()
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Alias to the titlebar
|
|
||||||
//
|
|
||||||
property alias titlebar: border
|
|
||||||
|
|
||||||
//
|
|
||||||
// Background color of the window & the titlebar
|
|
||||||
//
|
|
||||||
property color backgroundColor: Cpp_ThemeManager.window
|
|
||||||
property color titlebarText: Cpp_ThemeManager.brightText
|
|
||||||
property color titlebarColor: Cpp_ThemeManager.toolbarGradient2
|
|
||||||
|
|
||||||
//
|
|
||||||
// Window controls
|
|
||||||
//
|
|
||||||
property alias closeEnabled: border.closeEnabled
|
|
||||||
property alias minimizeEnabled: border.minimizeEnabled
|
|
||||||
property alias maximizeEnabled: border.maximizeEnabled
|
|
||||||
property alias fullscreenEnabled: border.fullscreenEnabled
|
|
||||||
property alias titlebarBorderEnabled: border.titlebarBorderEnabled
|
|
||||||
|
|
||||||
//
|
|
||||||
// Background color implementation
|
|
||||||
//
|
|
||||||
Rectangle {
|
|
||||||
radius: root.radius
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
color: root.backgroundColor
|
acceptedButtons: Qt.NoButton
|
||||||
}
|
anchors.margins: root.handleSize
|
||||||
|
|
||||||
//
|
|
||||||
// Titlebar control
|
|
||||||
//
|
|
||||||
WindowBorder {
|
|
||||||
id: border
|
|
||||||
window: root
|
|
||||||
radius: root.radius
|
|
||||||
color: root.titlebarColor
|
|
||||||
textColor: root.titlebarText
|
|
||||||
|
|
||||||
anchors {
|
|
||||||
top: parent.top
|
|
||||||
left: parent.left
|
|
||||||
right: parent.right
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//
|
|
||||||
// Maximize window fixes
|
|
||||||
//
|
|
||||||
onVisibilityChanged: {
|
|
||||||
if (visibility === Window.Maximized) {
|
|
||||||
if (!root.windowMaximized)
|
|
||||||
root.firstChange = false
|
|
||||||
|
|
||||||
root.windowMaximized = true
|
|
||||||
root.fullScreen = false
|
|
||||||
root.flags = root.customFlags
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (visibility === Window.FullScreen) {
|
|
||||||
if (!root.fullScreen)
|
|
||||||
root.firstChange = false
|
|
||||||
|
|
||||||
root.windowMaximized = false
|
|
||||||
root.fullScreen = true
|
|
||||||
}
|
|
||||||
|
|
||||||
else if (visibility !== Window.Hidden) {
|
|
||||||
if (windowMaximized || fullScreen && firstChange) {
|
|
||||||
root.x = 100
|
|
||||||
root.y = 100
|
|
||||||
root.width = root.minimumWidth
|
|
||||||
root.height = root.minimumHeight
|
|
||||||
}
|
|
||||||
|
|
||||||
root.fullScreen = false
|
|
||||||
root.windowMaximized = false
|
|
||||||
root.flags = root.customFlags
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -143,6 +57,9 @@ Window {
|
|||||||
property bool dragging: false
|
property bool dragging: false
|
||||||
property point lastMousePos: Qt.point(0, 0)
|
property point lastMousePos: Qt.point(0, 0)
|
||||||
|
|
||||||
|
onDraggingChanged: globalMouseArea.cursorShape = dragging ? cursorShape :
|
||||||
|
Qt.ArrowCursor
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
bottom: parent.bottom
|
bottom: parent.bottom
|
||||||
@ -151,7 +68,7 @@ Window {
|
|||||||
}
|
}
|
||||||
|
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
width: windowBorder
|
width: handleSize
|
||||||
cursorShape: Qt.SizeHorCursor
|
cursorShape: Qt.SizeHorCursor
|
||||||
onPressedChanged: dragging = pressed
|
onPressedChanged: dragging = pressed
|
||||||
onPressed: lastMousePos = Qt.point(mouseX, mouseY)
|
onPressed: lastMousePos = Qt.point(mouseX, mouseY)
|
||||||
@ -159,7 +76,13 @@ Window {
|
|||||||
onMouseXChanged: {
|
onMouseXChanged: {
|
||||||
if (dragging) {
|
if (dragging) {
|
||||||
var dx = mouseX + lastMousePos.x
|
var dx = mouseX + lastMousePos.x
|
||||||
root.width += dx
|
var width = window.width + dx
|
||||||
|
if (width < window.minimumWidth)
|
||||||
|
width = window.minimumWidth
|
||||||
|
else if (width > window.maximumWidth)
|
||||||
|
width = window.maximumWidth
|
||||||
|
|
||||||
|
window.setGeometry(window.x, window.y, width, window.height)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -171,6 +94,9 @@ Window {
|
|||||||
property bool dragging: false
|
property bool dragging: false
|
||||||
property point lastMousePos: Qt.point(0, 0)
|
property point lastMousePos: Qt.point(0, 0)
|
||||||
|
|
||||||
|
onDraggingChanged: globalMouseArea.cursorShape = dragging ? cursorShape :
|
||||||
|
Qt.ArrowCursor
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
left: parent.left
|
left: parent.left
|
||||||
@ -179,7 +105,7 @@ Window {
|
|||||||
}
|
}
|
||||||
|
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
width: windowBorder
|
width: handleSize
|
||||||
cursorShape: Qt.SizeHorCursor
|
cursorShape: Qt.SizeHorCursor
|
||||||
onPressedChanged: dragging = pressed
|
onPressedChanged: dragging = pressed
|
||||||
onPressed: lastMousePos = Qt.point(mouseX, mouseY)
|
onPressed: lastMousePos = Qt.point(mouseX, mouseY)
|
||||||
@ -187,29 +113,27 @@ Window {
|
|||||||
onMouseXChanged: {
|
onMouseXChanged: {
|
||||||
if (dragging) {
|
if (dragging) {
|
||||||
var dx = mouseX - lastMousePos.x
|
var dx = mouseX - lastMousePos.x
|
||||||
var y = root.y
|
var y = window.y
|
||||||
var x = root.x + dx
|
var x = window.x + dx
|
||||||
var height = root.height
|
var height = window.height
|
||||||
var width = root.width - dx
|
var width = window.width - dx
|
||||||
|
|
||||||
if (x > root.x)
|
if (x > window.x) {
|
||||||
width = root.width - dx / 2
|
width = window.width - dx / 2
|
||||||
|
if (width < window.minimumWidth) {
|
||||||
root.setGeometry(x, y, width, height)
|
width = window.minimumWidth
|
||||||
|
x = window.x
|
||||||
}
|
}
|
||||||
|
|
||||||
|
else if (width > window.maximumWidth) {
|
||||||
|
width = window.maximumWidth
|
||||||
|
x = window.x
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
window.setGeometry(x, y, width, height)
|
||||||
// Background color implementation
|
}
|
||||||
//
|
}
|
||||||
Rectangle {
|
|
||||||
z: 100
|
|
||||||
border.width: 0
|
|
||||||
color: "transparent"
|
|
||||||
border.color: "#000"
|
|
||||||
radius: root.radius
|
|
||||||
anchors.fill: parent
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -219,6 +143,9 @@ Window {
|
|||||||
property bool dragging: false
|
property bool dragging: false
|
||||||
property point lastMousePos: Qt.point(0, 0)
|
property point lastMousePos: Qt.point(0, 0)
|
||||||
|
|
||||||
|
onDraggingChanged: globalMouseArea.cursorShape = dragging ? cursorShape :
|
||||||
|
Qt.ArrowCursor
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
left: parent.left
|
left: parent.left
|
||||||
right: parent.right
|
right: parent.right
|
||||||
@ -226,14 +153,20 @@ Window {
|
|||||||
}
|
}
|
||||||
|
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
height: windowBorder
|
height: handleSize
|
||||||
cursorShape: Qt.SizeVerCursor
|
cursorShape: Qt.SizeVerCursor
|
||||||
onPressedChanged: dragging = pressed
|
onPressedChanged: dragging = pressed
|
||||||
onPressed: lastMousePos = Qt.point(mouseX, mouseY)
|
onPressed: lastMousePos = Qt.point(mouseX, mouseY)
|
||||||
onMouseYChanged: {
|
onMouseYChanged: {
|
||||||
if (dragging) {
|
if (dragging) {
|
||||||
var dy = mouseY - lastMousePos.y
|
var dy = mouseY - lastMousePos.y
|
||||||
root.height += dy
|
var height = window.height + dy
|
||||||
|
if (height < minimumHeight)
|
||||||
|
height = minimumHeight
|
||||||
|
else if (height > maximumHeight)
|
||||||
|
height = maximumHeight
|
||||||
|
|
||||||
|
window.setGeometry(window.x, window.y, window.width, height)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -245,13 +178,27 @@ Window {
|
|||||||
property bool dragging: false
|
property bool dragging: false
|
||||||
property point lastMousePos: Qt.point(0, 0)
|
property point lastMousePos: Qt.point(0, 0)
|
||||||
|
|
||||||
|
onDraggingChanged: globalMouseArea.cursorShape = dragging ? cursorShape :
|
||||||
|
Qt.ArrowCursor
|
||||||
|
|
||||||
function updateWindowPosition() {
|
function updateWindowPosition() {
|
||||||
if (dragging) {
|
if (dragging) {
|
||||||
var dy = mouseY - lastMousePos.y
|
var dy = mouseY - lastMousePos.y
|
||||||
var dx = mouseX + lastMousePos.x
|
var dx = mouseX + lastMousePos.x
|
||||||
|
var width = window.width + dx
|
||||||
|
var height = window.height + dy
|
||||||
|
|
||||||
root.width += dx
|
if (width < window.minimumWidth)
|
||||||
root.height += dy
|
width = window.minimumWidth
|
||||||
|
else if (width > window.maximumWidth)
|
||||||
|
width = window.maximumWidth
|
||||||
|
|
||||||
|
if (height < minimumHeight)
|
||||||
|
height = minimumHeight
|
||||||
|
else if (height > maximumHeight)
|
||||||
|
height = maximumHeight
|
||||||
|
|
||||||
|
window.setGeometry(window.x, window.y, width, height)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -261,8 +208,8 @@ Window {
|
|||||||
}
|
}
|
||||||
|
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
width: windowBorder
|
width: handleSize
|
||||||
height: windowBorder
|
height: handleSize
|
||||||
cursorShape: Qt.SizeFDiagCursor
|
cursorShape: Qt.SizeFDiagCursor
|
||||||
onPressedChanged: dragging = pressed
|
onPressedChanged: dragging = pressed
|
||||||
onMouseXChanged: updateWindowPosition()
|
onMouseXChanged: updateWindowPosition()
|
||||||
@ -276,20 +223,38 @@ Window {
|
|||||||
property bool dragging: false
|
property bool dragging: false
|
||||||
property point lastMousePos: Qt.point(0, 0)
|
property point lastMousePos: Qt.point(0, 0)
|
||||||
|
|
||||||
|
onDraggingChanged: globalMouseArea.cursorShape = dragging ? cursorShape :
|
||||||
|
Qt.ArrowCursor
|
||||||
|
|
||||||
function updateWindowPosition() {
|
function updateWindowPosition() {
|
||||||
if (dragging) {
|
if (dragging) {
|
||||||
var dx = mouseX - lastMousePos.x
|
var dx = mouseX - lastMousePos.x
|
||||||
var dy = mouseY - lastMousePos.y
|
var dy = mouseY - lastMousePos.y
|
||||||
|
|
||||||
var y = root.y
|
var y = window.y
|
||||||
var x = root.x + dx
|
var x = window.x + dx
|
||||||
var width = root.width - dx
|
var width = window.width - dx
|
||||||
var height = root.height + dy
|
var height = window.height + dy
|
||||||
|
|
||||||
if (x > root.x)
|
if (x > window.x)
|
||||||
width = root.width - dx / 2
|
width = window.width - dx / 2
|
||||||
|
|
||||||
root.setGeometry(x, y, width, height)
|
if (width < window.minimumWidth) {
|
||||||
|
width = window.minimumWidth
|
||||||
|
x = window.x
|
||||||
|
}
|
||||||
|
|
||||||
|
else if (width > window.maximumWidth) {
|
||||||
|
width = window.maximumWidth
|
||||||
|
x = window.x
|
||||||
|
}
|
||||||
|
|
||||||
|
if (height < minimumHeight)
|
||||||
|
height = minimumHeight
|
||||||
|
else if (height > maximumHeight)
|
||||||
|
height = maximumHeight
|
||||||
|
|
||||||
|
window.setGeometry(x, y, width, height)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -299,8 +264,8 @@ Window {
|
|||||||
}
|
}
|
||||||
|
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
width: windowBorder
|
width: root.handleSize
|
||||||
height: windowBorder
|
height: root.handleSize
|
||||||
cursorShape: Qt.SizeBDiagCursor
|
cursorShape: Qt.SizeBDiagCursor
|
||||||
onPressedChanged: dragging = pressed
|
onPressedChanged: dragging = pressed
|
||||||
onMouseXChanged: updateWindowPosition()
|
onMouseXChanged: updateWindowPosition()
|
@ -30,6 +30,14 @@ import "../Widgets" as Widgets
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
|
//
|
||||||
|
// Custom signals
|
||||||
|
//
|
||||||
|
signal closed()
|
||||||
|
signal minimized()
|
||||||
|
signal maximized()
|
||||||
|
signal unmaximized()
|
||||||
|
|
||||||
//
|
//
|
||||||
// Window controls
|
// Window controls
|
||||||
//
|
//
|
||||||
@ -38,18 +46,24 @@ Rectangle {
|
|||||||
property bool closeEnabled: true
|
property bool closeEnabled: true
|
||||||
property bool minimizeEnabled: true
|
property bool minimizeEnabled: true
|
||||||
property bool maximizeEnabled: true
|
property bool maximizeEnabled: true
|
||||||
property bool fullscreenEnabled: true
|
property bool displayIcon: true
|
||||||
property bool titlebarBorderEnabled: true
|
property bool titlebarBorderEnabled: true
|
||||||
property color textColor: palette.text
|
property color textColor: palette.text
|
||||||
|
readonly property bool showMacControls: Cpp_IsMac
|
||||||
|
|
||||||
//
|
//
|
||||||
// Toggle maximized
|
// Toggle maximized
|
||||||
//
|
//
|
||||||
function toggleMaximized() {
|
function toggleMaximized() {
|
||||||
if (window.visibility === Window.Maximized)
|
if (window.visibility === Window.Maximized) {
|
||||||
window.showNormal()
|
window.showNormal()
|
||||||
else
|
root.unmaximized()
|
||||||
|
}
|
||||||
|
|
||||||
|
else {
|
||||||
window.showMaximized()
|
window.showMaximized()
|
||||||
|
root.maximized()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -66,7 +80,7 @@ Rectangle {
|
|||||||
//
|
//
|
||||||
// Height calculation
|
// Height calculation
|
||||||
//
|
//
|
||||||
height: !Cpp_IsMac ? 38 : 32
|
height: !showMacControls ? 38 : 32
|
||||||
|
|
||||||
//
|
//
|
||||||
// Radius compensator rectangle
|
// Radius compensator rectangle
|
||||||
@ -111,13 +125,25 @@ Rectangle {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Window maximize by double click
|
||||||
|
//
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
acceptedButtons: Qt.LeftButton
|
||||||
|
onDoubleClicked: {
|
||||||
|
if (root.maximizeEnabled)
|
||||||
|
root.toggleMaximized()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// macOS layout
|
// macOS layout
|
||||||
//
|
//
|
||||||
Item {
|
Item {
|
||||||
visible: Cpp_IsMac
|
|
||||||
enabled: Cpp_IsMac
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
visible: showMacControls
|
||||||
|
enabled: showMacControls
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
spacing: 0
|
spacing: 0
|
||||||
@ -129,18 +155,25 @@ Rectangle {
|
|||||||
|
|
||||||
WindowButtonMacOS {
|
WindowButtonMacOS {
|
||||||
name: "close"
|
name: "close"
|
||||||
onClicked: window.close()
|
|
||||||
enabled: root.closeEnabled
|
enabled: root.closeEnabled
|
||||||
visible: root.closeEnabled
|
visible: root.closeEnabled
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
onClicked: {
|
||||||
|
window.close()
|
||||||
|
root.closed()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WindowButtonMacOS {
|
WindowButtonMacOS {
|
||||||
name: "minimize"
|
name: "minimize"
|
||||||
onClicked: window.showMinimized()
|
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
enabled: root.minimizeEnabled && !root.fullScreen
|
enabled: root.minimizeEnabled && !root.fullScreen
|
||||||
visible: root.minimizeEnabled && !root.fullScreen
|
visible: root.minimizeEnabled && !root.fullScreen
|
||||||
|
onClicked: {
|
||||||
|
window.showMinimized()
|
||||||
|
root.minimized()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WindowButtonMacOS {
|
WindowButtonMacOS {
|
||||||
@ -154,22 +187,6 @@ Rectangle {
|
|||||||
Item {
|
Item {
|
||||||
Layout.fillWidth: true
|
Layout.fillWidth: true
|
||||||
}
|
}
|
||||||
|
|
||||||
WindowButton {
|
|
||||||
width: 18
|
|
||||||
height: 18
|
|
||||||
textColor: root.textColor
|
|
||||||
visible: root.fullscreenEnabled
|
|
||||||
enabled: root.fullscreenEnabled
|
|
||||||
Layout.alignment: Qt.AlignVCenter
|
|
||||||
onClicked: root.toggleFullscreen()
|
|
||||||
highlightColor: Cpp_ThemeManager.highlight
|
|
||||||
name: root.fullScreen ? "restore" : "fullscreen"
|
|
||||||
}
|
|
||||||
|
|
||||||
Item {
|
|
||||||
width: 8
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -177,9 +194,9 @@ Rectangle {
|
|||||||
// Windows & Linux layout
|
// Windows & Linux layout
|
||||||
//
|
//
|
||||||
Item {
|
Item {
|
||||||
visible: !Cpp_IsMac
|
|
||||||
enabled: !Cpp_IsMac
|
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
visible: !showMacControls
|
||||||
|
enabled: !showMacControls
|
||||||
|
|
||||||
RowLayout {
|
RowLayout {
|
||||||
spacing: 0
|
spacing: 0
|
||||||
@ -191,12 +208,11 @@ Rectangle {
|
|||||||
|
|
||||||
WindowButton {
|
WindowButton {
|
||||||
textColor: root.textColor
|
textColor: root.textColor
|
||||||
visible: root.fullscreenEnabled
|
visible: root.displayIcon
|
||||||
enabled: root.fullscreenEnabled
|
enabled: root.displayIcon
|
||||||
|
source: "qrc:/images/icon.svg"
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
onClicked: root.toggleFullscreen()
|
|
||||||
highlightColor: Cpp_ThemeManager.highlight
|
highlightColor: Cpp_ThemeManager.highlight
|
||||||
name: root.fullScreen ? "restore" : "fullscreen"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
@ -206,11 +222,14 @@ Rectangle {
|
|||||||
WindowButton {
|
WindowButton {
|
||||||
name: "minimize"
|
name: "minimize"
|
||||||
textColor: root.textColor
|
textColor: root.textColor
|
||||||
onClicked: window.showMinimized()
|
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
highlightColor: Cpp_ThemeManager.highlight
|
highlightColor: Cpp_ThemeManager.highlight
|
||||||
enabled: root.minimizeEnabled && !root.fullScreen
|
enabled: root.minimizeEnabled && !root.fullScreen
|
||||||
visible: root.minimizeEnabled && !root.fullScreen
|
visible: root.minimizeEnabled && !root.fullScreen
|
||||||
|
onClicked: {
|
||||||
|
window.showMinimized()
|
||||||
|
root.minimized()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
WindowButton {
|
WindowButton {
|
||||||
@ -226,11 +245,15 @@ Rectangle {
|
|||||||
WindowButton {
|
WindowButton {
|
||||||
name: "close"
|
name: "close"
|
||||||
highlightColor: "#f00"
|
highlightColor: "#f00"
|
||||||
onClicked: window.close()
|
|
||||||
textColor: root.textColor
|
textColor: root.textColor
|
||||||
enabled: root.closeEnabled
|
enabled: root.closeEnabled
|
||||||
visible: root.closeEnabled
|
visible: root.closeEnabled
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
onClicked: {
|
||||||
|
window.close()
|
||||||
|
root.closed()
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Item {
|
Item {
|
@ -27,6 +27,7 @@ import "../Widgets" as Widgets
|
|||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: root
|
id: root
|
||||||
|
radius: jsonEditor.radius
|
||||||
height: footer.implicitHeight + 4 * app.spacing
|
height: footer.implicitHeight + 4 * app.spacing
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -96,7 +96,6 @@ Item {
|
|||||||
title: qsTr("Console")
|
title: qsTr("Console")
|
||||||
headerDoubleClickEnabled: false
|
headerDoubleClickEnabled: false
|
||||||
icon.source: "qrc:/icons/code.svg"
|
icon.source: "qrc:/icons/code.svg"
|
||||||
anchors.topMargin: app.spacing * 1.5
|
|
||||||
anchors.margins: (app.spacing * 1.5) - 5
|
anchors.margins: (app.spacing * 1.5) - 5
|
||||||
backgroundColor: Cpp_ThemeManager.paneWindowBackground
|
backgroundColor: Cpp_ThemeManager.paneWindowBackground
|
||||||
|
|
||||||
|
@ -41,7 +41,6 @@ Item {
|
|||||||
ColumnLayout {
|
ColumnLayout {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
spacing: app.spacing * 2
|
spacing: app.spacing * 2
|
||||||
anchors.topMargin: app.spacing * 1.5
|
|
||||||
anchors.margins: (app.spacing * 1.5) - 5
|
anchors.margins: (app.spacing * 1.5) - 5
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -146,7 +146,6 @@ Item {
|
|||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.leftMargin: 0
|
anchors.leftMargin: 0
|
||||||
headerDoubleClickEnabled: false
|
headerDoubleClickEnabled: false
|
||||||
anchors.topMargin: app.spacing * 1.5
|
|
||||||
icon.source: "qrc:/icons/settings.svg"
|
icon.source: "qrc:/icons/settings.svg"
|
||||||
anchors.margins: (app.spacing * 1.5) - 5
|
anchors.margins: (app.spacing * 1.5) - 5
|
||||||
backgroundColor: Cpp_ThemeManager.paneWindowBackground
|
backgroundColor: Cpp_ThemeManager.paneWindowBackground
|
||||||
|
@ -25,9 +25,9 @@ import QtQuick.Window 2.12
|
|||||||
import QtQuick.Layouts 1.12
|
import QtQuick.Layouts 1.12
|
||||||
import QtQuick.Controls 2.12
|
import QtQuick.Controls 2.12
|
||||||
|
|
||||||
import "../PlatformDependent" as PlatformDependent
|
import "../FramelessWindow" as FramelessWindow
|
||||||
|
|
||||||
PlatformDependent.CustomWindow {
|
FramelessWindow.CustomWindow {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -43,17 +43,17 @@ PlatformDependent.CustomWindow {
|
|||||||
height: minimumHeight
|
height: minimumHeight
|
||||||
x: (Screen.desktopAvailableWidth - width) / 2
|
x: (Screen.desktopAvailableWidth - width) / 2
|
||||||
y: (Screen.desktopAvailableHeight - height) / 2
|
y: (Screen.desktopAvailableHeight - height) / 2
|
||||||
minimumWidth: column.implicitWidth + 4 * app.spacing
|
minimumWidth: column.implicitWidth + 4 * app.spacing + 2 * root.margin
|
||||||
maximumWidth: column.implicitWidth + 4 * app.spacing
|
maximumWidth: column.implicitWidth + 4 * app.spacing + 2 * root.margin
|
||||||
minimumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height
|
minimumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height + 2 * root.margin
|
||||||
maximumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height
|
maximumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height + 2 * root.margin
|
||||||
|
|
||||||
//
|
//
|
||||||
// Titlebar options
|
// Titlebar options
|
||||||
//
|
//
|
||||||
minimizeEnabled: false
|
minimizeEnabled: false
|
||||||
maximizeEnabled: false
|
maximizeEnabled: false
|
||||||
fullscreenEnabled: false
|
displayIcon: false
|
||||||
titlebarBorderEnabled: false
|
titlebarBorderEnabled: false
|
||||||
titlebarText: Cpp_ThemeManager.text
|
titlebarText: Cpp_ThemeManager.text
|
||||||
titlebarColor: Cpp_ThemeManager.dialogBackground
|
titlebarColor: Cpp_ThemeManager.dialogBackground
|
||||||
@ -65,8 +65,8 @@ PlatformDependent.CustomWindow {
|
|||||||
Page {
|
Page {
|
||||||
anchors {
|
anchors {
|
||||||
fill: parent
|
fill: parent
|
||||||
margins: 0
|
margins: root.margin
|
||||||
topMargin: titlebar.height
|
topMargin: titlebar.height + root.margin
|
||||||
}
|
}
|
||||||
|
|
||||||
palette.text: Cpp_ThemeManager.text
|
palette.text: Cpp_ThemeManager.text
|
||||||
@ -74,7 +74,19 @@ PlatformDependent.CustomWindow {
|
|||||||
palette.windowText: Cpp_ThemeManager.text
|
palette.windowText: Cpp_ThemeManager.text
|
||||||
palette.window: Cpp_ThemeManager.dialogBackground
|
palette.window: Cpp_ThemeManager.dialogBackground
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: "transparent"
|
radius: root.radius
|
||||||
|
color: root.backgroundColor
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
height: root.radius
|
||||||
|
color: root.backgroundColor
|
||||||
|
|
||||||
|
anchors {
|
||||||
|
top: parent.top
|
||||||
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -25,9 +25,9 @@ import QtQuick.Window 2.12
|
|||||||
import QtQuick.Layouts 1.12
|
import QtQuick.Layouts 1.12
|
||||||
import QtQuick.Controls 2.12
|
import QtQuick.Controls 2.12
|
||||||
|
|
||||||
import "../PlatformDependent" as PlatformDependent
|
import "../FramelessWindow" as FramelessWindow
|
||||||
|
|
||||||
PlatformDependent.CustomWindow {
|
FramelessWindow.CustomWindow {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -38,34 +38,46 @@ PlatformDependent.CustomWindow {
|
|||||||
height: minimumHeight
|
height: minimumHeight
|
||||||
minimizeEnabled: false
|
minimizeEnabled: false
|
||||||
maximizeEnabled: false
|
maximizeEnabled: false
|
||||||
fullscreenEnabled: false
|
displayIcon: false
|
||||||
titlebarBorderEnabled: false
|
titlebarBorderEnabled: false
|
||||||
titlebarText: Cpp_ThemeManager.text
|
titlebarText: Cpp_ThemeManager.text
|
||||||
x: (Screen.desktopAvailableWidth - width) / 2
|
x: (Screen.desktopAvailableWidth - width) / 2
|
||||||
y: (Screen.desktopAvailableHeight - height) / 2
|
y: (Screen.desktopAvailableHeight - height) / 2
|
||||||
titlebarColor: Cpp_ThemeManager.dialogBackground
|
titlebarColor: Cpp_ThemeManager.dialogBackground
|
||||||
backgroundColor: Cpp_ThemeManager.dialogBackground
|
backgroundColor: Cpp_ThemeManager.dialogBackground
|
||||||
minimumWidth: column.implicitWidth + 4 * app.spacing
|
minimumWidth: column.implicitWidth + 4 * app.spacing + 2 * root.margin
|
||||||
maximumWidth: column.implicitWidth + 4 * app.spacing
|
maximumWidth: column.implicitWidth + 4 * app.spacing + 2 * root.margin
|
||||||
minimumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height
|
minimumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height + 2 * root.margin
|
||||||
maximumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height
|
maximumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height + 2 * root.margin
|
||||||
|
|
||||||
//
|
//
|
||||||
// Use page item to set application palette
|
// Use page item to set application palette
|
||||||
//
|
//
|
||||||
Page {
|
Page {
|
||||||
|
anchors {
|
||||||
|
fill: parent
|
||||||
|
margins: root.margin
|
||||||
|
topMargin: titlebar.height + root.margin
|
||||||
|
}
|
||||||
|
|
||||||
palette.text: Cpp_ThemeManager.text
|
palette.text: Cpp_ThemeManager.text
|
||||||
palette.buttonText: Cpp_ThemeManager.text
|
palette.buttonText: Cpp_ThemeManager.text
|
||||||
palette.windowText: Cpp_ThemeManager.text
|
palette.windowText: Cpp_ThemeManager.text
|
||||||
palette.window: Cpp_ThemeManager.dialogBackground
|
palette.window: Cpp_ThemeManager.dialogBackground
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: "transparent"
|
radius: root.radius
|
||||||
}
|
color: root.backgroundColor
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
height: root.radius
|
||||||
|
color: root.backgroundColor
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
fill: parent
|
top: parent.top
|
||||||
margins: 0
|
left: parent.left
|
||||||
topMargin: titlebar.height
|
right: parent.right
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -25,9 +25,9 @@ import QtQuick.Window 2.12
|
|||||||
import QtQuick.Layouts 1.12
|
import QtQuick.Layouts 1.12
|
||||||
import QtQuick.Controls 2.12
|
import QtQuick.Controls 2.12
|
||||||
|
|
||||||
import "../PlatformDependent" as PlatformDependent
|
import "../FramelessWindow" as FramelessWindow
|
||||||
|
|
||||||
PlatformDependent.CustomWindow {
|
FramelessWindow.CustomWindow {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -38,17 +38,17 @@ PlatformDependent.CustomWindow {
|
|||||||
height: minimumHeight
|
height: minimumHeight
|
||||||
minimizeEnabled: false
|
minimizeEnabled: false
|
||||||
maximizeEnabled: false
|
maximizeEnabled: false
|
||||||
fullscreenEnabled: false
|
displayIcon: false
|
||||||
titlebarBorderEnabled: false
|
titlebarBorderEnabled: false
|
||||||
titlebarText: Cpp_ThemeManager.text
|
titlebarText: Cpp_ThemeManager.text
|
||||||
x: (Screen.desktopAvailableWidth - width) / 2
|
x: (Screen.desktopAvailableWidth - width) / 2
|
||||||
y: (Screen.desktopAvailableHeight - height) / 2
|
y: (Screen.desktopAvailableHeight - height) / 2
|
||||||
titlebarColor: Cpp_ThemeManager.dialogBackground
|
titlebarColor: Cpp_ThemeManager.dialogBackground
|
||||||
backgroundColor: Cpp_ThemeManager.dialogBackground
|
backgroundColor: Cpp_ThemeManager.dialogBackground
|
||||||
minimumWidth: column.implicitWidth + 4 * app.spacing
|
minimumWidth: column.implicitWidth + 4 * app.spacing + 2 * root.margin
|
||||||
maximumWidth: column.implicitWidth + 4 * app.spacing
|
maximumWidth: column.implicitWidth + 4 * app.spacing + 2 * root.margin
|
||||||
minimumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height
|
minimumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height + 2 * root.margin
|
||||||
maximumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height
|
maximumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height + 2 * root.margin
|
||||||
|
|
||||||
//
|
//
|
||||||
// Close CSV file when window is closed
|
// Close CSV file when window is closed
|
||||||
@ -62,18 +62,30 @@ PlatformDependent.CustomWindow {
|
|||||||
// Use page item to set application palette
|
// Use page item to set application palette
|
||||||
//
|
//
|
||||||
Page {
|
Page {
|
||||||
|
anchors {
|
||||||
|
fill: parent
|
||||||
|
margins: root.margin
|
||||||
|
topMargin: titlebar.height + root.margin
|
||||||
|
}
|
||||||
|
|
||||||
palette.text: Cpp_ThemeManager.text
|
palette.text: Cpp_ThemeManager.text
|
||||||
palette.buttonText: Cpp_ThemeManager.text
|
palette.buttonText: Cpp_ThemeManager.text
|
||||||
palette.windowText: Cpp_ThemeManager.text
|
palette.windowText: Cpp_ThemeManager.text
|
||||||
palette.window: Cpp_ThemeManager.dialogBackground
|
palette.window: Cpp_ThemeManager.dialogBackground
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: "transparent"
|
radius: root.radius
|
||||||
}
|
color: root.backgroundColor
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
height: root.radius
|
||||||
|
color: root.backgroundColor
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
fill: parent
|
top: parent.top
|
||||||
margins: 0
|
left: parent.left
|
||||||
topMargin: titlebar.height
|
right: parent.right
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -26,9 +26,9 @@ import QtQuick.Layouts 1.12
|
|||||||
import QtQuick.Controls 2.12
|
import QtQuick.Controls 2.12
|
||||||
|
|
||||||
import Qt.labs.settings 1.0
|
import Qt.labs.settings 1.0
|
||||||
import "../PlatformDependent" as PlatformDependent
|
import "../FramelessWindow" as FramelessWindow
|
||||||
|
|
||||||
PlatformDependent.CustomWindow {
|
FramelessWindow.CustomWindow {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -39,17 +39,17 @@ PlatformDependent.CustomWindow {
|
|||||||
height: minimumHeight
|
height: minimumHeight
|
||||||
minimizeEnabled: false
|
minimizeEnabled: false
|
||||||
maximizeEnabled: false
|
maximizeEnabled: false
|
||||||
fullscreenEnabled: false
|
displayIcon: false
|
||||||
titlebarBorderEnabled: false
|
titlebarBorderEnabled: false
|
||||||
titlebarText: Cpp_ThemeManager.text
|
titlebarText: Cpp_ThemeManager.text
|
||||||
x: (Screen.desktopAvailableWidth - width) / 2
|
x: (Screen.desktopAvailableWidth - width) / 2
|
||||||
y: (Screen.desktopAvailableHeight - height) / 2
|
y: (Screen.desktopAvailableHeight - height) / 2
|
||||||
titlebarColor: Cpp_ThemeManager.dialogBackground
|
titlebarColor: Cpp_ThemeManager.dialogBackground
|
||||||
backgroundColor: Cpp_ThemeManager.dialogBackground
|
backgroundColor: Cpp_ThemeManager.dialogBackground
|
||||||
minimumWidth: column.implicitWidth + 4 * app.spacing
|
minimumWidth: column.implicitWidth + 4 * app.spacing + 2 * root.margin
|
||||||
maximumWidth: column.implicitWidth + 4 * app.spacing
|
maximumWidth: column.implicitWidth + 4 * app.spacing + 2 * root.margin
|
||||||
minimumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height
|
minimumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height + 2 * root.margin
|
||||||
maximumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height
|
maximumHeight: column.implicitHeight + 4 * app.spacing + titlebar.height + 2 * root.margin
|
||||||
|
|
||||||
//
|
//
|
||||||
// Custom properties
|
// Custom properties
|
||||||
@ -93,18 +93,30 @@ PlatformDependent.CustomWindow {
|
|||||||
// Use page item to set application palette
|
// Use page item to set application palette
|
||||||
//
|
//
|
||||||
Page {
|
Page {
|
||||||
|
anchors {
|
||||||
|
fill: parent
|
||||||
|
margins: root.margin
|
||||||
|
topMargin: titlebar.height + root.margin
|
||||||
|
}
|
||||||
|
|
||||||
palette.text: Cpp_ThemeManager.text
|
palette.text: Cpp_ThemeManager.text
|
||||||
palette.buttonText: Cpp_ThemeManager.text
|
palette.buttonText: Cpp_ThemeManager.text
|
||||||
palette.windowText: Cpp_ThemeManager.text
|
palette.windowText: Cpp_ThemeManager.text
|
||||||
palette.window: Cpp_ThemeManager.dialogBackground
|
palette.window: Cpp_ThemeManager.dialogBackground
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
color: "transparent"
|
radius: root.radius
|
||||||
}
|
color: root.backgroundColor
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
height: root.radius
|
||||||
|
color: root.backgroundColor
|
||||||
|
|
||||||
anchors {
|
anchors {
|
||||||
fill: parent
|
top: parent.top
|
||||||
margins: 0
|
left: parent.left
|
||||||
topMargin: titlebar.height
|
right: parent.right
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
@ -29,9 +29,9 @@ import Qt.labs.settings 1.0
|
|||||||
|
|
||||||
import "../JsonEditor"
|
import "../JsonEditor"
|
||||||
import "../Widgets" as Widgets
|
import "../Widgets" as Widgets
|
||||||
import "../PlatformDependent" as PlatformDependent
|
import "../FramelessWindow" as FramelessWindow
|
||||||
|
|
||||||
PlatformDependent.CustomWindow {
|
FramelessWindow.CustomWindow {
|
||||||
id: root
|
id: root
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -39,7 +39,8 @@ PlatformDependent.CustomWindow {
|
|||||||
//
|
//
|
||||||
minimumWidth: 910
|
minimumWidth: 910
|
||||||
minimumHeight: 720
|
minimumHeight: 720
|
||||||
fullscreenEnabled: false
|
displayIcon: false
|
||||||
|
borderColor: Cpp_ThemeManager.toolbarGradient1
|
||||||
title: qsTr("JSON Editor - %1").arg(Cpp_JSON_Editor.jsonFileName)
|
title: qsTr("JSON Editor - %1").arg(Cpp_JSON_Editor.jsonFileName)
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -53,7 +54,7 @@ PlatformDependent.CustomWindow {
|
|||||||
//
|
//
|
||||||
// Ask user to save changes before closing the window
|
// Ask user to save changes before closing the window
|
||||||
//
|
//
|
||||||
onClosing: (close) => close.accepted = Cpp_JSON_Editor.askSave()
|
//onClosing: (close) => close.accepted = Cpp_JSON_Editor.askSave()
|
||||||
|
|
||||||
//
|
//
|
||||||
// Dummy string to increase width of buttons
|
// Dummy string to increase width of buttons
|
||||||
@ -75,12 +76,13 @@ PlatformDependent.CustomWindow {
|
|||||||
// Use page item to set application palette
|
// Use page item to set application palette
|
||||||
//
|
//
|
||||||
Page {
|
Page {
|
||||||
|
clip: true
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.margins: root.radius
|
anchors.margins: root.margin
|
||||||
anchors.topMargin: titlebar.height
|
|
||||||
palette.text: Cpp_ThemeManager.text
|
palette.text: Cpp_ThemeManager.text
|
||||||
palette.buttonText: Cpp_ThemeManager.text
|
palette.buttonText: Cpp_ThemeManager.text
|
||||||
palette.windowText: Cpp_ThemeManager.text
|
palette.windowText: Cpp_ThemeManager.text
|
||||||
|
anchors.topMargin: titlebar.height + root.margin
|
||||||
palette.window: Cpp_ThemeManager.dialogBackground
|
palette.window: Cpp_ThemeManager.dialogBackground
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
|
@ -31,11 +31,13 @@ import "../Panes"
|
|||||||
import "../Windows"
|
import "../Windows"
|
||||||
import "../Widgets"
|
import "../Widgets"
|
||||||
import "../JsonEditor"
|
import "../JsonEditor"
|
||||||
|
import "../FramelessWindow" as FramelessWindow
|
||||||
import "../PlatformDependent" as PlatformDependent
|
import "../PlatformDependent" as PlatformDependent
|
||||||
|
|
||||||
PlatformDependent.CustomWindow {
|
FramelessWindow.CustomWindow {
|
||||||
id: root
|
id: root
|
||||||
onClosing: Qt.quit()
|
onClosed: Qt.quit()
|
||||||
|
borderColor: Cpp_ThemeManager.toolbarGradient1
|
||||||
|
|
||||||
//
|
//
|
||||||
// Global properties
|
// Global properties
|
||||||
@ -131,12 +133,12 @@ PlatformDependent.CustomWindow {
|
|||||||
// operating systems because of the global menubar in macOS)
|
// operating systems because of the global menubar in macOS)
|
||||||
//
|
//
|
||||||
visible: true
|
visible: true
|
||||||
minimumWidth: 1250
|
|
||||||
title: Cpp_AppName
|
title: Cpp_AppName
|
||||||
width: minimumWidth
|
width: minimumWidth
|
||||||
height: minimumHeight
|
height: minimumHeight
|
||||||
minimumHeight: Cpp_IsMac ? 720 : 740
|
minimumWidth: 1250 + 2 * root.margin
|
||||||
backgroundColor: Cpp_ThemeManager.windowBackground
|
backgroundColor: Cpp_ThemeManager.windowBackground
|
||||||
|
minimumHeight: 720 + 2 * root.margin + root.titlebar.height
|
||||||
|
|
||||||
//
|
//
|
||||||
// Startup code
|
// Startup code
|
||||||
@ -217,7 +219,7 @@ PlatformDependent.CustomWindow {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Windows + Windows menubar loader
|
// Windows + Linux menubar loader
|
||||||
//
|
//
|
||||||
Item {
|
Item {
|
||||||
enabled: !Cpp_IsMac
|
enabled: !Cpp_IsMac
|
||||||
@ -247,12 +249,13 @@ PlatformDependent.CustomWindow {
|
|||||||
// Main layout
|
// Main layout
|
||||||
//
|
//
|
||||||
Page {
|
Page {
|
||||||
anchors.margins: 5
|
clip: true
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
anchors.topMargin: titlebar.height
|
anchors.margins: root.margin
|
||||||
palette.text: Cpp_ThemeManager.text
|
palette.text: Cpp_ThemeManager.text
|
||||||
palette.buttonText: Cpp_ThemeManager.text
|
palette.buttonText: Cpp_ThemeManager.text
|
||||||
palette.windowText: Cpp_ThemeManager.text
|
palette.windowText: Cpp_ThemeManager.text
|
||||||
|
anchors.topMargin: titlebar.height + root.margin
|
||||||
|
|
||||||
background: Rectangle {
|
background: Rectangle {
|
||||||
radius: root.radius
|
radius: root.radius
|
||||||
|
@ -21,6 +21,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
import QtQuick 2.12
|
import QtQuick 2.12
|
||||||
|
import QtQuick.Controls 2.12
|
||||||
|
|
||||||
import "Windows" as Windows
|
import "Windows" as Windows
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -51,6 +51,7 @@
|
|||||||
|
|
||||||
#include <UI/Dashboard.h>
|
#include <UI/Dashboard.h>
|
||||||
#include <UI/WidgetLoader.h>
|
#include <UI/WidgetLoader.h>
|
||||||
|
|
||||||
#include <Widgets/Terminal.h>
|
#include <Widgets/Terminal.h>
|
||||||
|
|
||||||
#include <QQuickWindow>
|
#include <QQuickWindow>
|
||||||
@ -140,8 +141,7 @@ Misc::ModuleManager::ModuleManager()
|
|||||||
|
|
||||||
// Stop modules when application is about to quit
|
// Stop modules when application is about to quit
|
||||||
setSplashScreenMessage(tr("Initializing..."));
|
setSplashScreenMessage(tr("Initializing..."));
|
||||||
connect(qApp, SIGNAL(aboutToQuit()), this, SLOT(stopOperations()));
|
connect(engine(), SIGNAL(quit()), this, SLOT(onQuit()));
|
||||||
connect(engine(), SIGNAL(quit()), this, SLOT(quit()));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -318,15 +318,6 @@ StringList Misc::ModuleManager::renderingEngines() const
|
|||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Quits the application
|
|
||||||
*/
|
|
||||||
void Misc::ModuleManager::quit()
|
|
||||||
{
|
|
||||||
if (JSON::Editor::getInstance()->askSave())
|
|
||||||
qApp->quit();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hides the splash screen widget
|
* Hides the splash screen widget
|
||||||
*/
|
*/
|
||||||
@ -378,7 +369,7 @@ void Misc::ModuleManager::setSplashScreenMessage(const QString &message)
|
|||||||
/**
|
/**
|
||||||
* Calls the functions needed to safely quit the application
|
* Calls the functions needed to safely quit the application
|
||||||
*/
|
*/
|
||||||
void Misc::ModuleManager::stopOperations()
|
void Misc::ModuleManager::onQuit()
|
||||||
{
|
{
|
||||||
Plugins::Server::getInstance()->removeConnection();
|
Plugins::Server::getInstance()->removeConnection();
|
||||||
CSV::Export::getInstance()->closeFile();
|
CSV::Export::getInstance()->closeFile();
|
||||||
|
@ -56,8 +56,7 @@ public:
|
|||||||
Q_INVOKABLE StringList renderingEngines() const;
|
Q_INVOKABLE StringList renderingEngines() const;
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void quit();
|
void onQuit();
|
||||||
void stopOperations();
|
|
||||||
void hideSplashscreen();
|
void hideSplashscreen();
|
||||||
void setRenderingEngine(const int engine);
|
void setRenderingEngine(const int engine);
|
||||||
void setSplashScreenMessage(const QString &message);
|
void setSplashScreenMessage(const QString &message);
|
||||||
|
@ -460,6 +460,7 @@
|
|||||||
#include "moc_Compass.cpp"
|
#include "moc_Compass.cpp"
|
||||||
#include "moc_Console.cpp"
|
#include "moc_Console.cpp"
|
||||||
#include "moc_Dashboard.cpp"
|
#include "moc_Dashboard.cpp"
|
||||||
|
#include "moc_WidgetLoader.cpp"
|
||||||
#include "moc_DataGroup.cpp"
|
#include "moc_DataGroup.cpp"
|
||||||
#include "moc_Editor.cpp"
|
#include "moc_Editor.cpp"
|
||||||
#include "moc_Export.cpp"
|
#include "moc_Export.cpp"
|
||||||
@ -483,7 +484,6 @@
|
|||||||
#include "moc_ThemeManager.cpp"
|
#include "moc_ThemeManager.cpp"
|
||||||
#include "moc_TimerEvents.cpp"
|
#include "moc_TimerEvents.cpp"
|
||||||
#include "moc_Translator.cpp"
|
#include "moc_Translator.cpp"
|
||||||
#include "moc_WidgetLoader.cpp"
|
|
||||||
#include "moc_Utilities.cpp"
|
#include "moc_Utilities.cpp"
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user