see changelog 0.04
This commit is contained in:
parent
79b5b71243
commit
385df9a5a9
9 changed files with 179 additions and 80 deletions
|
@ -7,12 +7,15 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
### Added
|
### Added
|
||||||
- added profiles dialog
|
- added profiles dialog
|
||||||
|
|
||||||
|
## [0.04] - 2018-08-11
|
||||||
|
### Added
|
||||||
- buzzer icon in the upper left corner indicating that the buzzer is connected
|
- buzzer icon in the upper left corner indicating that the buzzer is connected
|
||||||
### Fixed
|
### Fixed
|
||||||
- start seqnece continues in a buggy way when cancel is being pressed while 'at your marks' or 'ready'
|
- start seqnece continues in a buggy way when cancel is being pressed while 'at your marks' or 'ready'
|
||||||
- bug that made the start sequence freeze if a delay of zero or lower or a non valid number was set as delay
|
- bug that made the start sequence freeze if a delay of zero or lower or a non valid number was set as delay
|
||||||
### Changed
|
### Changed
|
||||||
- increased the size f the back buttons in settings / profiles dialog
|
- increased the size of the back buttons in settings / profiles dialog
|
||||||
|
|
||||||
## [0.03 - BETA] - 2018-07-29
|
## [0.03 - BETA] - 2018-07-29
|
||||||
### Added
|
### Added
|
||||||
|
@ -20,7 +23,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
||||||
- new screen in landscape mode
|
- new screen in landscape mode
|
||||||
- buttons for settings and profiles
|
- buttons for settings and profiles
|
||||||
- the screen stays on now
|
- the screen stays on now
|
||||||
- the volume sontrols control the media volume directly
|
- the volume csontrols control the media volume directly
|
||||||
- settings dialog
|
- settings dialog
|
||||||
- capabilitie to connect to a Buzzer via Wifi
|
- capabilitie to connect to a Buzzer via Wifi
|
||||||
- it is now possible to setup an automatic start sequence that spells the command
|
- it is now possible to setup an automatic start sequence that spells the command
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<manifest package="com.itsblue.speedclimbing_stopwatchtest" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.03" android:versionCode="3" android:installLocation="auto">
|
<manifest package="com.itsblue.speedclimbing_stopwatch" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.04" android:versionCode="4" android:installLocation="auto">
|
||||||
<application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="speedclimbing stw" android:icon="@drawable/icon">
|
<application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="speedclimbing stw" android:icon="@drawable/icon">
|
||||||
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="com.itsblue.StayAwake" android:label="speedclimbing stw" android:screenOrientation="unspecified" android:launchMode="singleTop">
|
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="com.itsblue.StayAwake" android:label="speedclimbing stw" android:screenOrientation="unspecified" android:launchMode="singleTop">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
@ -66,7 +66,7 @@
|
||||||
|
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="16"/>
|
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="26"/>
|
||||||
<supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
|
<supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
|
||||||
|
|
||||||
<!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
|
<!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
|
||||||
|
|
|
@ -18,7 +18,9 @@ public:
|
||||||
QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE;
|
QVariant data(const QModelIndex &index, int role) const Q_DECL_OVERRIDE;
|
||||||
QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE;
|
QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE;
|
||||||
|
|
||||||
|
|
||||||
Q_INVOKABLE bool append(QString name);
|
Q_INVOKABLE bool append(QString name);
|
||||||
|
Q_INVOKABLE void remove(int row);
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
|
|
|
@ -204,28 +204,82 @@ Popup {
|
||||||
/*-----List of all profiles-----*/
|
/*-----List of all profiles-----*/
|
||||||
Component {
|
Component {
|
||||||
id: profileListComp
|
id: profileListComp
|
||||||
|
Tumbler {
|
||||||
|
id: control
|
||||||
|
property string title: "profiles"
|
||||||
|
property string secondButt: "add"
|
||||||
|
model: SqlProfileModel{}
|
||||||
|
delegate: Text {
|
||||||
|
text: model.name
|
||||||
|
color: control.visualFocus ? control.palette.highlight : control.palette.text
|
||||||
|
font: control.font
|
||||||
|
opacity: 1.0 - Math.abs(Tumbler.displacement) / (control.visibleItemCount / 2)
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
ListView {
|
ListView {
|
||||||
id: profileList
|
id: profileList
|
||||||
model: profileModel.model
|
model: profileModel.model
|
||||||
property string title: "profiles"
|
property string title: "profiles"
|
||||||
property string secondButt: "add"
|
property string secondButt: "add"
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
visible: profileList.count <= 0
|
opacity: profileList.count <= 0 ? 1:0
|
||||||
text: "add a profile by clicking +"
|
text: "add a profile by clicking +"
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
font.pixelSize: parent.width*0.06
|
font.pixelSize: parent.width*0.06
|
||||||
|
Behavior on opacity {
|
||||||
|
NumberAnimation {
|
||||||
|
duration: 200
|
||||||
|
easing.type: Easing.InOutQuad
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate: SwipeDelegate {
|
delegate: SwipeDelegate {
|
||||||
id: swipeDelegate
|
id: swipeDelegate
|
||||||
text: model.name
|
text: model.name
|
||||||
|
|
||||||
width: profileList.width
|
width: profileList.width
|
||||||
|
|
||||||
|
font.pixelSize: profiles_stack.text_pixelSize
|
||||||
|
|
||||||
|
function remove() {
|
||||||
|
removeAnim.start()
|
||||||
|
}
|
||||||
|
|
||||||
|
background: Rectangle {
|
||||||
|
color: pressed ? Qt.darker("white", 1.1):"white"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
color: "grey"
|
||||||
|
height: 1
|
||||||
|
width: parent.width * 0.9
|
||||||
|
visible: index > 0
|
||||||
|
anchors {
|
||||||
|
horizontalCenter: parent.horizontalCenter
|
||||||
|
top: parent.top
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
NumberAnimation {
|
||||||
|
id: removeAnim
|
||||||
|
target: swipeDelegate
|
||||||
|
property: "height"
|
||||||
|
to: 0
|
||||||
|
easing.type: Easing.InOutQuad
|
||||||
|
onStopped: profileModel.model.remove(index)
|
||||||
|
}
|
||||||
|
|
||||||
Component {
|
Component {
|
||||||
id: component
|
id: component
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
color: mouse.pressed ? "#333" : "#444"
|
color: mouseAr.pressed ? "#333" : "#444"
|
||||||
width: parent.width
|
width: parent.width
|
||||||
height: parent.height
|
height: parent.height
|
||||||
clip: true
|
clip: true
|
||||||
|
@ -235,24 +289,59 @@ Popup {
|
||||||
text: qsTr("Press me!")
|
text: qsTr("Press me!")
|
||||||
color: "#21be2b"
|
color: "#21be2b"
|
||||||
anchors.centerIn: parent
|
anchors.centerIn: parent
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
id: mouseAr
|
id: mouseAr
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onClicked: {
|
onClicked: {
|
||||||
model.remove(index)
|
swipeDelegate.remove()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
swipe.left: component
|
swipe.transition: Transition {
|
||||||
swipe.right: component
|
SmoothedAnimation { velocity: 3; easing.type: Easing.InOutCubic }
|
||||||
|
}
|
||||||
|
|
||||||
|
swipe.left: Row {
|
||||||
|
anchors.left: parent.left
|
||||||
|
height: parent.height
|
||||||
|
|
||||||
|
Label {
|
||||||
|
id: moveLabel
|
||||||
|
text: qsTr("Move")
|
||||||
|
color: "white"
|
||||||
|
verticalAlignment: Label.AlignVCenter
|
||||||
|
padding: 12
|
||||||
|
height: parent.height
|
||||||
|
|
||||||
|
SwipeDelegate.onClicked: console.log("Moving...")
|
||||||
|
|
||||||
|
background: Rectangle {
|
||||||
|
color: moveLabel.SwipeDelegate.pressed ? Qt.darker("#ffbf47", 1.1) : "#ffbf47"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Label {
|
||||||
|
id: deleteLabel
|
||||||
|
text: qsTr("Delete")
|
||||||
|
color: "white"
|
||||||
|
verticalAlignment: Label.AlignVCenter
|
||||||
|
padding: 12
|
||||||
|
height: parent.height
|
||||||
|
|
||||||
|
SwipeDelegate.onClicked: console.log("Deleting...")
|
||||||
|
|
||||||
|
background: Rectangle {
|
||||||
|
color: deleteLabel.SwipeDelegate.pressed ? Qt.darker("tomato", 1.1) : "tomato"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ScrollIndicator.vertical: ScrollIndicator { }
|
ScrollIndicator.vertical: ScrollIndicator { }
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
/*-----Option to add a profile-----*/
|
/*-----Option to add a profile-----*/
|
||||||
|
@ -268,6 +357,11 @@ Popup {
|
||||||
onTextChanged: {
|
onTextChanged: {
|
||||||
parent.newProfileName = text
|
parent.newProfileName = text
|
||||||
}
|
}
|
||||||
|
Keys.onReturnPressed: {
|
||||||
|
if(profileModel.model.append(text)){
|
||||||
|
profiles_stack.pop()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,7 +129,7 @@ Popup {
|
||||||
|
|
||||||
StackView {
|
StackView {
|
||||||
id: options_stack
|
id: options_stack
|
||||||
property int text_pixelSize: headlineUnderline.width * 0.08
|
property int text_pixelSize: root.height * 0.06
|
||||||
initialItem: settings
|
initialItem: settings
|
||||||
width: headlineUnderline.width
|
width: headlineUnderline.width
|
||||||
|
|
||||||
|
@ -137,7 +137,7 @@ Popup {
|
||||||
top: parent.top
|
top: parent.top
|
||||||
left: parent.left
|
left: parent.left
|
||||||
leftMargin: ( parent.width - headlineUnderline.width ) / 2
|
leftMargin: ( parent.width - headlineUnderline.width ) / 2
|
||||||
topMargin: parent.height * 0.12
|
topMargin: headlineUnderline.anchors.topMargin * 0.8
|
||||||
bottom: parent.bottom
|
bottom: parent.bottom
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -194,6 +194,7 @@ Popup {
|
||||||
//make a short delay and go back to normal options
|
//make a short delay and go back to normal options
|
||||||
shortDelay.start()
|
shortDelay.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
Timer {
|
Timer {
|
||||||
id: shortDelay
|
id: shortDelay
|
||||||
running: false
|
running: false
|
||||||
|
@ -247,53 +248,25 @@ Popup {
|
||||||
/*-----Page to setup automatc start sequence-----*/
|
/*-----Page to setup automatc start sequence-----*/
|
||||||
Component {
|
Component {
|
||||||
id: autostart
|
id: autostart
|
||||||
|
|
||||||
Column {
|
Column {
|
||||||
id: autostart_col
|
id: autostart_col
|
||||||
property string title: "Autostart"
|
property string title: "Autostart"
|
||||||
|
property int delegateHeight: height*0.18
|
||||||
|
|
||||||
SwitchDelegate {
|
SwitchDelegate {
|
||||||
id: ready_del
|
id: ready_del
|
||||||
text: qsTr("say 'ready'")
|
text: qsTr("say 'ready'")
|
||||||
checked: _cppAppSettings.loadSetting("ready_en") === "true"
|
checked: _cppAppSettings.loadSetting("ready_en") === "true"
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
height: parent.delegateHeight
|
||||||
|
|
||||||
font.pixelSize: options_stack.text_pixelSize
|
font.pixelSize: options_stack.text_pixelSize
|
||||||
|
|
||||||
onCheckedChanged: {
|
onCheckedChanged: {
|
||||||
_cppAppSettings.writeSetting("ready_en",checked)
|
_cppAppSettings.writeSetting("ready_en",checked)
|
||||||
}
|
}
|
||||||
|
|
||||||
indicator: Rectangle {
|
indicator: SimpleIndicator{}
|
||||||
implicitWidth: 48
|
|
||||||
implicitHeight: 26
|
|
||||||
x: ready_del.width - width - ready_del.rightPadding
|
|
||||||
y: parent.height / 2 - height / 2
|
|
||||||
radius: 13
|
|
||||||
color: ready_del.checked ? "#17a81a" : "transparent"
|
|
||||||
border.color: ready_del.checked ? "#17a81a" : "#cccccc"
|
|
||||||
Behavior on color{
|
|
||||||
ColorAnimation{
|
|
||||||
duration: 200
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
x: ready_del.checked ? parent.width - width : 0
|
|
||||||
width: 26
|
|
||||||
height: 26
|
|
||||||
radius: 13
|
|
||||||
color: ready_del.down ? "#cccccc" : "#ffffff"
|
|
||||||
border.color: ready_del.checked ? (ready_del.down ? "#17a81a" : "#21be2b") : "#999999"
|
|
||||||
Behavior on x{
|
|
||||||
NumberAnimation {
|
|
||||||
property: "x"
|
|
||||||
duration: 200
|
|
||||||
easing.type: Easing.InOutQuad
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemDelegate {
|
ItemDelegate {
|
||||||
|
@ -302,12 +275,15 @@ Popup {
|
||||||
enabled: ready_del.checked
|
enabled: ready_del.checked
|
||||||
width: parent.width
|
width: parent.width
|
||||||
font.pixelSize: options_stack.text_pixelSize
|
font.pixelSize: options_stack.text_pixelSize
|
||||||
|
height: parent.delegateHeight
|
||||||
|
|
||||||
TextField {
|
TextField {
|
||||||
focus: true
|
focus: true
|
||||||
placeholderText: "time"
|
placeholderText: "time"
|
||||||
width: parent.width * 0.3
|
width: parent.width * 0.3
|
||||||
|
height: parent.height
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
inputMethodHints: Qt.ImhFormattedNumbersOnly
|
inputMethodHints: Qt.ImhFormattedNumbersOnly
|
||||||
|
|
||||||
text: _cppAppSettings.loadSetting("ready_delay")
|
text: _cppAppSettings.loadSetting("ready_delay")
|
||||||
|
@ -323,42 +299,15 @@ Popup {
|
||||||
text: qsTr("say\n'at your marks'")
|
text: qsTr("say\n'at your marks'")
|
||||||
checked: _cppAppSettings.loadSetting("at_marks_en") === "true"
|
checked: _cppAppSettings.loadSetting("at_marks_en") === "true"
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
//height: parent.delegateHeight * 1.5
|
||||||
|
|
||||||
font.pixelSize: options_stack.text_pixelSize
|
font.pixelSize: options_stack.text_pixelSize
|
||||||
|
|
||||||
onCheckedChanged: {
|
onCheckedChanged: {
|
||||||
_cppAppSettings.writeSetting("at_marks_en",at_marks_del.checked)
|
_cppAppSettings.writeSetting("at_marks_en",at_marks_del.checked)
|
||||||
}
|
}
|
||||||
|
|
||||||
indicator: Rectangle {
|
indicator: SimpleIndicator{}
|
||||||
implicitWidth: 48
|
|
||||||
implicitHeight: 26
|
|
||||||
x: at_marks_del.width - width - at_marks_del.rightPadding
|
|
||||||
y: parent.height / 2 - height / 2
|
|
||||||
radius: 13
|
|
||||||
color: at_marks_del.checked ? "#17a81a" : "transparent"
|
|
||||||
border.color: at_marks_del.checked ? "#17a81a" : "#cccccc"
|
|
||||||
Behavior on color{
|
|
||||||
ColorAnimation{
|
|
||||||
duration: 200
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Rectangle {
|
|
||||||
x: at_marks_del.checked ? parent.width - width : 0
|
|
||||||
width: 26
|
|
||||||
height: 26
|
|
||||||
radius: 13
|
|
||||||
color: at_marks_del.down ? "#cccccc" : "#ffffff"
|
|
||||||
border.color: at_marks_del.checked ? (at_marks_del.down ? "#17a81a" : "#21be2b") : "#999999"
|
|
||||||
Behavior on x{
|
|
||||||
NumberAnimation {
|
|
||||||
property: "x"
|
|
||||||
duration: 200
|
|
||||||
easing.type: Easing.InOutQuad
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ItemDelegate {
|
ItemDelegate {
|
||||||
|
@ -366,13 +315,17 @@ Popup {
|
||||||
text: "delay (ms)"
|
text: "delay (ms)"
|
||||||
enabled: at_marks_del.checked
|
enabled: at_marks_del.checked
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
height: parent.delegateHeight
|
||||||
|
|
||||||
font.pixelSize: options_stack.text_pixelSize
|
font.pixelSize: options_stack.text_pixelSize
|
||||||
|
|
||||||
TextField {
|
TextField {
|
||||||
focus: true
|
focus: true
|
||||||
placeholderText: "time"
|
placeholderText: "time"
|
||||||
width: parent.width * 0.3
|
width: parent.width * 0.3
|
||||||
|
height: parent.height
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
inputMethodHints: Qt.ImhFormattedNumbersOnly
|
inputMethodHints: Qt.ImhFormattedNumbersOnly
|
||||||
|
|
||||||
text: _cppAppSettings.loadSetting("at_marks_delay")
|
text: _cppAppSettings.loadSetting("at_marks_delay")
|
||||||
|
|
35
qml/SimpleIndicator.qml
Normal file
35
qml/SimpleIndicator.qml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
import QtQuick 2.0
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
property bool checked: parent.checked
|
||||||
|
property bool down: parent.down
|
||||||
|
property int set_height: parent.font.pixelSize * 1.4
|
||||||
|
implicitWidth: set_height * 1.84
|
||||||
|
implicitHeight: set_height
|
||||||
|
x: ready_del.width - width - ready_del.rightPadding
|
||||||
|
y: parent.height / 2 - height / 2
|
||||||
|
radius: implicitHeight * 0.5
|
||||||
|
color: parent.checked ? "#17a81a" : "transparent"
|
||||||
|
border.color: parent.checked ? "#17a81a" : "#cccccc"
|
||||||
|
Behavior on color{
|
||||||
|
ColorAnimation{
|
||||||
|
duration: 200
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
x: parent.checked ? parent.width - width : 0
|
||||||
|
width: parent.height
|
||||||
|
height: parent.height
|
||||||
|
radius: height * 0.5
|
||||||
|
color: parent.down ? "#cccccc" : "#ffffff"
|
||||||
|
border.color: parent.checked ? (parent.down ? "#17a81a" : "#21be2b") : "#999999"
|
||||||
|
Behavior on x{
|
||||||
|
NumberAnimation {
|
||||||
|
property: "x"
|
||||||
|
duration: 200
|
||||||
|
easing.type: Easing.InOutQuad
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
15
qml/main.qml
15
qml/main.qml
|
@ -385,9 +385,9 @@ Window {
|
||||||
id: settingsDialog
|
id: settingsDialog
|
||||||
}
|
}
|
||||||
|
|
||||||
ProfilesDialog {
|
// ProfilesDialog {
|
||||||
id: profilesDialog
|
// id: profilesDialog
|
||||||
}
|
// }
|
||||||
|
|
||||||
/*-------------------
|
/*-------------------
|
||||||
lower line and menu
|
lower line and menu
|
||||||
|
@ -423,9 +423,11 @@ Window {
|
||||||
left: root.landscape() ? undefined:parent.left
|
left: root.landscape() ? undefined:parent.left
|
||||||
top: root.landscape() ? parent.top:undefined
|
top: root.landscape() ? parent.top:undefined
|
||||||
//align in landscape mode
|
//align in landscape mode
|
||||||
topMargin: root.landscape() ? (parent.height - (height * 2)) / 3:undefined
|
//for two buttons: topMargin: root.landscape() ? (parent.height - (height * 2)) / 3:undefined
|
||||||
|
topMargin: root.landscape() ? (parent.height * 0.5 - (height * 0.5)):undefined
|
||||||
//align in portrait mode
|
//align in portrait mode
|
||||||
leftMargin: root.landscape() ? undefined:(parent.width - width * 2) / 3
|
//for two buttons: leftMargin: root.landscape() ? undefined:(parent.width - width * 2) / 3
|
||||||
|
leftMargin: root.landscape() ? undefined:(parent.width * 0.5 - width * 0.5)
|
||||||
}
|
}
|
||||||
|
|
||||||
height: root.landscape() ? parent.width * 0.7:parent.height * 0.7
|
height: root.landscape() ? parent.width * 0.7:parent.height * 0.7
|
||||||
|
@ -462,6 +464,7 @@ Window {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
RoundButton {
|
RoundButton {
|
||||||
id: profilesButt
|
id: profilesButt
|
||||||
|
|
||||||
|
@ -506,6 +509,8 @@ Window {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*----------------------
|
/*----------------------
|
||||||
|
|
|
@ -5,5 +5,6 @@
|
||||||
<file>SettingsDialog.qml</file>
|
<file>SettingsDialog.qml</file>
|
||||||
<file>ProgressCircle.qml</file>
|
<file>ProgressCircle.qml</file>
|
||||||
<file>ProfilesDialog.qml</file>
|
<file>ProfilesDialog.qml</file>
|
||||||
|
<file>SimpleIndicator.qml</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|
|
@ -71,3 +71,9 @@ bool SqlProfileModel::append(QString name)
|
||||||
submitAll();
|
submitAll();
|
||||||
return(true);
|
return(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SqlProfileModel::remove(int row)
|
||||||
|
{
|
||||||
|
removeRows(row, 1);
|
||||||
|
submitAll();
|
||||||
|
}
|
||||||
|
|
Reference in a new issue