Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Q
qtquickcontrols-nemo
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
NemoMobile
qtquickcontrols-nemo
Commits
0102218d
Unverified
Commit
0102218d
authored
Apr 10, 2018
by
Aleksi Suomalainen
Committed by
GitHub
Apr 10, 2018
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #61 from neochapay/5.3.3
5.3.3
parents
c2c387f1
3480e53a
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
698 additions
and
16 deletions
+698
-16
DialogsPage.qml
examples/touch/content/DialogsPage.qml
+100
-11
LiveCoding.qml
examples/touch/content/LiveCoding.qml
+1
-0
TimePickerPage.qml
examples/touch/content/TimePickerPage.qml
+54
-0
glacier-components.qml
examples/touch/glacier-components.qml
+6
-2
touch.pro
examples/touch/touch.pro
+4
-0
controls.pro
src/controls/controls.pro
+4
-2
QueryDialog.qml
src/controls/qml/QueryDialog.qml
+68
-0
TimePicker.qml
src/controls/qml/TimePicker.qml
+202
-0
Dialog.qml
src/controls/qml/dialogs/Dialog.qml
+91
-0
QueryDialog.qml
src/controls/qml/dialogs/QueryDialog.qml
+13
-1
SelectionDialog.qml
src/controls/qml/dialogs/SelectionDialog.qml
+119
-0
qmldir
src/controls/qml/dialogs/qmldir
+2
-0
qmldir
src/controls/qml/qmldir
+1
-0
TextAreaStyle.qml
src/styles/qml/TextAreaStyle.qml
+31
-0
qmldir
src/styles/qml/qmldir
+1
-0
styles.pro
src/styles/styles.pro
+1
-0
No files found.
examples/touch/content/
QueryDialog
Page.qml
→
examples/touch/content/
Dialogs
Page.qml
View file @
0102218d
...
@@ -49,6 +49,39 @@ Page {
...
@@ -49,6 +49,39 @@ Page {
fillMode
:
Image
.
PreserveAspectCrop
fillMode
:
Image
.
PreserveAspectCrop
}
}
ListModel
{
id
:
animalsModel
ListElement
{
name
:
"
Ant
"
;
}
ListElement
{
name
:
"
Flea
"
;
}
ListElement
{
name
:
"
Parrot
"
;
}
ListElement
{
name
:
"
Guinea pig
"
;
}
ListElement
{
name
:
"
Rat
"
;
}
ListElement
{
name
:
"
Butterfly
"
;
}
ListElement
{
name
:
"
Dog
"
;
}
ListElement
{
name
:
"
Cat
"
;
}
ListElement
{
name
:
"
Pony
"
;
}
ListElement
{
name
:
"
Koala
"
;
}
ListElement
{
name
:
"
Horse
"
;
}
ListElement
{
name
:
"
Tiger
"
;
}
ListElement
{
name
:
"
Giraffe
"
;
}
ListElement
{
name
:
"
Elephant
"
;
}
ListElement
{
name
:
"
Whale
"
;
}
}
function
hideButton
(){
standartButton
.
visible
=
false
inlineButton
.
visible
=
false
simpleButton
.
visible
=
false
selectionButton
.
visible
=
false
}
function
showButton
(){
standartButton
.
visible
=
true
inlineButton
.
visible
=
true
simpleButton
.
visible
=
true
selectionButton
.
visible
=
true
}
Button
{
Button
{
id
:
standartButton
id
:
standartButton
anchors
{
anchors
{
...
@@ -56,12 +89,11 @@ Page {
...
@@ -56,12 +89,11 @@ Page {
margins
:
20
margins
:
20
horizontalCenter
:
parent
.
horizontalCenter
horizontalCenter
:
parent
.
horizontalCenter
}
}
text
:
qsTr
(
"
Standart dialog
"
)
text
:
qsTr
(
"
Standart
query
dialog
"
)
onClicked
:
{
onClicked
:
{
deleteDialog
.
inline
=
false
deleteDialog
.
inline
=
false
deleteDialog
.
visible
=
true
deleteDialog
.
open
()
standartButton
.
visible
=
false
hideButton
();
inlineButton
.
visible
=
false
}
}
}
}
...
@@ -72,15 +104,72 @@ Page {
...
@@ -72,15 +104,72 @@ Page {
margins
:
20
margins
:
20
horizontalCenter
:
parent
.
horizontalCenter
horizontalCenter
:
parent
.
horizontalCenter
}
}
text
:
qsTr
(
"
Inline dialog
"
)
text
:
qsTr
(
"
Inline
query
dialog
"
)
onClicked
:
{
onClicked
:
{
deleteDialog
.
inline
=
true
deleteDialog
.
inline
=
true
deleteDialog
.
visible
=
true
deleteDialog
.
open
()
standartButton
.
visible
=
false
hideButton
();
inlineButton
.
visible
=
false
}
}
Button
{
id
:
simpleButton
anchors
{
top
:
inlineButton
.
bottom
margins
:
20
horizontalCenter
:
parent
.
horizontalCenter
}
text
:
qsTr
(
"
Simple dialog
"
)
onClicked
:
{
hideButton
();
simpleDialog
.
open
();
}
}
}
}
Button
{
id
:
selectionButton
anchors
{
top
:
inlineButton
.
bottom
margins
:
20
horizontalCenter
:
parent
.
horizontalCenter
}
text
:
qsTr
(
"
Selection dialog
"
)
onClicked
:
{
hideButton
();
selectionDialog
.
open
();
}
}
Dialog
{
id
:
simpleDialog
acceptText
:
qsTr
(
"
Ok
"
)
headingText
:
qsTr
(
"
Simple dialog
"
)
subLabelText
:
qsTr
(
"
Simple diaolg is open
"
)
inline
:
false
icon
:
"
image://theme/exclamation-triangle
"
onAccepted
:
{
showButton
();
simpleDialog
.
close
();
}
}
SelectionDialog
{
id
:
selectionDialog
visible
:
false
cancelText
:
qsTr
(
"
Cancel
"
)
acceptText
:
qsTr
(
"
Ok
"
)
headingText
:
qsTr
(
"
Select you favorite animal?
"
)
subLabelText
:
qsTr
(
""
)
model
:
animalsModel
onSelectedIndexChanged
:
selectionDialog
.
close
()
}
QueryDialog
{
QueryDialog
{
id
:
deleteDialog
id
:
deleteDialog
visible
:
false
visible
:
false
...
@@ -99,11 +188,11 @@ Page {
...
@@ -99,11 +188,11 @@ Page {
result
.
text
=
qsTr
(
"
User canceled
"
)
result
.
text
=
qsTr
(
"
User canceled
"
)
}
}
onSelected
:
{
onSelected
:
{
standartButton
.
visible
=
true
showButton
();
inlineButton
.
visible
=
true
deleteDialog
.
close
()
visible
=
false
}
}
}
}
Label
{
Label
{
id
:
result
id
:
result
anchors.centerIn
:
parent
anchors.centerIn
:
parent
...
...
examples/touch/content/LiveCoding.qml
View file @
0102218d
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
import
QtQuick
2.6
import
QtQuick
2.6
import
QtQuick
.
Controls
1.0
//needed for the Stack attached property
import
QtQuick
.
Controls
1.0
//needed for the Stack attached property
import
QtQuick
.
Controls
.
Nemo
1.0
import
QtQuick
.
Controls
.
Nemo
1.0
import
QtQuick
.
Controls
.
Styles
.
Nemo
1.0
import
QtQuick
.
Layouts
1.0
import
QtQuick
.
Layouts
1.0
Page
{
Page
{
...
...
examples/touch/content/TimePickerPage.qml
0 → 100644
View file @
0102218d
/****************************************************************************************
**
** Copyright (C) 2018 Chupligin Sergey <neochapay@gmail.com>
** All rights reserved.
**
** You may use this file under the terms of BSD license as follows:
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in the
** documentation and/or other materials provided with the distribution.
** * Neither the name of the author nor the
** names of its contributors may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR
** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
****************************************************************************************/
import
QtQuick
2.6
import
QtQuick
.
Controls
1.0
//needed for the Stack attached property
import
QtQuick
.
Controls
.
Nemo
1.0
import
QtQuick
.
Controls
.
Styles
.
Nemo
1.0
Page
{
id
:
root
headerTools
:
HeaderToolsLayout
{
showBackButton
:
true
;
title
:
qsTr
(
"
Time Picker
"
)
}
Column
{
spacing
:
Theme
.
itemSpacingLarge
*
2
width
:
parent
.
width
TimePicker
{
width
:
parent
.
width
-
Theme
.
itemSpacingLarge
*
2
readOnly
:
false
}
}
}
examples/touch/glacier-components.qml
View file @
0102218d
...
@@ -85,6 +85,10 @@ ApplicationWindow {
...
@@ -85,6 +85,10 @@ ApplicationWindow {
title
:
"
DatePicker
"
title
:
"
DatePicker
"
page
:
"
content/DatePickerPage.qml
"
page
:
"
content/DatePickerPage.qml
"
}
}
ListElement
{
title
:
"
TimePicker
"
page
:
"
content/TimePickerPage.qml
"
}
ListElement
{
ListElement
{
title
:
"
Tabs
"
title
:
"
Tabs
"
page
:
"
content/TabBarPage.qml
"
page
:
"
content/TabBarPage.qml
"
...
@@ -118,8 +122,8 @@ ApplicationWindow {
...
@@ -118,8 +122,8 @@ ApplicationWindow {
page
:
"
content/ButtonRowPage.qml
"
page
:
"
content/ButtonRowPage.qml
"
}
}
ListElement
{
ListElement
{
title
:
"
Query Dialog
"
title
:
"
Dialogs
"
page
:
"
content/
QueryDialog
Page.qml
"
page
:
"
content/
Dialogs
Page.qml
"
}
}
ListElement
{
ListElement
{
title
:
"
Icons
"
title
:
"
Icons
"
...
...
examples/touch/touch.pro
View file @
0102218d
...
@@ -27,6 +27,7 @@ qml.files += \
...
@@ -27,6 +27,7 @@ qml.files += \
content
/
SelectRollerPage
.
qml
\
content
/
SelectRollerPage
.
qml
\
content
/
IconPage
.
qml
\
content
/
IconPage
.
qml
\
content
/
DatePickerPage
.
qml
\
content
/
DatePickerPage
.
qml
\
content
/
TimePickerPage
.
qml
\
content
/
NotificationsPage
.
qml
content
/
NotificationsPage
.
qml
qml
.
path
=
/
usr
/
share
/
glacier
-
components
/
qml
/
content
qml
.
path
=
/
usr
/
share
/
glacier
-
components
/
qml
/
content
...
@@ -44,3 +45,6 @@ INSTALLS += desktop target qml mainqml images
...
@@ -44,3 +45,6 @@ INSTALLS += desktop target qml mainqml images
SOURCES += \
SOURCES += \
src/main.cpp
src/main.cpp
DISTFILES += \
content/TimePickerPage.qml
src/controls/controls.pro
View file @
0102218d
...
@@ -14,7 +14,6 @@ QML_FILES += \
...
@@ -14,7 +14,6 @@ QML_FILES += \
qml
/
Label
.
qml
\
qml
/
Label
.
qml
\
qml
/
Checkbox
.
qml
\
qml
/
Checkbox
.
qml
\
qml
/
ButtonRow
.
qml
\
qml
/
ButtonRow
.
qml
\
qml
/
QueryDialog
.
qml
\
qml
/
Header
.
qml
\
qml
/
Header
.
qml
\
qml
/
HeaderToolsLayout
.
qml
\
qml
/
HeaderToolsLayout
.
qml
\
qml
/
Slider
.
qml
\
qml
/
Slider
.
qml
\
...
@@ -25,9 +24,12 @@ QML_FILES += \
...
@@ -25,9 +24,12 @@ QML_FILES += \
qml
/
InverseMouseArea
.
qml
\
qml
/
InverseMouseArea
.
qml
\
qml
/
IconButton
.
qml
\
qml
/
IconButton
.
qml
\
qml
/
DatePicker
.
qml
\
qml
/
DatePicker
.
qml
\
qml
/
TimePicker
.
qml
\
qml
/
ScrollDecorator
.
qml
\
qml
/
ScrollDecorator
.
qml
\
qml
/
dialogs
/
QueryDialog
.
qml
\
qml
/
dialogs
/
QueryDialog
.
qml
\
qml
/
TextField
.
qml
qml
/
TextField
.
qml
\
qml
/
dialogs
/
SelectionDialog
.
qml
\
qml
/
dialogs
/
Dialog
.
qml
OTHER_FILES
+=
qmldir
\
OTHER_FILES
+=
qmldir
\
$$
QML_FILES
$$
QML_FILES
...
...
src/controls/qml/QueryDialog.qml
0 → 100644
View file @
0102218d
import
QtQuick
2.6
Item
{
id
:
shell
anchors.fill
:
parent
signal
accepted
()
signal
canceled
()
property
alias
cancelText
:
cancel
.
text
property
alias
acceptText
:
accept
.
text
property
alias
headingText
:
heading
.
text
property
alias
subLabelText
:
subLabel
.
text
Rectangle
{
anchors.fill
:
parent
opacity
:
0.65
color
:
Theme
.
backgroundColor
}
Label
{
width
:
parent
.
width
*
0.8
id
:
heading
anchors.centerIn
:
parent
horizontalAlignment
:
Text
.
AlignHCenter
font.weight
:
Theme
.
fontWeightLarge
wrapMode
:
Text
.
Wrap
}
Label
{
id
:
subLabel
width
:
parent
.
width
*
0.8
wrapMode
:
Text
.
Wrap
font.weight
:
Theme
.
fontWeightMedium
horizontalAlignment
:
Text
.
AlignHCenter
anchors
{
top
:
heading
.
bottom
topMargin
:
Theme
.
itemSpacingLarge
horizontalCenter
:
shell
.
horizontalCenter
}
}
Button
{
id
:
cancel
width
:
parent
.
width
/
2
height
:
Theme
.
itemHeightLarge
anchors
{
left
:
parent
.
left
bottom
:
parent
.
bottom
}
onClicked
:
{
shell
.
canceled
()
shell
.
destroy
()
}
}
Button
{
id
:
accept
width
:
parent
.
width
/
2
height
:
Theme
.
itemHeightLarge
primary
:
true
anchors
{
left
:
cancel
.
right
bottom
:
parent
.
bottom
}
onClicked
:
{
shell
.
accepted
()
shell
.
destroy
()
}
}
}
src/controls/qml/TimePicker.qml
0 → 100644
View file @
0102218d
/****************************************************************************************
**
** Copyright (C) 2018 Chupligin Sergey <neochapay@gmail.com>
** All rights reserved.
**
** You may use this file under the terms of BSD license as follows:
**
** Redistribution and use in source and binary forms, with or without
** modification, are permitted provided that the following conditions are met:
** * Redistributions of source code must retain the above copyright
** notice, this list of conditions and the following disclaimer.
** * Redistributions in binary form must reproduce the above copyright
** notice, this list of conditions and the following disclaimer in the
** documentation and/or other materials provided with the distribution.
** * Neither the name of the author nor the
** names of its contributors may be used to endorse or promote products
** derived from this software without specific prior written permission.
**
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
** ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
** WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR
** ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
** (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
** ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
** SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
**
****************************************************************************************/
import
QtQuick
2.6
import
QtQuick
.
Controls
.
Nemo
1.0
Item
{
id
:
timePicker
width
:
400
height
:
width
property
date
currentTime
:
new
Date
()
property
int
hours
:
currentTime
.
getHours
()
property
int
minutes
:
currentTime
.
getHours
()
property
bool
readOnly
:
true
Rectangle
{
anchors.fill
:
parent
color
:
Theme
.
backgroundColor
}
Canvas
{
id
:
canvas
anchors.fill
:
parent
onPaint
:
{
var
context
=
getContext
(
"
2d
"
);
var
centerX
=
canvas
.
width
/
2
var
centerY
=
canvas
.
height
/
2
var
hour_radius
=
canvas
.
width
/
2
*
0.8
-
1.5
*
Theme
.
itemHeightExtraSmall
/
4
-
Theme
.
itemHeightExtraSmall
/
5
/
2
var
hour_end_angle
=
getHourAngle
()
var
minute_radius
=
canvas
.
width
/
2
*
0.8
var
minute_end_angle
=
getMinuteAngle
()
context
.
clearRect
(
0
,
0
,
canvas
.
width
,
canvas
.
height
)
/*Draw hours */
context
.
beginPath
()
context
.
arc
(
centerX
,
centerY
,
hour_radius
,
-
0.5
*
Math
.
PI
,
hour_end_angle
,
false
)
context
.
lineWidth
=
Theme
.
itemHeightExtraSmall
/
2
context
.
strokeStyle
=
Theme
.
accentColor
context
.
globalAlpha
=
1
context
.
stroke
();
/*Draw subhours if time AM*/
if
(
timePicker
.
hours
>
12
)
{
context
.
beginPath
()
context
.
arc
(
centerX
,
centerY
,
hour_radius
,
0
,
2
*
Math
.
PI
,
false
)
context
.
lineWidth
=
Theme
.
itemHeightExtraSmall
/
2
context
.
strokeStyle
=
Theme
.
accentColor
context
.
globalAlpha
=
0.5
context
.
stroke
()
}
/*Draw minute*/
context
.
beginPath
();
context
.
arc
(
centerX
,
centerY
,
minute_radius
,
-
0.5
*
Math
.
PI
,
minute_end_angle
,
false
)
context
.
lineWidth
=
Theme
.
itemHeightExtraSmall
/
5
context
.
strokeStyle
=
Theme
.
accentColor
context
.
globalAlpha
=
0.5
context
.
stroke
()
}
}
Label
{
id
:
hourLabel
text
:
timePicker
.
hours
font.pixelSize
:
Theme
.
itemHeightExtraSmall
/
2
font.bold
:
true
x
:
canvas
.
width
/
2
-
hourLabel
.
contentWidth
-
Theme
.
itemHeightExtraSmall
/
10
y
:
canvas
.
height
/
2
-
(
canvas
.
width
/
2
*
0.8
-
1.5
*
Theme
.
itemHeightExtraSmall
/
4
-
Theme
.
itemHeightExtraSmall
/
5
/
2
)
-
Theme
.
itemHeightExtraSmall
/
4
}
Label
{
id
:
minuteLabel
text
:
timePicker
.
minutes
font.pixelSize
:
Theme
.
itemHeightExtraSmall
/
5
x
:
canvas
.
width
/
2
-
minuteLabel
.
contentWidth
-
Theme
.
itemHeightExtraSmall
/
10
y
:
canvas
.
width
/
2
-
canvas
.
width
/
2
*
0.8
-
Theme
.
itemHeightExtraSmall
/
5
/
2
}
MouseArea
{
anchors.fill
:
parent
onPressed
:
{
if
(
readOnly
)
{
return
;
}
var
minute_rad_max
=
canvas
.
width
/
2
*
0.8
+
Theme
.
itemHeightExtraSmall
/
10
;
var
minute_rad_min
=
canvas
.
width
/
2
*
0.8
-
Theme
.
itemHeightExtraSmall
/
10
;
var
hour_rad_max
=
canvas
.
width
/
2
*
0.8
-
1.5
*
Theme
.
itemHeightExtraSmall
/
4
-
Theme
.
itemHeightExtraSmall
/
5
/
2
+
Theme
.
itemHeightExtraSmall
/
2
var
hour_rad_min
=
canvas
.
width
/
2
*
0.8
-
1.5
*
Theme
.
itemHeightExtraSmall
/
4
-
Theme
.
itemHeightExtraSmall
/
5
/
2
-
Theme
.
itemHeightExtraSmall
/
2
var
clickRad
=
Math
.
sqrt
(
Math
.
pow
((
mouseX
-
canvas
.
width
/
2
),
2
)
+
Math
.
pow
((
mouseY
-
canvas
.
width
/
2
),
2
))
/*If inside min circle*/
if
(
clickRad
<=
minute_rad_max
&&
clickRad
>=
hour_rad_min
)
{
var
ang
=
getAngle
(
mouseX
,
mouseY
)
if
(
clickRad
>=
minute_rad_min
)
{
var
cur_min
=
Math
.
round
(
60
*
ang
/
360
)
timePicker
.
minutes
=
Math
.
round
(
60
*
ang
/
360
)
}
else
if
(
clickRad
<=
hour_rad_max
&&
clickRad
>=
hour_rad_min
)
{
if
(
timePicker
.
hours
>=
12
)
{
timePicker
.
hours
=
Math
.
round
(
12
*
ang
/
360
)
+
12
}
else
{
timePicker
.
hours
=
Math
.
round
(
12
*
ang
/
360
)
}
}
}
}
}
Component
.
onCompleted
:
{
if
(
hours
>
23
||
hours
<
0
)
{
console
.
warn
(
"
[TimePicker] Uncorrect hours value
"
)
hours
=
0
}
if
(
minutes
>
59
||
minutes
<
0
)
{
console
.
warn
(
"
[TimePicker] Uncorrect minutes value
"
)
minutes
=
0
}
}
onMinutesChanged
:
{
canvas
.
requestPaint
()
}
onHoursChanged
:
{
if
(
timePicker
.
hours
==
24
)
{
timePicker
.
hours
=
0
}
canvas
.
requestPaint
()
}
function
getHourAngle
()
{
var
hour
=
timePicker
.
hours
if
(
hour
>
12
)
{
hour
=
hour
-
12
}
return
2
*
Math
.
PI
/
12
*
hour
-
0.5
*
Math
.
PI
}
function
getMinuteAngle
()
{
var
minute
=
timePicker
.
minutes
return
2
*
Math
.
PI
/
60
*
minute
-
0.5
*
Math
.
PI
}
function
getAngle
(
x
,
y
)
{
var
a
=
(
Math
.
atan
((
y
-
canvas
.
width
/
2
)
/
(
x
-
canvas
.
width
/
2
))
*
180
)
/
Math
.
PI
+
90
if
(
x
<
canvas
.
width
/
2
)
{
a
+=
180
}
return
a
}
}
src/controls/qml/dialogs/Dialog.qml
0 → 100644
View file @
0102218d
import
QtQuick
2.6
import
QtQuick
.
Controls
.
Nemo
1.0
Item
{
id
:
shell
anchors.fill
:
parent
signal
accepted
()
property
alias
acceptText
:
accept
.
text
property
alias
headingText
:
heading
.
text
property
alias
subLabelText
:
subLabel
.
text
property
real
bgOpacity
:
1
;
property
string
icon
:
""
property
bool
inline
:
true
function
open
(){
shell
.
visible
=
true
}
function
close
(){
shell
.
visible
=
false
}
visible
:
false
Rectangle
{
id
:
shadow
width
:
parent
.
width
height
:
inline
?
(
parent
.
height
-
accept
.
height
)
/
3
:
parent
.
height
-
accept
.
height
opacity
:
shell
.
bgOpacity
color
:
Theme
.
backgroundColor
anchors.bottom
:
accept
.
top
}
Image
{
id
:
icon
source
:
shell
.
icon
width
:
Theme
.
itemHeightMedium
height
:
width
anchors
{
top
:
shell
.
top
topMargin
:
Theme
.
itemSpacingHuge
horizontalCenter
:
shell
.
horizontalCenter
}
visible
:
shell
.
icon
!=
""
&&
!
inline
fillMode
:
Image
.
PreserveAspectCrop
}
Label
{
id
:
heading
width
:
parent
.
width
*
0.95
anchors
{
centerIn
:
inline
?
shadow
:
parent
}
horizontalAlignment
:
Text
.
AlignHCenter
font.weight
:
Theme
.
fontWeightLarge
font.pixelSize
:
inline
?
Theme
.
fontSizeTiny
:
Theme
.
fontSizeSmall
wrapMode
:
Text
.
Wrap
}
Label
{
id
:
subLabel
width
:
parent
.
width
*
0.95
wrapMode
:
Text
.
Wrap
font.weight
:
Theme
.
fontWeightMedium
font.pixelSize
:
inline
?
Theme
.
fontSizeTiny
:
Theme
.
fontSizeSmall
horizontalAlignment
:
Text
.
AlignHCenter
anchors
{
top
:
heading
.
bottom
topMargin
:
inline
?
Theme
.
itemSpacingSmall
:
Theme
.
itemSpacingLarge
horizontalCenter
:
shell
.
horizontalCenter
}
}
Button
{
id
:
accept
width
:
parent
.
width
height
:
Theme
.
itemHeightLarge
primary
:
true
anchors
{
left
:
parent
.
left
bottom
:
parent
.
bottom
}
onClicked
:
{
shell
.
accepted
()
close
();
}
}
}
src/controls/qml/dialogs/QueryDialog.qml
View file @
0102218d
...
@@ -12,14 +12,24 @@ Item {
...
@@ -12,14 +12,24 @@ Item {
property
alias
headingText
:
heading
.
text
property
alias
headingText
:
heading
.
text
property
alias
subLabelText
:
subLabel
.
text
property
alias
subLabelText
:
subLabel
.
text
property
real
bgOpacity
:
1
;
property
string
icon
:
""
property
string
icon
:
""
property
bool
inline
:
true
property
bool
inline
:
true
function
open
(){
shell
.
visible
=
true
}
function
close
(){
shell
.
visible
=
false
}
Rectangle
{
Rectangle
{
id
:
shadow
id
:
shadow
width
:
parent
.
width
width
:
parent
.
width
height
:
inline
?
(
parent
.
height
-
cancel
.
height
)
/
3
:
parent
.
height
-
cancel
.
height
height
:
inline
?
(
parent
.
height
-
cancel
.
height
)
/
3
:
parent
.
height
-
cancel
.
height
opacity
:
0.65
opacity
:
shell
.
bgOpacity
color
:
Theme
.
backgroundColor
color
:
Theme
.
backgroundColor
anchors.bottom
:
cancel
.
top
anchors.bottom
:
cancel
.
top
}
}
...
@@ -75,6 +85,7 @@ Item {
...
@@ -75,6 +85,7 @@ Item {
onClicked
:
{
onClicked
:
{
shell
.
canceled
()
shell
.
canceled
()
shell
.
selected
()
shell
.
selected
()
close
()
}
}
}
}
Button
{
Button
{
...
@@ -89,6 +100,7 @@ Item {
...
@@ -89,6 +100,7 @@ Item {
onClicked
:
{
onClicked
:
{
shell
.
accepted
()
shell
.
accepted
()
shell
.
selected
()
shell
.
selected
()
close
();
}
}
}
}
}
}
src/controls/qml/dialogs/SelectionDialog.qml
0 → 100644
View file @
0102218d
import
QtQuick
2.6
import
QtQuick
.
Controls
.
Nemo
1.0
Item
{
id
:
shell
anchors.fill
:
parent
signal
accepted
()
signal
canceled
()
property
alias
cancelText
:
cancel
.
text
property
alias
acceptText
:
accept
.
text
property
alias
headingText
:
heading
.
text
property
alias
subLabelText
:
subLabel
.
text
property
real
bgOpacity
:
1
;
property
alias
model
:
selectionListView
.
model
property
int
selectedIndex
:
-
1
property
Component
delegate
:
ListViewItemWithActions
{
label
:
name
showNext
:
false
iconVisible
:
false
onClicked
:
{
shell
.
selectedIndex
=
index
}
}
function
open
(){
shell
.
visible
=
true
}
function
close
(){
shell
.
visible
=
false
}
Rectangle
{
id
:
shadow
width
:
parent
.
width
height
:
parent
.
height
-
cancel
.
height
opacity
:
shell
.
bgOpacity
color
:
Theme
.
backgroundColor
anchors.bottom
:
cancel
.
top
}
Label
{
id
:
heading
width
:
parent
.
width
*
0.95
height
:
Theme
.
itemHeightLarge
anchors
{
top
:
parent
.
top
}
horizontalAlignment
:
Text
.
AlignHCenter
verticalAlignment
:
Text
.
AlignVCenter
font.weight
:
Theme
.
fontWeightLarge
font.pixelSize
:
Theme
.
fontSizeSmall
wrapMode
:
Text
.
Wrap
}
Label
{
id
:
subLabel
width
:
parent
.
width
*
0.95
wrapMode
:
Text
.
Wrap
font.weight
:
Theme
.
fontWeightMedium
font.pixelSize
:
Theme
.
fontSizeSmall
horizontalAlignment
:
Text
.
AlignHCenter
anchors
{
top
:
heading
.
bottom
topMargin
:
Theme
.
itemSpacingLarge
horizontalCenter
:
shell
.
horizontalCenter
}
}
ListView
{
id
:
selectionListView
width
:
parent
.
width
height
:
(
subLabel
.
text
!=
""
)
?
parent
.
height
-
heading
.
height
-
subLabel
.
height
-
cancel
.
height
-
Theme
.
itemSpacingLarge
:
parent
.
height
-
heading
.
height
-
cancel
.
height
-
Theme
.
itemSpacingLarge
delegate
:
shell
.
delegate
anchors.top
:
subLabel
.
bottom
ScrollDecorator
{
flickable
:
selectionListView
}
}
Button
{
id
:
cancel
width
:
parent
.
width
/
2
height
:
Theme
.
itemHeightLarge
anchors
{
left
:
parent
.
left
bottom
:
parent
.
bottom
}
onClicked
:
{
shell
.
canceled
()
close
()
}
}
Button
{
id
:
accept
width
:
parent
.
width
/
2
height
:
Theme
.
itemHeightLarge
primary
:
true
anchors
{
left
:
cancel
.
right
bottom
:
parent
.
bottom
}
onClicked
:
{
shell
.
accepted
()
close
();
}
}
}
src/controls/qml/dialogs/qmldir
View file @
0102218d
QueryDialog 1.0 QueryDialog.qml
QueryDialog 1.0 QueryDialog.qml
Dialog 1.0 Dialog.qml
SelectionDialog 1.0 SelectionDialog.qml
src/controls/qml/qmldir
View file @
0102218d
...
@@ -26,6 +26,7 @@ GlacierRollerItem 1.0 GlacierRollerItem.qml
...
@@ -26,6 +26,7 @@ GlacierRollerItem 1.0 GlacierRollerItem.qml
InverseMouseArea 1.0 InverseMouseArea.qml
InverseMouseArea 1.0 InverseMouseArea.qml
IconButton 1.0 IconButton.qml
IconButton 1.0 IconButton.qml
DatePicker 1.0 DatePicker.qml
DatePicker 1.0 DatePicker.qml
TimePicker 1.0 TimePicker.qml
ScrollDecorator 1.0 ScrollDecorator.qml
ScrollDecorator 1.0 ScrollDecorator.qml
TextField 1.0 TextField.qml
TextField 1.0 TextField.qml
...
...
src/styles/qml/TextAreaStyle.qml
0 → 100644
View file @
0102218d
/*
* Copyright (C) 2013 Andrea Bernabei <and.bernabei@gmail.com>
* Copyright (C) 2018 Chupligin Sergey <neochapay@gmail.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public License
* along with this library; see the file COPYING.LIB. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301, USA.
*/
import
QtQuick
2.6
import
QtQuick
.
Controls
.
Styles
1.4
import
QtQuick
.
Controls
.
Nemo
1.0
TextAreaStyle
{
id
:
nemoStyle
textColor
:
Theme
.
textColor
selectionColor
:
Theme
.
accentColor
selectedTextColor
:
Theme
.
textColor
backgroundColor
:
Theme
.
backgroundColor
}
src/styles/qml/qmldir
View file @
0102218d
...
@@ -20,4 +20,5 @@ SpinBoxStyle 1.0 SpinBoxStyle.qml
...
@@ -20,4 +20,5 @@ SpinBoxStyle 1.0 SpinBoxStyle.qml
TabViewStyle 1.0 TabViewStyle.qml
TabViewStyle 1.0 TabViewStyle.qml
TableViewStyle 1.0 TableViewStyle.qml
TableViewStyle 1.0 TableViewStyle.qml
TextFieldStyle 1.0 TextFieldStyle.qml
TextFieldStyle 1.0 TextFieldStyle.qml
TextAreaStyle 1.0 TextAreaStyle.qml
IconButtonStyle 1.0 IconButtonStyle.qml
IconButtonStyle 1.0 IconButtonStyle.qml
src/styles/styles.pro
View file @
0102218d
...
@@ -25,6 +25,7 @@ QML_FILES = \
...
@@ -25,6 +25,7 @@ QML_FILES = \
qml
/
TableViewStyle
.
qml
\
qml
/
TableViewStyle
.
qml
\
qml
/
TabViewStyle
.
qml
\
qml
/
TabViewStyle
.
qml
\
qml
/
TextFieldStyle
.
qml
\
qml
/
TextFieldStyle
.
qml
\
qml
/
TextAreaStyle
.
qml
\
qml
/
ToolBarStyle
.
qml
\
qml
/
ToolBarStyle
.
qml
\
qml
/
ToolButtonStyle
.
qml
\
qml
/
ToolButtonStyle
.
qml
\
qml
/
IconButtonStyle
.
qml
qml
/
IconButtonStyle
.
qml
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment