- minor bug fixes

- moved icons to QIcon
- moved buttons in top bar to ToolButton
This commit is contained in:
Dorian Zedler 2019-06-09 13:32:52 +02:00
parent e7e75e79d4
commit 106628b6d0
32 changed files with 122 additions and 280 deletions

View file

@ -1,5 +1,5 @@
<?xml version="1.0"?>
<manifest package="com.itsblue.blueROCK" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.01.4b" android:versionCode="5" android:installLocation="auto">
<manifest package="com.itsblue.blueROCKtest" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="0.01.4b" android:versionCode="5" android:installLocation="auto">
<application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="blueROCK" android:icon="@drawable/icon">
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation" android:name="org.qtproject.qt5.android.bindings.QtActivity" android:label="blueROCK (for digitalROCK)" android:screenOrientation="unspecified" android:launchMode="singleTop">
<intent-filter>

View file

@ -22,7 +22,10 @@ SOURCES += \
sources/serverconn.cpp
RESOURCES += resources/qml/qml.qrc \
resources/shared/shared.qrc
resources/shared/shared.qrc \
#resources/shared/icons/bluerock/index.theme \
#$$files(resources/shared/icons/*.png, true)
# Additional import path used to resolve QML modules in Qt Creator's code model
QML_IMPORT_PATH =
@ -40,4 +43,6 @@ HEADERS += \
DISTFILES += \
CHANGELOG.md \
android-sources/AndroidManifest.xml
android-sources/AndroidManifest.xml \
resources/shared/icons/bluerock/index.theme \
$$files(resources/shared/icons/*.png, true)

View file

@ -20,7 +20,7 @@ import QtQuick 2.9
import QtQuick.Controls 2.4
import QtGraphicalEffects 1.0
Button {
ToolButton {
id: control
property string image
@ -33,36 +33,19 @@ Button {
property double glowScale: 0.75
property double glowOpacity: 1
scale: control.pressed ? 0.8:1
Behavior on scale {
PropertyAnimation {
duration: 100
}
}
Behavior on backgroundColor {
ColorAnimation {
duration: 200
}
}
contentItem: Text {
visible: false
}
Text {
id: conetntText
text: qsTr(control.text)
anchors.centerIn: parent
font: parent.font
color: control.textColor
opacity: control.enabled ? 1:0.4
}
background: Item {
contentItem: Item {
id: controlBackgroundContainer
anchors.fill: parent
opacity: 1
RectangularGlow {
id: effect
glowRadius: control.glowRadius
@ -84,7 +67,7 @@ Button {
radius: height * 0.5
color: control.backgroundColor
color: control.down ? Qt.darker(control.backgroundColor, 1.03) : control.backgroundColor
Image {
id: buttonIcon
@ -100,7 +83,23 @@ Button {
scale: control.imageScale
}
Behavior on color {
ColorAnimation {
duration: 100
}
}
}
}
Text {
id: conetntText
text: qsTr(control.text)
anchors.centerIn: parent
font: parent.font
color: control.textColor
opacity: control.enabled ? 1:0.4
}
}

View file

@ -1,21 +1,3 @@
/*
blueROCK - for digital rock
Copyright (C) 2019 Dorian Zedler
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program 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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import QtQuick 2.9
import QtQuick.Controls 2.4
import QtGraphicalEffects 1.0
@ -33,7 +15,7 @@ Item {
property int preRefreshDelay: 1000 // delay before reload funcion is called
property int refreshPosition: height * 1.2 // position of the item when refreshing
property int dragOutPosition: height * 2 // position of the item when starting to refresh
property int dragOutPosition: height * 1.8 // position of the item when starting to refresh
property color backgroundColor: "white" // color for the pre-defined background
property color pullIndicatorColor: "black" // color for the pre-defined pull indicator
@ -87,7 +69,7 @@ Item {
var lineWidth = 2
var progress = drawProgress
console.log(progress)
// modify all values to math the progress
arrowHeight = arrowHeight * progress
@ -147,14 +129,15 @@ Item {
anchors {
top: control.target.top
horizontalCenter: control.target.horizontalCenter
topMargin: control.position - height * 1.1
topMargin: control.position - height
}
onUserPositionChanged: {
if(control.state === "idle" && userPosition >= control.dragOutPosition){
console.log(userPosition)
if(control.state === "idle" && userPosition >= control.dragOutPosition * 0.9){
control.state = "ready"
}
else if(control.state === "ready" && userPosition < control.dragOutPosition){
else if(control.state === "ready" && userPosition < control.dragOutPosition * 0.9){
control.state = "refreshing"
preRefreshTimer.start()
}
@ -197,7 +180,7 @@ Item {
Behavior on minimumPosition {
enabled: control.state !== "hidden" && control.state !== "idle"
NumberAnimation {
duration: 200
duration: 100
}
}
@ -228,7 +211,7 @@ Item {
PropertyChanges {
target: control
minimumPosition: userPosition > maximumPosition ? maximumPosition:userPosition
userPosition: Math.abs( target.verticalOvershoot )
userPosition: -1 / (Math.abs( target.verticalOvershoot * 0.001 ) + 1 / control.dragOutPosition * 0.001) + control.dragOutPosition // Math.abs( target.verticalOvershoot )
maximumPosition: control.dragOutPosition
}
@ -242,8 +225,8 @@ Item {
PropertyChanges {
target: control
maximumPosition: control.dragOutPosition
userPosition: Math.abs( target.verticalOvershoot )
minimumPosition: control.maximumPosition - 1
userPosition: -1 / (Math.abs( target.verticalOvershoot * 0.001 ) + 1 / control.dragOutPosition * 0.001) + control.dragOutPosition // Math.abs( target.verticalOvershoot )
minimumPosition: userPosition > maximumPosition - 1 ? maximumPosition - 1:userPosition
}
PropertyChanges {
@ -296,7 +279,7 @@ Item {
transitions: [
Transition {
NumberAnimation {
duration: 200
duration: 100
properties: "rotation, opacity"
}
},

View file

@ -18,6 +18,7 @@
import QtQuick 2.9
import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
import "../Components"
@ -27,99 +28,31 @@ DataListView {
property bool ready
property string title: (params.nation === "" ? "IFSC":params.nation === "GER" ? "DAV":"SAC") + " " + qsTr("competition calendar") + " " + control.year
property Component headerComponent: Row {
property Component headerComponent: RowLayout {
anchors {
top: parent.top
bottom: parent.bottom
right: parent.right
rightMargin: 5
}
height: parent.height
width: childrenRect.width
spacing: 0
spacing: width * 0.1
Button {
ToolButton {
id:yearToolBt
anchors {
verticalCenter: parent.verticalCenter
}
height: parent.height * 0.5
width: height
onClicked: {
control.changeYear()
}
onPressed: yearToolBt.scale = 0.9
onReleased: yearToolBt.scale = 1.0
background: Image {
anchors.centerIn: parent
source: "qrc:/icons/calendar.png"
height: parent.height > parent.width ? parent.width : parent.height
width: height
mipmap: true
fillMode: Image.PreserveAspectFit
Behavior on scale {
PropertyAnimation {
duration: 100
}
}
}
icon.name: "calendar"
}
Button {
ToolButton {
id: cupToolBt
anchors {
verticalCenter: parent.verticalCenter
}
height: parent.height * 0.5
width: height
onClicked: {
control.openCup()
}
onPressed: cupToolBt.scale = 0.9
onReleased: cupToolBt.scale = 1.0
background: Image {
anchors.centerIn: parent
source: "qrc:/icons/cup.png"
height: parent.height > parent.width ? parent.width : parent.height
width: height
mipmap: true
fillMode: Image.PreserveAspectFit
Behavior on scale {
PropertyAnimation {
duration: 100
}
}
}
icon.name: "cup"
}
Item {
id: spacer
height: parent.height
width: 1
}
}
property var widgetData: currentWidgetData

View file

@ -30,49 +30,14 @@ DataListView {
property string subTitle: getSubtitle()
property bool titleIsPageTitle: true
property Component headerComponent: Item {
height: parent.height
width: moreToolBt.width * 1.5
Button {
property Component headerComponent: ToolButton {
id: moreToolBt
anchors {
verticalCenter: parent.verticalCenter
right: parent.right
rightMargin: parent.width * 0.5
}
height: parent.height * 0.5
width: height
onClicked: {
control.changeCat()
}
onPressed: moreToolBt.scale = 0.9
onReleased: moreToolBt.scale = 1.0
background: Image {
anchors.centerIn: parent
source: "qrc:/icons/more_black.png"
height: parent.height > parent.width ? parent.width : parent.height
width: height
mipmap: true
fillMode: Image.PreserveAspectFit
Behavior on scale {
PropertyAnimation {
duration: 100
}
}
}
}
icon.name: "menu"
}
property var widgetData: currentWidgetData
@ -134,8 +99,9 @@ DataListView {
var selectOptions = []
for(var prop in cats){
if (cats.hasOwnProperty(prop) && !control.subTitle.includes(cats[prop]['name'])) {
if (cats.hasOwnProperty(prop) && parseInt(cats[prop]["GrpId"]) !== parseInt(params.cat)) {
// append all cats and ignore the current one
//console.log("found cat: ", cats[prop]['name'])
selectOptions.push({text: cats[prop]['name'], data:{cat: cats[prop]['GrpId']}})
}
}

View file

@ -31,49 +31,14 @@ DataListView {
property string subTitle: getSubtitle()
property bool titleIsPageTitle: true
property Component headerComponent: Item {
height: parent.height
width: moreToolBt.width * 1.5
Button {
property Component headerComponent: ToolButton {
id: moreToolBt
anchors {
verticalCenter: parent.verticalCenter
right: parent.right
rightMargin: parent.width * 0.5
}
height: parent.height * 0.5
width: height
onClicked: {
control.changeCat()
}
onPressed: moreToolBt.scale = 0.9
onReleased: moreToolBt.scale = 1.0
background: Image {
anchors.centerIn: parent
source: "qrc:/icons/more_black.png"
height: parent.height > parent.width ? parent.width : parent.height
width: height
mipmap: true
fillMode: Image.PreserveAspectFit
Behavior on scale {
PropertyAnimation {
duration: 100
}
}
}
}
icon.name: "menu"
}
property var widgetData: currentWidgetData
@ -137,8 +102,9 @@ DataListView {
var selectOptions = []
for(var prop in cats){
if (cats.hasOwnProperty(prop) && !control.subTitle.includes(cats[prop]['name'])) {
if (cats.hasOwnProperty(prop) && parseInt(cats[prop]["GrpId"]) !== parseInt(params.cat)) {
// append all cats and ignore the current one
//console.log("found cat: ", cats[prop]['name'])
selectOptions.push({text: cats[prop]['name'], data:{cat: cats[prop]['GrpId']}})
}
}

View file

@ -31,49 +31,14 @@ DataListView {
property string subTitle: qsTr("(Startlist)") + " " + control.widgetData['route_name'] //getSubtitle()
property bool titleIsPageTitle: true
property Component headerComponent: Item {
height: parent.height
width: moreToolBt.width * 1.5
Button {
property Component headerComponent: ToolButton {
id: moreToolBt
anchors {
verticalCenter: parent.verticalCenter
right: parent.right
rightMargin: parent.width * 0.5
}
height: parent.height * 0.5
width: height
onClicked: {
control.changeCat()
}
onPressed: moreToolBt.scale = 0.9
onReleased: moreToolBt.scale = 1.0
background: Image {
anchors.centerIn: parent
source: "qrc:/icons/more_black.png"
height: parent.height > parent.width ? parent.width : parent.height
width: height
mipmap: true
fillMode: Image.PreserveAspectFit
Behavior on scale {
PropertyAnimation {
duration: 100
}
}
}
}
icon.name: "menu"
}
function getSubtitle() {
@ -105,8 +70,9 @@ DataListView {
var selectOptions = []
for(var prop in cats){
if (cats.hasOwnProperty(prop) && !control.subTitle.includes(cats[prop]['name'])) {
if (cats.hasOwnProperty(prop) && parseInt(cats[prop]["GrpId"]) !== parseInt(params.cat)) {
// append all cats and ignore the current one
//console.log("found cat: ", cats[prop]['name'])
selectOptions.push({text: cats[prop]['name'], data:{cat: cats[prop]['GrpId']}})
}
}
@ -308,7 +274,7 @@ DataListView {
delegate: TabButton {
text: routeSelectTb.tabs[index][1]
width: Math.max(150, routeSelectTb.width / routeSelectButtonRep.model) //text.length * font.pixelSize
width: Math.max(150, root.width / routeSelectButtonRep.model) //text.length * font.pixelSize
onClicked: {
//console.log("changing to index: " + index + " (" + routeSelectTb.tabs[index][0] + ", " + routeSelectTb.tabs[index][1] + ")")

View file

@ -19,6 +19,7 @@
import QtQuick 2.9
import QtQuick.Window 2.2
import QtQuick.Controls 2.4
import QtQuick.Layouts 1.3
import com.itsblue.digitalRockRanking 1.0
@ -247,27 +248,16 @@ Window {
showErrorBar: true
Row {
RowLayout {
anchors.fill: parent
spacing: width * 0.02
Item {
id: spacer
width: 1
height: parent.height
}
Button {
ToolButton {
id:toolButton
anchors {
verticalCenter: parent.verticalCenter
}
height: parent.height * 0.5
width: height
height: parent.height
onClicked: {
if(!mainStack.currentItem.locked){
@ -275,27 +265,12 @@ Window {
}
}
onPressed: toolButton.scale = 0.9
onReleased: toolButton.scale = 1.0
background: Image {
source: "qrc:/icons/backDark.png"
height: parent.height
width: height
fillMode: Image.PreserveAspectFit
Behavior on scale {
PropertyAnimation {
duration: 100
}
}
}
icon.name: "back"
}
Column {
anchors.verticalCenter: parent.verticalCenter
Layout.fillWidth: true
height: childrenRect.height
width: parent.width - extraComponentLoader.width - toolButton.width - 3 * parent.spacing
@ -381,10 +356,6 @@ Window {
property int maximumWidth: parent.width * 0.4 - toolButton.width - 3
height: parent.height
anchors {
top: parent.top
bottom: parent.bottom
}
onItemChanged: {
width = status === Loader.Ready ? item.width:0

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 431 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 379 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 289 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 672 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 778 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 351 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 888 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 193 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 452 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 790 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 131 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 B

View file

@ -0,0 +1,24 @@
[Icon Theme]
Name=blueROCK
Comment=blueROCK Icon Theme
Directories=20x20,20x20@2,20x20@3,20x20@4
[20x20]
Size=20
Type=Fixed
[20x20@2]
Size=20
Scale=2
Type=Fixed
[20x20@3]
Size=20
Scale=3
Type=Fixed
[20x20@4]
Size=20
Scale=4
Type=Fixed

View file

@ -9,5 +9,30 @@
<file>icons/cup.png</file>
<file>Banner.png</file>
<file>icons/more_black.png</file>
<file>icons/bluerock/20x20/back.png</file>
<file>icons/bluerock/20x20/cup.png</file>
<file>icons/bluerock/20x20/drawer.png</file>
<file>icons/bluerock/20x20/menu.png</file>
<file>icons/bluerock/20x20@2/back.png</file>
<file>icons/bluerock/20x20@2/cup.png</file>
<file>icons/bluerock/20x20@2/drawer.png</file>
<file>icons/bluerock/20x20@2/menu.png</file>
<file>icons/bluerock/20x20@3/back.png</file>
<file>icons/bluerock/20x20@3/cup.png</file>
<file>icons/bluerock/20x20@3/drawer.png</file>
<file>icons/bluerock/20x20@3/menu.png</file>
<file>icons/bluerock/20x20@4/back.png</file>
<file>icons/bluerock/20x20@4/cup.png</file>
<file>icons/bluerock/20x20@4/drawer.png</file>
<file>icons/bluerock/20x20@4/menu.png</file>
<file>icons/bluerock/index.theme</file>
<file>icons/dig_rock.klein.jpg</file>
<file>icons/dig_rock.klein.png</file>
<file>icons/favicon.png</file>
<file>icons/json.php.json</file>
<file>icons/bluerock/20x20/calendar.png</file>
<file>icons/bluerock/20x20@2/calendar.png</file>
<file>icons/bluerock/20x20@3/calendar.png</file>
<file>icons/bluerock/20x20@4/calendar.png</file>
</qresource>
</RCC>

View file

@ -20,16 +20,20 @@
#include <QGuiApplication>
#include <QtQml/QQmlContext>
#include <QQmlApplicationEngine>
#include <QIcon>
#include "headers/serverconn.h"
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
QGuiApplication app(argc, argv);
QQuickStyle::setStyle("Material");
QIcon::setFallbackSearchPaths(QIcon::fallbackSearchPaths() << ":/resources/shared/icons");
QIcon::setThemeName("bluerock");
qmlRegisterType<ServerConn>("com.itsblue.digitalRockRanking", 1, 0, "ServerConn");