Merge v0.6.0 and v0.6.1 #29
20 changed files with 215 additions and 159 deletions
15
CHANGELOG.md
15
CHANGELOG.md
|
@ -4,6 +4,17 @@ All notable changes to this project will be documented in this file.
|
|||
The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
||||
|
||||
# [0.06] - UNRELEASED
|
||||
### Changed
|
||||
|
||||
### Added
|
||||
- Dark mode
|
||||
- QR-Code scanning
|
||||
- Sharing of every view using either link, QR-Code or a poster
|
||||
- Text which is too large too fit is scrollable now in most places
|
||||
- German translations
|
||||
- URL handler for https://l.bluerock.dev and https://app.bluerock.dev
|
||||
|
||||
# [0.05] - 2021-06-07
|
||||
### Changed
|
||||
- the boulder result rect doesn't have a background if there is no result now
|
||||
|
@ -16,7 +27,9 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
|
|||
- the calendar now scrolls less far down
|
||||
- improoved layout in landscape mode
|
||||
- some design changes in profile page and speed flowchart
|
||||
- added second link for "further infos" in calendar
|
||||
|
||||
### Added
|
||||
- Second link for "further infos" in calendar
|
||||
|
||||
# [0.03.0] - 2019-07-11
|
||||
### Added
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
|
||||
<supports-screens android:largeScreens="true" android:normalScreens="true" android:anyDensity="true" android:smallScreens="true"/>
|
||||
<application android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" android:label="-- %%INSERT_APP_NAME%% --" android:extractNativeLibs="true" android:icon="@drawable/icon">
|
||||
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="de.itsblue.blueROCK.MainActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="unspecified" android:launchMode="singleTop">
|
||||
<activity android:configChanges="orientation|uiMode|screenLayout|screenSize|smallestScreenSize|layoutDirection|locale|fontScale|keyboard|keyboardHidden|navigation|mcc|mnc|density" android:name="de.itsblue.blueROCK.MainActivity" android:label="-- %%INSERT_APP_NAME%% --" android:screenOrientation="unspecified" android:launchMode="singleInstance">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
|
|
|
@ -73,7 +73,7 @@ android {
|
|||
defaultConfig {
|
||||
resConfig "en"
|
||||
minSdkVersion = qtMinSdkVersion
|
||||
targetSdkVersion = 29
|
||||
targetSdkVersion = qtTargetSdkVersion
|
||||
}
|
||||
|
||||
lintOptions {
|
||||
|
|
|
@ -96,6 +96,7 @@ public class MainActivity extends QtActivity
|
|||
// this method here - otherwise you'll get wrong request or result codes
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
// Check which request we're responding to
|
||||
Log.d("ekkescorner onActivityResult", "requestCode: "+requestCode);
|
||||
if (resultCode == RESULT_OK) {
|
||||
|
|
|
@ -89,7 +89,7 @@ android {
|
|||
|
||||
ANDROID_VERSION_NAME = $$VERSION
|
||||
ANDROID_VERSION_CODE = $$droidVersionCode($$ANDROID_VERSION_NAME)
|
||||
message(Android version code: $$ANDROID_VERSION_CODE)
|
||||
ANDROID_TARGET_SDK_VERSION = 29
|
||||
|
||||
include(/home/dorian/Android/Sdk/android_openssl/openssl.pri)
|
||||
ANDROID_PACKAGE_SOURCE_DIR = $$PWD/android
|
||||
|
|
88
resources/qml/Components/MovingLabel.qml
Normal file
88
resources/qml/Components/MovingLabel.qml
Normal file
|
@ -0,0 +1,88 @@
|
|||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Controls.Material 2.12
|
||||
|
||||
Item {
|
||||
id: control
|
||||
|
||||
property alias text: firstLabel.text
|
||||
property alias font: firstLabel.font
|
||||
property alias verticalAlignment: firstLabel.verticalAlignment
|
||||
property int spacing: 30
|
||||
|
||||
property MovingLabel syncWithLabel
|
||||
property int _spacing: syncWithLabel && syncWithLabel._labelWidth > _labelWidth ? (syncWithLabel._labelWidth - _labelWidth + syncWithLabel.spacing) : spacing
|
||||
property alias _labelWidth: firstLabel.width
|
||||
|
||||
signal linkActivated(string link)
|
||||
|
||||
clip: true
|
||||
height: firstLabel.height
|
||||
|
||||
onTextChanged: {
|
||||
_resetScroll()
|
||||
}
|
||||
|
||||
function startScroll(triggerSyncedLabel=true) {
|
||||
if(control.syncWithLabel && triggerSyncedLabel)
|
||||
control.syncWithLabel.startScroll(false)
|
||||
if(control.width < firstLabel.width && !scrollAnimation.running)
|
||||
scrollAnimation.start()
|
||||
}
|
||||
|
||||
function _resetScroll() {
|
||||
scrollAnimation.stop()
|
||||
firstLabel.anchors.leftMargin = 0
|
||||
}
|
||||
|
||||
Label {
|
||||
id: firstLabel
|
||||
|
||||
anchors {
|
||||
left: parent.left
|
||||
verticalCenter: parent.verticalCenter
|
||||
}
|
||||
|
||||
onLinkActivated: control.onLinkActivated(link)
|
||||
}
|
||||
|
||||
Label {
|
||||
id: secondLabel
|
||||
|
||||
anchors {
|
||||
left: firstLabel.right
|
||||
leftMargin: control._spacing
|
||||
verticalCenter: firstLabel.verticalCenter
|
||||
}
|
||||
|
||||
visible: scrollAnimation.running
|
||||
|
||||
font: firstLabel.font
|
||||
text: firstLabel.text
|
||||
verticalAlignment: firstLabel.verticalAlignment
|
||||
elide: firstLabel.elide
|
||||
bottomPadding: firstLabel.bottomPadding
|
||||
padding: firstLabel.padding
|
||||
|
||||
onLinkActivated: control.onLinkActivated(link)
|
||||
}
|
||||
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: control.startScroll()
|
||||
}
|
||||
|
||||
NumberAnimation {
|
||||
id: scrollAnimation
|
||||
target: firstLabel
|
||||
property: "anchors.leftMargin"
|
||||
from: 0
|
||||
to: -(firstLabel.width + control._spacing)
|
||||
duration: (to / -100) * 1500
|
||||
|
||||
onRunningChanged: {
|
||||
if(!running)
|
||||
control._resetScroll()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
import QtQuick 2.9
|
||||
import QtQuick.Controls 2.4
|
||||
import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Controls.Material 2.3
|
||||
|
||||
Dialog {
|
||||
|
@ -33,37 +33,35 @@ Dialog {
|
|||
id: selectorPuHeaderCol
|
||||
|
||||
width: control.width
|
||||
height: headerSubLa.text !== "" && headerLa.text !== "" ? 73 : 40
|
||||
height: headerLa.height + headerTopSpacerItm.height + (control.subTitle ? headerSubLa.height:0)
|
||||
|
||||
Label {
|
||||
Item {
|
||||
id: headerTopSpacerItm
|
||||
height: control.padding
|
||||
width: parent.width
|
||||
}
|
||||
|
||||
MovingLabel {
|
||||
id: headerLa
|
||||
|
||||
visible: control.title
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: selectorPuHeaderCol.width - control.padding * 2
|
||||
|
||||
width: selectorPuHeaderCol.width
|
||||
|
||||
elide: "ElideRight"
|
||||
padding: control.padding
|
||||
bottomPadding: 0
|
||||
font.bold: true
|
||||
font.pixelSize: 16
|
||||
|
||||
text: control.title
|
||||
|
||||
onLinkActivated: {
|
||||
control.linkActivated(link)
|
||||
}
|
||||
onLinkActivated: control.linkActivated(link)
|
||||
}
|
||||
|
||||
Label {
|
||||
id: headerSubLa
|
||||
|
||||
visible: control.subTitle
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: selectorPuHeaderCol.width - control.padding * 2
|
||||
|
||||
width: selectorPuHeaderCol.width
|
||||
|
||||
elide: "ElideRight"
|
||||
padding: control.padding
|
||||
wrapMode: Text.Wrap
|
||||
topPadding: 5
|
||||
bottomPadding: 0
|
||||
font.bold: true
|
||||
|
|
|
@ -4,13 +4,10 @@ import QtQuick.Controls.Material 2.12
|
|||
import QtQuick.Layouts 1.15
|
||||
import QtPurchasing 1.12
|
||||
|
||||
Rectangle {
|
||||
id: speedFlowChartLockedOverlay
|
||||
Page {
|
||||
id: control
|
||||
|
||||
anchors.fill: parent
|
||||
anchors.margins: -20
|
||||
|
||||
color: Material.background
|
||||
|
||||
Connections {
|
||||
target: speedFlowChartProduct
|
||||
|
@ -38,42 +35,40 @@ Rectangle {
|
|||
}
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Column {
|
||||
id: lockedLayout
|
||||
|
||||
anchors {
|
||||
fill: parent
|
||||
topMargin: parent.height * 0.05
|
||||
topMargin: parent.height * 0.02
|
||||
bottomMargin: parent.height * 0.05
|
||||
rightMargin: parent.width * 0.1 + 20
|
||||
leftMargin: parent.width * 0.1 + 20
|
||||
}
|
||||
|
||||
//spacing: parent.height * 0.05
|
||||
spacing: lockedLayout.height * 0.01
|
||||
|
||||
Label {
|
||||
Layout.fillWidth: true
|
||||
|
||||
height: parent.height * 0.015
|
||||
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
height: lockedLayout.height * 0.03
|
||||
width: lockedLayout.width
|
||||
//% "This is a premium feature."
|
||||
text: qsTrId("#thisIsAPremiumFeature")
|
||||
|
||||
font.bold: true
|
||||
font.pixelSize: height
|
||||
font.bold: true
|
||||
fontSizeMode: Text.Fit
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
|
||||
minimumPixelSize: 1
|
||||
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
|
||||
}
|
||||
|
||||
SwipeGallery {
|
||||
property string platformIcons: Qt.platform.os === "osx" || Qt.platform.os === "iso" ? "ios":"android"
|
||||
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
height: lockedLayout.height * 0.85
|
||||
width: lockedLayout.width
|
||||
|
||||
images: [
|
||||
"qrc:/screenshots/SpeedFlowchartDemo/" + platformIcons + "/1.jpeg",
|
||||
|
@ -84,25 +79,33 @@ Rectangle {
|
|||
|
||||
Button {
|
||||
id: purchaseBt
|
||||
Layout.alignment: Layout.Center
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
height: lockedLayout.height * 0.07
|
||||
enabled: speedFlowChartProduct.status === Product.Registered
|
||||
text: speedFlowChartProduct.status === Product.Registered
|
||||
? "\uf218 "+ qsTrId("#buyNowFor") + " " + speedFlowChartProduct.price
|
||||
: qsTrId("#itemIsUnavailable")
|
||||
font.family: fa5solid.name
|
||||
font.pixelSize: height * 0.4
|
||||
font.capitalization: Font.MixedCase
|
||||
onClicked: speedFlowChartProduct.purchase()
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
id: bottomRow
|
||||
|
||||
Layout.alignment: Layout.Center
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
height: lockedLayout.height * 0.065
|
||||
|
||||
Button {
|
||||
id: restorePurchaseButton
|
||||
Layout.alignment: Layout.Center
|
||||
visible: speedFlowChartProduct.status === Product.Registered
|
||||
Layout.preferredHeight: bottomRow.height
|
||||
//visible: speedFlowChartProduct.status === Product.Registered
|
||||
|
||||
flat: true
|
||||
font.pixelSize: height * 0.4
|
||||
font.capitalization: Font.MixedCase
|
||||
//% "Restore purchase"
|
||||
text: qsTrId("#restorePurchase")
|
||||
|
||||
|
@ -112,8 +115,11 @@ Rectangle {
|
|||
Button {
|
||||
id: contactSupportButton
|
||||
Layout.alignment: Layout.Center
|
||||
Layout.preferredHeight: bottomRow.height
|
||||
|
||||
flat: true
|
||||
font.pixelSize: height * 0.4
|
||||
font.capitalization: Font.MixedCase
|
||||
//% "contact support"
|
||||
text: qsTrId("#contact support")
|
||||
|
||||
|
|
|
@ -11,6 +11,9 @@ Rectangle {
|
|||
//property bool unlocked: QT_DEBUG || appSettings.read("speedBackendPurchase") === "1"
|
||||
property bool unlocked: appSettings.read("speedBackendPurchase") === "1"
|
||||
|
||||
Component.onCompleted: {
|
||||
console.warn("unlocked:", appSettings.read("speedBackendPurchase"))
|
||||
}
|
||||
|
||||
state: "hidden"
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ Item {
|
|||
anchors.fill: parent
|
||||
anchors.margins: 1
|
||||
anchors.bottomMargin: indicator.height
|
||||
spacing: width * 0.2
|
||||
|
||||
Repeater {
|
||||
model: control.images.length
|
||||
|
|
|
@ -94,7 +94,7 @@ Page {
|
|||
}
|
||||
|
||||
width: app.landscape() ? childrenRect.width : parent.width * 0.8
|
||||
height: app.landscape() ? headerBadge.height : headerBadge.height * 2
|
||||
height: app.landscape() ? headerBadge.height : Math.min(headerBadge.height * 2, width * 0.27)
|
||||
|
||||
columnSpacing: height * 0.1
|
||||
|
||||
|
|
|
@ -95,7 +95,7 @@ DataListView {
|
|||
}
|
||||
}
|
||||
|
||||
selector.appear(selectOptions, qsTrId("#startlistHeadline"))
|
||||
selector.appear(selectOptions, qsTrId("#selectCategory"))
|
||||
}
|
||||
|
||||
Connections {
|
||||
|
|
|
@ -195,7 +195,7 @@ Window {
|
|||
//app.openAthlete() // dorian: 53139 , rustam: 6933 , helen: 53300
|
||||
//openWidget({nation:'GER'})
|
||||
//mainStack.push("Pages/AthleteSearchPage.qml")
|
||||
//openWidget({comp: 11651, cat: 26})
|
||||
openWidget({comp: 11651, cat: 26})
|
||||
//openWidget({person: 6623})
|
||||
//console.log(JSON.stringify(serverConn.getParamsFromUrl("")))
|
||||
//openWidgetFromUrl("https://l.bluerock.dev/?comp=11601&type=starters")
|
||||
|
@ -321,15 +321,13 @@ Window {
|
|||
height: childrenRect.height
|
||||
width: parent.width - extraComponentLoader.width - toolButton.width - 3 * parent.spacing
|
||||
|
||||
Label {
|
||||
MovingLabel {
|
||||
id: toolBarTitleLa
|
||||
|
||||
syncWithLabel: toolBarSubTitleLa
|
||||
width: parent.width
|
||||
|
||||
scale: 1
|
||||
|
||||
elide: "ElideRight"
|
||||
|
||||
font.bold: true
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
|
||||
|
@ -361,13 +359,13 @@ Window {
|
|||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
MovingLabel {
|
||||
id: toolBarSubTitleLa
|
||||
|
||||
width: parent.width
|
||||
height: text !== "" ? undefined:0
|
||||
visible: text !== ""
|
||||
|
||||
elide: "ElideRight"
|
||||
syncWithLabel: toolBarTitleLa
|
||||
width: parent.width
|
||||
|
||||
font.bold: false
|
||||
|
||||
|
@ -380,7 +378,7 @@ Window {
|
|||
titleString = mainStack.currentItem.subTitle
|
||||
}
|
||||
|
||||
return(titleString)
|
||||
return titleString
|
||||
}
|
||||
|
||||
Behavior on text {
|
||||
|
@ -566,7 +564,7 @@ Window {
|
|||
Product {
|
||||
id: speedFlowChartProduct
|
||||
//identifier: "speed_flowchart"
|
||||
identifier: QT_DEBUG ? "android.test.purchased":"speed_flowchart"
|
||||
identifier: "android.test.purchased"
|
||||
//identifier: "android.test.canceled"
|
||||
//identifier: "android.test.refunded"
|
||||
|
||||
|
|
|
@ -30,5 +30,6 @@
|
|||
<file>Components/AlignedButton.qml</file>
|
||||
<file>Components/SharePopup.qml</file>
|
||||
<file>Pages/QrCodeScanPage.qml</file>
|
||||
<file>Components/MovingLabel.qml</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
|
|
Binary file not shown.
|
@ -18,18 +18,18 @@
|
|||
<location filename="../qml/Pages/QrCodeScanPage.qml" line="243"/>
|
||||
<source>Camera access required</source>
|
||||
<oldsource>Camera access denied</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Kamerazugriff benötigt</translation>
|
||||
</message>
|
||||
<message id="#cameraPermissionDeniedDetails">
|
||||
<location filename="../qml/Pages/QrCodeScanPage.qml" line="259"/>
|
||||
<source>blueROCK needs to access your camera in order to scan QR-Codes. It will never record or store any photos or videos.</source>
|
||||
<oldsource>This app needs to access your camera in order to scan QR-Codes. It will never record or store any photos or videos.</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>blueROCK benötig Zugriff auf die Kamera um QR-Codes zu scannen. Es werden keine Fotos oder Videos aufgezeichnet oder gespeichert.</translation>
|
||||
</message>
|
||||
<message id="#allowAccess">
|
||||
<location filename="../qml/Pages/QrCodeScanPage.qml" line="268"/>
|
||||
<source>Allow access</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Zugriff zulassen</translation>
|
||||
</message>
|
||||
<message id="#pleaseWait">
|
||||
<location filename="../qml/Pages/QrCodeScanPage.qml" line="50"/>
|
||||
|
@ -85,7 +85,7 @@
|
|||
<location filename="../qml/Components/SpeedFlowChartLocker.qml" line="36"/>
|
||||
<location filename="../qml/Components/SpeedFlowChartLocker.qml" line="91"/>
|
||||
<source>This item is currently unavailable</source>
|
||||
<translation>Diese Produkt ist nicht verfügbar</translation>
|
||||
<translation>Dieses Produkt ist nicht verfügbar</translation>
|
||||
</message>
|
||||
<message id="#restorePurchase">
|
||||
<location filename="../qml/Components/SpeedFlowChartLocker.qml" line="107"/>
|
||||
|
@ -130,7 +130,7 @@
|
|||
<message id="#aboutBluerockDisclaimer">
|
||||
<location filename="../qml/Pages/StartPage.qml" line="175"/>
|
||||
<source>This app was built using the <a href='https://qt.io'>Qt Framework</a> licensed under the <a href='https://www.gnu.org/licenses/lgpl-3.0.en.html'>GNU lgplV3 license</a>.<br><br>This app is open source and licensed under the <a href='https://www.gnu.org/licenses/agpl-3.0.en.html'>GNU agplV3 license</a>, the source code can be found <a href='https://itsblue.dev/dorian/blueROCK/'>here</a>.<br><br>Resultservice and rankings provided by <a href='http://www.digitalROCK.de'>digital ROCK</a>.</source>
|
||||
<translation type="unfinished">Diese App wurde unter Verwendung des <a href='https://qt.io'>Qt Frameworks</a> unter der <a href='https://www.gnu.org/licenses/lgpl-3.0.en.html'>GNU lgplV3 Lizenz</a> erstellt.<br><br>Diese App ist Open-source und lizensiert unter der <a href='https://www.gnu.org/licenses/agpl-3.0.en.html'>GNU agplV3 Lizenz</a>. Der Sourcecode findet sich <a href='https://itsblue.dev/dorian/blueROCK/'>hier</a>.Die Ergebnisse und Ranglisten werden von <a href='http://www.digitalROCK.de'>digital ROCK</a> zur Verfügung gestellt.</translation>
|
||||
<translation>Diese App wurde unter Verwendung des <a href='https://qt.io'>Qt Frameworks</a> unter der <a href='https://www.gnu.org/licenses/lgpl-3.0.en.html'>GNU lgplV3 Lizenz</a> erstellt.<br><br>Diese App ist Open-source und lizensiert unter der <a href='https://www.gnu.org/licenses/agpl-3.0.en.html'>GNU agplV3 Lizenz</a>. Der Sourcecode findet sich <a href='https://itsblue.dev/dorian/blueROCK/'>hier</a>.Die Ergebnisse und Ranglisten werden von <a href='http://www.digitalROCK.de'>digital ROCK</a> zur Verfügung gestellt.</translation>
|
||||
</message>
|
||||
<message id="#calendar">
|
||||
<location filename="../qml/Widgets/CalendarWidget.qml" line="32"/>
|
||||
|
@ -176,6 +176,7 @@
|
|||
<location filename="../qml/Widgets/CalendarWidget.qml" line="278"/>
|
||||
<location filename="../qml/Widgets/RegistrationWidget.qml" line="127"/>
|
||||
<location filename="../qml/Widgets/ResultWidget.qml" line="169"/>
|
||||
<location filename="../qml/Widgets/StartlistWidget.qml" line="98"/>
|
||||
<source>Select category</source>
|
||||
<translation>Kategorie auswählen</translation>
|
||||
</message>
|
||||
|
@ -217,7 +218,7 @@
|
|||
<message id="#showResults">
|
||||
<location filename="../qml/Widgets/RegistrationWidget.qml" line="129"/>
|
||||
<source>Show results</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Ergebnisse anzeigen</translation>
|
||||
</message>
|
||||
<message id="#resultsHeadline">
|
||||
<location filename="../qml/Widgets/ResultWidget.qml" line="136"/>
|
||||
|
@ -226,72 +227,44 @@
|
|||
</message>
|
||||
<message id="#startlistHeadline">
|
||||
<location filename="../qml/Widgets/StartlistWidget.qml" line="72"/>
|
||||
<location filename="../qml/Widgets/StartlistWidget.qml" line="98"/>
|
||||
<source>(Startlist)</source>
|
||||
<translation>(Startliste)</translation>
|
||||
</message>
|
||||
<message id="#loading">
|
||||
<location filename="../qml/main.qml" line="552"/>
|
||||
<location filename="../qml/main.qml" line="550"/>
|
||||
<source>Loading</source>
|
||||
<translation>Laden</translation>
|
||||
</message>
|
||||
<message id="#noConnectionError">
|
||||
<location filename="../qml/main.qml" line="666"/>
|
||||
<location filename="../qml/main.qml" line="664"/>
|
||||
<source>No connection to server</source>
|
||||
<translation>Keine Verbindung zum Server</translation>
|
||||
</message>
|
||||
<message id="#notFoundError">
|
||||
<location filename="../qml/main.qml" line="671"/>
|
||||
<location filename="../qml/main.qml" line="669"/>
|
||||
<source>Not found</source>
|
||||
<translation>Nicht gefunden</translation>
|
||||
</message>
|
||||
<message id="#noDataError">
|
||||
<location filename="../qml/main.qml" line="676"/>
|
||||
<location filename="../qml/main.qml" line="674"/>
|
||||
<source>No Data</source>
|
||||
<translation>Keine Daten</translation>
|
||||
</message>
|
||||
<message id="#invalidRequestError">
|
||||
<location filename="../qml/main.qml" line="681"/>
|
||||
<location filename="../qml/main.qml" line="679"/>
|
||||
<source>Invalid Request</source>
|
||||
<translation>Ungültige Anfrage</translation>
|
||||
</message>
|
||||
<message id="#unexpectedError">
|
||||
<location filename="../qml/main.qml" line="687"/>
|
||||
<location filename="../qml/main.qml" line="685"/>
|
||||
<source>Unexpected error</source>
|
||||
<translation>Unerwarteter Fehler</translation>
|
||||
</message>
|
||||
<message id="#shareResultsLinkText">
|
||||
<location filename="../../sources/bluerockbackend.cpp" line="99"/>
|
||||
<location filename="../../sources/bluerockbackend.cpp" line="101"/>
|
||||
<source>Check out the results of %1 over here:</source>
|
||||
<translation>Verfolge die Ergebnisse vom Wettkampf "%1" hier live:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AndroidShareUtils</name>
|
||||
<message>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="191"/>
|
||||
<source>Share: an Error occured</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="203"/>
|
||||
<source>Share: an Error occured
|
||||
WorkingDir not valid</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="217"/>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="243"/>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="255"/>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="283"/>
|
||||
<source>Empty URL received</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="235"/>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="273"/>
|
||||
<source>File does not exist: %1</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<oldsource>Check out the results of %1 over here:</oldsource>
|
||||
<translation>Verfolge die Ergebnisse von "%1" hier:</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
|
Binary file not shown.
|
@ -172,6 +172,7 @@
|
|||
<location filename="../qml/Widgets/CalendarWidget.qml" line="278"/>
|
||||
<location filename="../qml/Widgets/RegistrationWidget.qml" line="127"/>
|
||||
<location filename="../qml/Widgets/ResultWidget.qml" line="169"/>
|
||||
<location filename="../qml/Widgets/StartlistWidget.qml" line="98"/>
|
||||
<source>Select category</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
|
@ -222,71 +223,43 @@
|
|||
</message>
|
||||
<message id="#startlistHeadline">
|
||||
<location filename="../qml/Widgets/StartlistWidget.qml" line="72"/>
|
||||
<location filename="../qml/Widgets/StartlistWidget.qml" line="98"/>
|
||||
<source>(Startlist)</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message id="#loading">
|
||||
<location filename="../qml/main.qml" line="552"/>
|
||||
<location filename="../qml/main.qml" line="550"/>
|
||||
<source>Loading</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message id="#noConnectionError">
|
||||
<location filename="../qml/main.qml" line="666"/>
|
||||
<location filename="../qml/main.qml" line="664"/>
|
||||
<source>No connection to server</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message id="#notFoundError">
|
||||
<location filename="../qml/main.qml" line="671"/>
|
||||
<location filename="../qml/main.qml" line="669"/>
|
||||
<source>Not found</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message id="#noDataError">
|
||||
<location filename="../qml/main.qml" line="676"/>
|
||||
<location filename="../qml/main.qml" line="674"/>
|
||||
<source>No Data</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message id="#invalidRequestError">
|
||||
<location filename="../qml/main.qml" line="681"/>
|
||||
<location filename="../qml/main.qml" line="679"/>
|
||||
<source>Invalid Request</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message id="#unexpectedError">
|
||||
<location filename="../qml/main.qml" line="687"/>
|
||||
<location filename="../qml/main.qml" line="685"/>
|
||||
<source>Unexpected error</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message id="#shareResultsLinkText">
|
||||
<location filename="../../sources/bluerockbackend.cpp" line="99"/>
|
||||
<location filename="../../sources/bluerockbackend.cpp" line="101"/>
|
||||
<source>Check out the results of %1 over here:</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>AndroidShareUtils</name>
|
||||
<message>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="191"/>
|
||||
<source>Share: an Error occured</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="203"/>
|
||||
<source>Share: an Error occured
|
||||
WorkingDir not valid</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="217"/>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="243"/>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="255"/>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="283"/>
|
||||
<source>Empty URL received</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="235"/>
|
||||
<location filename="../../sources/shareUtils/androidshareutils.cpp" line="273"/>
|
||||
<source>File does not exist: %1</source>
|
||||
<oldsource>Check out the results of %1 over here:</oldsource>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
|
|
|
@ -112,6 +112,7 @@ void BlueRockBackend::shareResultsAsPoster(QString url, QString compName) {
|
|||
}
|
||||
}
|
||||
|
||||
compName = compName.replace("/", "");
|
||||
path += "/" + compName + ".pdf";
|
||||
|
||||
QFile file(path);
|
||||
|
@ -206,7 +207,7 @@ bool BlueRockBackend::requestCameraPermission() {
|
|||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
return false;
|
||||
#elif defined Q_OS_IOS
|
||||
return this->_iosPermissionUtils->requestCameraPermission();
|
||||
#else
|
||||
|
|
|
@ -188,7 +188,7 @@ void AndroidShareUtils::processActivityResult(int requestCode, int resultCode)
|
|||
emit shareFinished(requestCode);
|
||||
} else {
|
||||
qDebug() << "wrong result code: " << resultCode << " from request: " << requestCode;
|
||||
emit shareError(requestCode, tr("Share: an Error occured"));
|
||||
emit shareError(requestCode, "Share: an Error occured");
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -200,7 +200,7 @@ void AndroidShareUtils::checkPendingIntents(const QString workingDirPath)
|
|||
QAndroidJniObject jniWorkingDir = QAndroidJniObject::fromString(workingDirPath);
|
||||
if(!jniWorkingDir.isValid()) {
|
||||
qWarning() << "QAndroidJniObject jniWorkingDir not valid.";
|
||||
emit shareError(0, tr("Share: an Error occured\nWorkingDir not valid"));
|
||||
emit shareError(0, "Share: an Error occured\nWorkingDir not valid");
|
||||
return;
|
||||
}
|
||||
activity.callMethod<void>("checkPendingIntents","(Ljava/lang/String;)V", jniWorkingDir.object<jstring>());
|
||||
|
@ -214,7 +214,7 @@ void AndroidShareUtils::setFileUrlReceived(const QString &url)
|
|||
{
|
||||
if(url.isEmpty()) {
|
||||
qWarning() << "setFileUrlReceived: we got an empty URL";
|
||||
emit shareError(0, tr("Empty URL received"));
|
||||
emit shareError(0, "Empty URL received");
|
||||
return;
|
||||
}
|
||||
qDebug() << "AndroidShareUtils setFileUrlReceived: we got the File URL from JAVA: " << url;
|
||||
|
@ -232,7 +232,7 @@ void AndroidShareUtils::setFileUrlReceived(const QString &url)
|
|||
emit fileUrlReceived(myUrl);
|
||||
} else {
|
||||
qDebug() << "setFileUrlReceived: FILE does NOT exist ";
|
||||
emit shareError(0, tr("File does not exist: %1").arg(myUrl));
|
||||
emit shareError(0, QString("File does not exist: %1").arg(myUrl));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -240,7 +240,7 @@ void AndroidShareUtils::setOtherUrlReceived(const QString &url, const QString &s
|
|||
{
|
||||
if(url.isEmpty()) {
|
||||
qWarning() << "setFileUrlReceived: we got an empty URL";
|
||||
emit shareError(0, tr("Empty URL received"));
|
||||
emit shareError(0, "Empty URL received");
|
||||
return;
|
||||
}
|
||||
qDebug() << "AndroidShareUtils setOtherUrlReceived: we got the Other URL from JAVA: " << url;
|
||||
|
@ -252,7 +252,7 @@ void AndroidShareUtils::setFileReceivedAndSaved(const QString &url)
|
|||
{
|
||||
if(url.isEmpty()) {
|
||||
qWarning() << "setFileReceivedAndSaved: we got an empty URL";
|
||||
emit shareError(0, tr("Empty URL received"));
|
||||
emit shareError(0, "Empty URL received");
|
||||
return;
|
||||
}
|
||||
qDebug() << "AndroidShareUtils setFileReceivedAndSaved: we got the File URL from JAVA: " << url;
|
||||
|
@ -270,7 +270,7 @@ void AndroidShareUtils::setFileReceivedAndSaved(const QString &url)
|
|||
emit fileReceivedAndSaved(myUrl);
|
||||
} else {
|
||||
qDebug() << "setFileReceivedAndSaved: FILE does NOT exist ";
|
||||
emit shareError(0, tr("File does not exist: %1").arg(myUrl));
|
||||
emit shareError(0, QString("File does not exist: %1").arg(myUrl));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -280,7 +280,7 @@ bool AndroidShareUtils::checkFileExits(const QString &url)
|
|||
{
|
||||
if(url.isEmpty()) {
|
||||
qWarning() << "checkFileExits: we got an empty URL";
|
||||
emit shareError(0, tr("Empty URL received"));
|
||||
emit shareError(0, "Empty URL received");
|
||||
return false;
|
||||
}
|
||||
qDebug() << "AndroidShareUtils checkFileExits: we got the File URL from JAVA: " << url;
|
||||
|
|
Loading…
Reference in a new issue