Commit 9f211eca authored by Don Gagne's avatar Don Gagne

More UI changes for tablet

parent 92cc42a1
...@@ -96,30 +96,18 @@ QGCView { ...@@ -96,30 +96,18 @@ QGCView {
readonly property real spacerHeight: ScreenTools.defaultFontPixelHeight readonly property real spacerHeight: ScreenTools.defaultFontPixelHeight
QGCLabel {
id: header
width: parent.width
font.pixelSize: ScreenTools.largeFontPixelSize
text: "AIRFRAME CONFIG"
}
Item {
id: headingSpacer
anchors.top: header.bottom
height: parent.spacerHeight
width: 20
}
Item { Item {
id: helpApplyRow id: helpApplyRow
anchors.top: headingSpacer.bottom anchors.top: parent.top
width: parent.width anchors.left: parent.left
anchors.right: parent.right
height: Math.max(helpText.contentHeight, applyButton.height) height: Math.max(helpText.contentHeight, applyButton.height)
QGCLabel { QGCLabel {
id: helpText id: helpText
width: parent.width - applyButton.width - 5 width: parent.width - applyButton.width - 5
text: "Please select your airframe type. Click 'Apply and Restart' to reboot the autopilot. Please re-connect then manually." text: "Please select your airframe type. Click 'Apply and Restart' to reboot the autopilot. Please re-connect then manually."
font.pixelSize: ScreenTools.mediumFontPixelSize
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
} }
......
...@@ -42,7 +42,7 @@ QGCView { ...@@ -42,7 +42,7 @@ QGCView {
// User visible strings // User visible strings
readonly property string title: "FLIGHT MODES CONFIG" readonly property string title: "FLIGHT MODES"
property string topHelpText: "Assign Flight Modes to radio control channels and adjust the thresholds for triggering them. " + property string topHelpText: "Assign Flight Modes to radio control channels and adjust the thresholds for triggering them. " +
...@@ -216,23 +216,8 @@ QGCView { ...@@ -216,23 +216,8 @@ QGCView {
id: scrollItem id: scrollItem
width: scroll.viewport.width width: scroll.viewport.width
QGCLabel {
id: header
width: parent.width
font.pixelSize: ScreenTools.largeFontPixelSize
text: title
}
Item {
id: headingSpacer
anchors.top: header.bottom
height: ScreenTools.defaultFontPixelHeight
width: 20
}
Item { Item {
id: helpApplyRow id: helpApplyRow
anchors.top: headingSpacer.bottom
width: parent.width width: parent.width
height: Math.max(helpText.contentHeight, applyButton.height) height: Math.max(helpText.contentHeight, applyButton.height)
...@@ -242,6 +227,7 @@ QGCView { ...@@ -242,6 +227,7 @@ QGCView {
anchors.left: parent.left anchors.left: parent.left
anchors.right: applyButton.left anchors.right: applyButton.left
text: topHelpText text: topHelpText
font.pixelSize: ScreenTools.mediumFontPixelSize
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
} }
......
...@@ -115,11 +115,6 @@ QGCView { ...@@ -115,11 +115,6 @@ QGCView {
anchors.right: parent.right anchors.right: parent.right
spacing: ScreenTools.defaultFontPixelHeight spacing: ScreenTools.defaultFontPixelHeight
QGCLabel {
text: "POWER CONFIG"
font.pixelSize: ScreenTools.largeFontPixelSize
}
QGCLabel { QGCLabel {
text: "Battery" text: "Battery"
font.pixelSize: ScreenTools.mediumFontPixelSize font.pixelSize: ScreenTools.mediumFontPixelSize
......
...@@ -42,7 +42,7 @@ QGCView { ...@@ -42,7 +42,7 @@ QGCView {
QGCPalette { id: qgcPal; colorGroupEnabled: panel.enabled } QGCPalette { id: qgcPal; colorGroupEnabled: panel.enabled }
readonly property string dialogTitle: "Radio Config" readonly property string dialogTitle: "Radio"
readonly property real labelToMonitorMargin: defaultTextWidth * 3 readonly property real labelToMonitorMargin: defaultTextWidth * 3
property bool controllerCompleted: false property bool controllerCompleted: false
property bool controllerAndViewReady: false property bool controllerAndViewReady: false
...@@ -269,23 +269,10 @@ QGCView { ...@@ -269,23 +269,10 @@ QGCView {
// Main view Qml starts here // Main view Qml starts here
QGCLabel {
id: header
font.pixelSize: ScreenTools.largeFontPixelSize
text: "RADIO CONFIG"
}
Item {
id: spacer
anchors.top: header.bottom
width: parent.width
height: 10
}
// Left side column // Left side column
Column { Column {
id: leftColumn id: leftColumn
anchors.top: spacer.bottom anchors.top: parent.top
anchors.left: parent.left anchors.left: parent.left
anchors.right: columnSpacer.left anchors.right: columnSpacer.left
spacing: 10 spacing: 10
...@@ -504,7 +491,7 @@ QGCView { ...@@ -504,7 +491,7 @@ QGCView {
// Right side column // Right side column
Column { Column {
id: rightColumn id: rightColumn
anchors.top: spacer.bottom anchors.top: parent.top
anchors.right: parent.right anchors.right: parent.right
width: defaultTextWidth * 35 width: defaultTextWidth * 35
spacing: 10 spacing: 10
......
...@@ -56,13 +56,6 @@ QGCView { ...@@ -56,13 +56,6 @@ QGCView {
Column { Column {
anchors.fill: parent anchors.fill: parent
QGCLabel {
text: "SAFETY CONFIG"
font.pixelSize: ScreenTools.largeFontPixelSize
}
Item { height: 20; width: 10 } // spacer
//----------------------------------------------------------------- //-----------------------------------------------------------------
//-- Return Home Triggers //-- Return Home Triggers
......
...@@ -278,13 +278,6 @@ QGCView { ...@@ -278,13 +278,6 @@ QGCView {
Column { Column {
anchors.fill: parent anchors.fill: parent
QGCLabel {
text: "SENSORS CONFIG"
font.pixelSize: ScreenTools.largeFontPixelSize
}
Item { height: ScreenTools.defaultFontPixelHeight; width: 10 } // spacer
Row { Row {
readonly property int buttonWidth: ScreenTools.defaultFontPixelWidth * 15 readonly property int buttonWidth: ScreenTools.defaultFontPixelWidth * 15
......
...@@ -296,8 +296,9 @@ QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting) ...@@ -296,8 +296,9 @@ QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting)
QSettings::setDefaultFormat(QSettings::IniFormat); QSettings::setDefaultFormat(QSettings::IniFormat);
QSettings settings; QSettings settings;
qDebug() << "Settings location" << settings.fileName() << settings.isWritable();
#ifdef UNITTEST_BUILD #ifdef UNITTEST_BUILD
qDebug() << "Settings location" << settings.fileName();
Q_ASSERT(settings.isWritable()); Q_ASSERT(settings.isWritable());
#endif #endif
// The setting will delete all settings on this boot // The setting will delete all settings on this boot
...@@ -316,7 +317,6 @@ QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting) ...@@ -316,7 +317,6 @@ QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting)
// Initialize Video Streaming // Initialize Video Streaming
initializeVideoStreaming(argc, argv); initializeVideoStreaming(argc, argv);
} }
QGCApplication::~QGCApplication() QGCApplication::~QGCApplication()
...@@ -421,6 +421,8 @@ void QGCApplication::_initCommon(void) ...@@ -421,6 +421,8 @@ void QGCApplication::_initCommon(void)
} }
qDebug() << "Saved files location" << savedFilesLocation; qDebug() << "Saved files location" << savedFilesLocation;
settings.setValue(_savedFilesLocationKey, savedFilesLocation); settings.setValue(_savedFilesLocationKey, savedFilesLocation);
settings.sync();
} }
bool QGCApplication::_initForNormalAppBoot(void) bool QGCApplication::_initForNormalAppBoot(void)
......
...@@ -107,10 +107,11 @@ private: ...@@ -107,10 +107,11 @@ private:
} }
} }
qDebug() << "QGCMessageBox (unit testing)" << title << text;
#ifdef QT_DEBUG #ifdef QT_DEBUG
#ifndef __mobile__ #ifndef __mobile__
if (qgcApp()->runningUnitTests()) { if (qgcApp()->runningUnitTests()) {
qDebug() << "QGCMessageBox (unit testing)" << title << text;
return UnitTest::_messageBox(icon, title, text, buttons, defaultButton); return UnitTest::_messageBox(icon, title, text, buttons, defaultButton);
} else } else
#endif #endif
......
...@@ -212,6 +212,8 @@ QGCView { ...@@ -212,6 +212,8 @@ QGCView {
width: defaultTextWidth * 25 width: defaultTextWidth * 25
height: parent.height height: parent.height
Component.onCompleted: flickableItem.flickableDirection = Flickable.VerticalFlick
Column { Column {
Repeater { Repeater {
model: controller.componentIds model: controller.componentIds
...@@ -317,8 +319,8 @@ QGCView { ...@@ -317,8 +319,8 @@ QGCView {
QGCLabel { QGCLabel {
id: titleText id: titleText
font.pixelSize: ScreenTools.largeFontPixelSize font.pixelSize: ScreenTools.mediumFontPixelSize
text: "PARAMETER EDITOR" text: "PARAMETERS"
} }
QGCButton { QGCButton {
......
...@@ -38,7 +38,7 @@ QGCView { ...@@ -38,7 +38,7 @@ QGCView {
viewPanel: panel viewPanel: panel
// User visible strings // User visible strings
readonly property string title: "FIRMWARE UPDATE" readonly property string title: "FIRMWARE"
readonly property string highlightPrefix: "<font color=\"yellow\">" readonly property string highlightPrefix: "<font color=\"yellow\">"
readonly property string highlightSuffix: "</font>" readonly property string highlightSuffix: "</font>"
readonly property string welcomeText: "QGroundControl can upgrade the firmware on Pixhawk devices, 3DR Radios and PX4 Flow Smart Cameras." readonly property string welcomeText: "QGroundControl can upgrade the firmware on Pixhawk devices, 3DR Radios and PX4 Flow Smart Cameras."
...@@ -392,7 +392,7 @@ QGCView { ...@@ -392,7 +392,7 @@ QGCView {
QGCLabel { QGCLabel {
id: titleLabel id: titleLabel
text: title text: title
font.pixelSize: ScreenTools.largeFontPixelSize font.pixelSize: ScreenTools.mediumFontPixelSize
} }
ProgressBar { ProgressBar {
......
...@@ -149,8 +149,8 @@ QGCView { ...@@ -149,8 +149,8 @@ QGCView {
QGCLabel { QGCLabel {
id: header id: header
font.pixelSize: ScreenTools.largeFontPixelSize font.pixelSize: ScreenTools.mediumFontPixelSize
text: "JOYSTICK CONFIG" text: "JOYSTICK"
} }
Item { Item {
......
...@@ -34,29 +34,25 @@ import QGroundControl.Controls 1.0 ...@@ -34,29 +34,25 @@ import QGroundControl.Controls 1.0
import QGroundControl.ScreenTools 1.0 import QGroundControl.ScreenTools 1.0
import QGroundControl.MultiVehicleManager 1.0 import QGroundControl.MultiVehicleManager 1.0
Rectangle { Item {
id: topLevel
color: palette.window
z: zOrder // zOrder comes from the Loader in MainWindow.qml z: zOrder // zOrder comes from the Loader in MainWindow.qml
QGCPalette { id: palette; colorGroupEnabled: true } QGCPalette { id: qgcPal; colorGroupEnabled: true }
ExclusiveGroup { id: setupButtonGroup } ExclusiveGroup { id: setupButtonGroup }
QGCLabel { id: _textMeasure; text: "X"; visible: false } readonly property real _defaultTextHeight: ScreenTools.defaultFontPixelHeight
readonly property real _defaultTextWidth: ScreenTools.defaultFontPixelWidth
readonly property real _margin: _defaultTextHeight / 2
readonly property real _buttonWidth: _defaultTextWidth * 15
readonly property string _armedVehicleText: "This operation cannot be performed while vehicle is armed."
readonly property real defaultTextHeight: _textMeasure.contentHeight property string _messagePanelText: "missing message panel text"
readonly property real defaultTextWidth: _textMeasure.contentWidth property bool _fullParameterVehicleAvailable: multiVehicleManager.parameterReadyVehicleAvailable && !multiVehicleManager.activeVehicle.missingParameters
readonly property real buttonWidth: defaultTextWidth * 15
property string messagePanelText: "missing message panel text"
readonly property string armedVehicleText: "This operation cannot be performed while vehicle is armed."
property bool fullParameterVehicleAvailable: multiVehicleManager.parameterReadyVehicleAvailable && !multiVehicleManager.activeVehicle.missingParameters
function showSummaryPanel() function showSummaryPanel()
{ {
if (fullParameterVehicleAvailable) { if (_fullParameterVehicleAvailable) {
panelLoader.source = "VehicleSummary.qml"; panelLoader.source = "VehicleSummary.qml";
} else if (multiVehicleManager.parameterReadyVehicleAvailable) { } else if (multiVehicleManager.parameterReadyVehicleAvailable) {
panelLoader.sourceComponent = missingParametersVehicleSummaryComponent panelLoader.sourceComponent = missingParametersVehicleSummaryComponent
...@@ -69,7 +65,7 @@ Rectangle { ...@@ -69,7 +65,7 @@ Rectangle {
{ {
if (!ScreenTools.isMobile) { if (!ScreenTools.isMobile) {
if (multiVehicleManager.activeVehicleAvailable && multiVehicleManager.activeVehicle.armed) { if (multiVehicleManager.activeVehicleAvailable && multiVehicleManager.activeVehicle.armed) {
messagePanelText = armedVehicleText _messagePanelText = _armedVehicleText
panelLoader.sourceComponent = messagePanelComponent panelLoader.sourceComponent = messagePanelComponent
} else { } else {
panelLoader.source = "FirmwareUpgrade.qml"; panelLoader.source = "FirmwareUpgrade.qml";
...@@ -80,7 +76,7 @@ Rectangle { ...@@ -80,7 +76,7 @@ Rectangle {
function showJoystickPanel() function showJoystickPanel()
{ {
if (multiVehicleManager.activeVehicleAvailable && multiVehicleManager.activeVehicle.armed) { if (multiVehicleManager.activeVehicleAvailable && multiVehicleManager.activeVehicle.armed) {
messagePanelText = armedVehicleText _messagePanelText = _armedVehicleText
panelLoader.sourceComponent = messagePanelComponent panelLoader.sourceComponent = messagePanelComponent
} else { } else {
panelLoader.source = "JoystickConfig.qml"; panelLoader.source = "JoystickConfig.qml";
...@@ -95,11 +91,11 @@ Rectangle { ...@@ -95,11 +91,11 @@ Rectangle {
function showVehicleComponentPanel(vehicleComponent) function showVehicleComponentPanel(vehicleComponent)
{ {
if (multiVehicleManager.activeVehicle.armed) { if (multiVehicleManager.activeVehicle.armed) {
messagePanelText = armedVehicleText _messagePanelText = _armedVehicleText
panelLoader.sourceComponent = messagePanelComponent panelLoader.sourceComponent = messagePanelComponent
} else { } else {
if (vehicleComponent.prerequisiteSetup != "") { if (vehicleComponent.prerequisiteSetup != "") {
messagePanelText = vehicleComponent.prerequisiteSetup + " setup must be completed prior to " + vehicleComponent.name + " setup." _messagePanelText = vehicleComponent.prerequisiteSetup + " setup must be completed prior to " + vehicleComponent.name + " setup."
panelLoader.sourceComponent = messagePanelComponent panelLoader.sourceComponent = messagePanelComponent
} else { } else {
panelLoader.source = vehicleComponent.setupSource panelLoader.source = vehicleComponent.setupSource
...@@ -122,10 +118,10 @@ Rectangle { ...@@ -122,10 +118,10 @@ Rectangle {
id: disconnectedVehicleSummaryComponent id: disconnectedVehicleSummaryComponent
Rectangle { Rectangle {
color: palette.windowShade color: qgcPal.windowShade
QGCLabel { QGCLabel {
anchors.margins: defaultTextWidth * 2 anchors.margins: _defaultTextWidth * 2
anchors.fill: parent anchors.fill: parent
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
...@@ -146,10 +142,10 @@ Rectangle { ...@@ -146,10 +142,10 @@ Rectangle {
id: missingParametersVehicleSummaryComponent id: missingParametersVehicleSummaryComponent
Rectangle { Rectangle {
color: palette.windowShade color: qgcPal.windowShade
QGCLabel { QGCLabel {
anchors.margins: defaultTextWidth * 2 anchors.margins: _defaultTextWidth * 2
anchors.fill: parent anchors.fill: parent
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
...@@ -168,32 +164,58 @@ Rectangle { ...@@ -168,32 +164,58 @@ Rectangle {
Item { Item {
QGCLabel { QGCLabel {
anchors.margins: defaultTextWidth * 2 anchors.margins: _defaultTextWidth * 2
anchors.fill: parent anchors.fill: parent
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
font.pixelSize: ScreenTools.mediumFontPixelSize font.pixelSize: ScreenTools.mediumFontPixelSize
text: messagePanelText text: _messagePanelText
} }
} }
} }
Rectangle {
//anchors.margins: _defaultTextHeight * 2
anchors.fill: parent
color: qgcPal.window
opacity: 0.8
QGCLabel {
id: title
anchors.topMargin: _margin
anchors.top: parent.top
anchors.left: parent.left
anchors.right: parent.right
horizontalAlignment: Text.AlignHCenter
font.pixelSize: ScreenTools.largeFontPixelSize
text: "Vehicle Setup"
}
Rectangle {
anchors.topMargin: _margin
anchors.top: title.bottom
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
color: qgcPal.windowShade
Flickable { Flickable {
id: buttonFlickable id: buttonFlickable
width: buttonWidth width: _buttonWidth
height: parent.height height: parent.height
contentWidth: buttonWidth contentWidth: _buttonWidth
contentHeight: buttonColumn.height contentHeight: buttonColumn.height
flickableDirection: Flickable.VerticalFlick flickableDirection: Flickable.VerticalFlick
Column { Column {
id: buttonColumn id: buttonColumn
width: buttonWidth width: _buttonWidth
spacing: _defaultTextHeight / 2
SubMenuButton { SubMenuButton {
id: summaryButton id: summaryButton
width: buttonWidth width: _buttonWidth
imageResource: "/qmlimages/VehicleSummaryIcon.png" imageResource: "/qmlimages/VehicleSummaryIcon.png"
setupIndicator: false setupIndicator: false
exclusiveGroup: setupButtonGroup exclusiveGroup: setupButtonGroup
...@@ -204,7 +226,7 @@ Rectangle { ...@@ -204,7 +226,7 @@ Rectangle {
SubMenuButton { SubMenuButton {
id: firmwareButton id: firmwareButton
width: buttonWidth width: _buttonWidth
imageResource: "/qmlimages/FirmwareUpgradeIcon.png" imageResource: "/qmlimages/FirmwareUpgradeIcon.png"
setupIndicator: false setupIndicator: false
exclusiveGroup: setupButtonGroup exclusiveGroup: setupButtonGroup
...@@ -216,21 +238,21 @@ Rectangle { ...@@ -216,21 +238,21 @@ Rectangle {
SubMenuButton { SubMenuButton {
id: joystickButton id: joystickButton
width: buttonWidth width: _buttonWidth
setupIndicator: true setupIndicator: true
setupComplete: joystickManager.activeJoystick ? joystickManager.activeJoystick.calibrated : false setupComplete: joystickManager.activeJoystick ? joystickManager.activeJoystick.calibrated : false
exclusiveGroup: setupButtonGroup exclusiveGroup: setupButtonGroup
visible: fullParameterVehicleAvailable && joystickManager.joysticks.length != 0 visible: _fullParameterVehicleAvailable && joystickManager.joysticks.length != 0
text: "JOYSTICK" text: "JOYSTICK"
onClicked: showJoystickPanel() onClicked: showJoystickPanel()
} }
Repeater { Repeater {
model: fullParameterVehicleAvailable ? multiVehicleManager.activeVehicle.autopilot.vehicleComponents : 0 model: _fullParameterVehicleAvailable ? multiVehicleManager.activeVehicle.autopilot.vehicleComponents : 0
SubMenuButton { SubMenuButton {
width: buttonWidth width: _buttonWidth
imageResource: modelData.iconResource imageResource: modelData.iconResource
setupIndicator: modelData.requiresSetup setupIndicator: modelData.requiresSetup
setupComplete: modelData.setupComplete setupComplete: modelData.setupComplete
...@@ -242,7 +264,7 @@ Rectangle { ...@@ -242,7 +264,7 @@ Rectangle {
} }
SubMenuButton { SubMenuButton {
width: buttonWidth width: _buttonWidth
setupIndicator: false setupIndicator: false
exclusiveGroup: setupButtonGroup exclusiveGroup: setupButtonGroup
visible: multiVehicleManager.parameterReadyVehicleAvailable visible: multiVehicleManager.parameterReadyVehicleAvailable
...@@ -255,11 +277,13 @@ Rectangle { ...@@ -255,11 +277,13 @@ Rectangle {
Loader { Loader {
id: panelLoader id: panelLoader
anchors.leftMargin: defaultTextWidth anchors.leftMargin: _defaultTextWidth
anchors.rightMargin: defaultTextWidth anchors.rightMargin: _defaultTextWidth
anchors.left: buttonFlickable.right anchors.left: buttonFlickable.right
anchors.right: parent.right anchors.right: parent.right
anchors.top: parent.top anchors.top: parent.top
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
} }
}
}
} }
...@@ -43,16 +43,11 @@ Rectangle { ...@@ -43,16 +43,11 @@ Rectangle {
anchors.fill: parent anchors.fill: parent
spacing: ScreenTools.defaultFontPixelHeight spacing: ScreenTools.defaultFontPixelHeight
QGCLabel {
text: "VEHICLE SUMMARY"
font.pixelSize: ScreenTools.largeFontPixelSize
}
QGCLabel { QGCLabel {
width: parent.width width: parent.width
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
color: setupComplete ? qgcPal.text : qgcPal.warningText color: setupComplete ? qgcPal.text : qgcPal.warningText
font.pixelSize: setupComplete ? ScreenTools.defaultFontPixelSize : ScreenTools.mediumFontPixelSize font.pixelSize: ScreenTools.mediumFontPixelSize
text: setupComplete ? text: setupComplete ?
"Below you will find a summary of the settings for your vehicle. To the left are the setup menus for each component." : "Below you will find a summary of the settings for your vehicle. To the left are the setup menus for each component." :
"WARNING: Your vehicle requires setup prior to flight. Please resolve the items marked in red using the menu on the left." "WARNING: Your vehicle requires setup prior to flight. Please resolve the items marked in red using the menu on the left."
......
...@@ -193,6 +193,15 @@ Item { ...@@ -193,6 +193,15 @@ Item {
_controller.onPlanView(); _controller.onPlanView();
} }
} }
MenuSeparator { }
MenuItem {
text: "QGroundControl Settings"
onTriggered: controller.showSettings()
}
} // Menu } // Menu
Component { Component {
......
...@@ -339,3 +339,8 @@ void MainToolBarController::onToolBarMessageClosed(void) ...@@ -339,3 +339,8 @@ void MainToolBarController::onToolBarMessageClosed(void)
_toolbarMessageVisible = false; _toolbarMessageVisible = false;
_delayedShowToolBarMessage(); _delayedShowToolBarMessage();
} }
void MainToolBarController::showSettings(void)
{
MainWindow::instance()->showSettings();
}
...@@ -57,6 +57,7 @@ public: ...@@ -57,6 +57,7 @@ public:
Q_INVOKABLE void onDisconnect(QString conf); Q_INVOKABLE void onDisconnect(QString conf);
Q_INVOKABLE void onEnterMessageArea(int x, int y); Q_INVOKABLE void onEnterMessageArea(int x, int y);
Q_INVOKABLE void onToolBarMessageClosed(void); Q_INVOKABLE void onToolBarMessageClosed(void);
Q_INVOKABLE void showSettings(void);
Q_PROPERTY(double height MEMBER _toolbarHeight NOTIFY heightChanged) Q_PROPERTY(double height MEMBER _toolbarHeight NOTIFY heightChanged)
Q_PROPERTY(QStringList configList MEMBER _linkConfigurations NOTIFY configListChanged) Q_PROPERTY(QStringList configList MEMBER _linkConfigurations NOTIFY configListChanged)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment