[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode.spec
^
|
|
[-]
[+]
|
Changed |
_service
^
|
@@ -2,6 +2,6 @@
<service name="tar_git">
<param name="url">https://github.com/monich/sailfish-barcode.git</param>
<param name="branch">master</param>
- <param name="revision">9492e70</param>
+ <param name="revision">a6b1c24</param>
</service>
</services>
\ No newline at end of file
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-barcode.pro
^
|
@@ -10,7 +10,7 @@
LIBS += -ldl
isEmpty(VERSION) {
- VERSION = 1.0.47
+ VERSION = 1.0.48
message("VERSION is unset, assuming $$VERSION")
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/harbour-lib.pro
^
|
@@ -36,6 +36,7 @@
src/HarbourOrganizeListModel.cpp \
src/HarbourPolicyPlugin.cpp \
src/HarbourProcessState.cpp \
+ src/HarbourProtoBuf.cpp \
src/HarbourSelectionListModel.cpp \
src/HarbourSigChildHandler.cpp \
src/HarbourSingleImageProvider.cpp \
@@ -46,7 +47,8 @@
src/HarbourTask.cpp \
src/HarbourTemporaryFile.cpp \
src/HarbourTransferMethodInfo.cpp \
- src/HarbourTransferMethodsModel.cpp
+ src/HarbourTransferMethodsModel.cpp \
+ src/HarbourUtil.cpp
greaterThan(QT_MAJOR_VERSION, 4) {
SOURCES += \
@@ -70,6 +72,7 @@
include/HarbourOrganizeListModel.h \
include/HarbourPolicyPlugin.h \
include/HarbourProcessState.h \
+ include/HarbourProtoBuf.h \
include/HarbourSelectionListModel.h \
include/HarbourSigChildHandler.h \
include/HarbourSingleImageProvider.h \
@@ -80,7 +83,8 @@
include/HarbourTask.h \
include/HarbourTemporaryFile.h \
include/HarbourTransferMethodInfo.h \
- include/HarbourTransferMethodsModel.h
+ include/HarbourTransferMethodsModel.h \
+ include/HarbourUtil.h
greaterThan(QT_MAJOR_VERSION, 4) {
PUBLIC_HEADERS += \
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/include/HarbourBase32.h
^
|
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2019-2021 Jolla Ltd.
- * Copyright (C) 2019-2021 Slava Monich <slava.monich@jolla.com>
+ * Copyright (C) 2019-2022 Jolla Ltd.
+ * Copyright (C) 2019-2022 Slava Monich <slava.monich@jolla.com>
*
* You may use this file under the terms of the BSD license as follows:
*
@@ -37,13 +37,15 @@
#include <QString>
#include <QByteArray>
-class HarbourBase32 {
+class HarbourBase32
+{
class Private;
- HarbourBase32();
+ HarbourBase32() Q_DECL_EQ_DELETE;
+
public:
- static QByteArray fromBase32(QString aBase32);
- static QString toBase32(QByteArray aBinary, bool aLowerCase = true);
- static bool isValidBase32(QString aBase32);
+ static bool isValidBase32(const QString);
+ static QString toBase32(const QByteArray, bool aLowerCase = true);
+ static QByteArray fromBase32(const QString);
};
#endif // HARBOUR_BASE32_H
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/include/HarbourBase45.h
^
|
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2021 Jolla Ltd.
- * Copyright (C) 2021 Slava Monich <slava.monich@jolla.com>
+ * Copyright (C) 2021-2022 Jolla Ltd.
+ * Copyright (C) 2021-2022 Slava Monich <slava.monich@jolla.com>
*
* You may use this file under the terms of the BSD license as follows:
*
@@ -37,13 +37,15 @@
#include <QString>
#include <QByteArray>
-class HarbourBase45 {
+class HarbourBase45
+{
class Private;
- HarbourBase45();
+ HarbourBase45() Q_DECL_EQ_DELETE;
+
public:
- static bool isValidBase45(QString aBase45);
- static QByteArray fromBase45(QString aBase45);
- static QString toBase45(QByteArray aBinary);
+ static bool isValidBase45(const QString);
+ static QString toBase45(const QByteArray);
+ static QByteArray fromBase45(const QString);
};
#endif // HARBOUR_BASE45_H
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/include/HarbourProtoBuf.h
^
|
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2022 Jolla Ltd.
+ * Copyright (C) 2022 Slava Monich <slava.monich@jolla.com>
+ *
+ * You may use this file under the terms of the 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:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. 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.
+ * 3. Neither the names of the copyright holders 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
+ * OWNER 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.
+ */
+
+#ifndef HARBOUR_PROTOBUF_H
+#define HARBOUR_PROTOBUF_H
+
+#include <QByteArray>
+
+#include <gutil_types.h>
+
+// https://developers.google.com/protocol-buffers/docs/encoding
+
+class HarbourProtoBuf
+{
+ HarbourProtoBuf() Q_DECL_EQ_DELETE;
+
+public:
+ enum {
+ TYPE_SHIFT = 3,
+ TYPE_MASK = ((1 << TYPE_SHIFT)-1),
+ TYPE_VARINT = 0,
+ TYPE_DELIMITED = 2
+ };
+
+ static QByteArray* appendVarInt(QByteArray*, quint64);
+ static QByteArray* appendVarIntKeyValue(QByteArray*, quint64, quint64);
+ static QByteArray* appendDelimitedValue(QByteArray*, const QByteArray);
+ static QByteArray* appendDelimitedKeyValue(QByteArray*, quint64, const QByteArray);
+
+ static bool parseVarInt(GUtilRange*, quint64*);
+ static bool parseDelimitedValue(GUtilRange*, GUtilData*);
+};
+
+#endif // HARBOUR_PROTOBUF_H
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/include/HarbourTheme.h
^
|
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2018-2020 Jolla Ltd.
- * Copyright (C) 2018-2020 Slava Monich <slava@monich.com>
+ * Copyright (C) 2018-2022 Jolla Ltd.
+ * Copyright (C) 2018-2022 Slava Monich <slava@monich.com>
*
* You may use this file under the terms of the BSD license as follows:
*
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/include/HarbourUtil.h
^
|
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2022 Jolla Ltd.
+ * Copyright (C) 2022 Slava Monich <slava.monich@jolla.com>
+ *
+ * You may use this file under the terms of the 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:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. 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.
+ * 3. Neither the names of the copyright holders 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
+ * OWNER 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.
+ */
+
+#ifndef HARBOUR_UTIL_H
+#define HARBOUR_UTIL_H
+
+#include <QByteArray>
+#include <QColor>
+#include <QObject>
+#include <QRgb>
+#include <QString>
+
+class QQmlEngine;
+class QJSEngine;
+
+class HarbourUtil :
+ public QObject
+{
+ Q_OBJECT
+ class Private;
+
+public:
+ explicit HarbourUtil(QObject* aParent = Q_NULLPTR);
+
+ // Callback for qmlRegisterSingletonType<HarbourUtil>
+ static QObject* createSingleton(QQmlEngine*, QJSEngine*);
+
+ // QML (and possibly native) utilities
+ Q_INVOKABLE static QColor invertedColor(const QColor&);
+
+ // Static utilities
+ static QRgb invertedRgb(QRgb);
+ static QByteArray toHexBytes(const void*, size_t);
+ static QString toHex(const void*, size_t);
+ static inline QString toHex(const QByteArray& aData)
+ { return toHex(aData.constData(), aData.size()); }
+};
+
+#endif // HARBOUR_UTIL_H
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/qml/HarbourBadge.qml
^
|
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2018-2019 Jolla Ltd.
- * Copyright (C) 2018-2019 Slava Monich <slava@monich.com>
+ * Copyright (C) 2018-2022 Jolla Ltd.
+ * Copyright (C) 2018-2022 Slava Monich <slava@monich.com>
*
* You may use this file under the terms of BSD license as follows:
*
@@ -11,8 +11,8 @@
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. 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
+ * notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
* distribution.
* 3. Neither the names of the copyright holders nor the names of its
* contributors may be used to endorse or promote products derived
@@ -39,6 +39,9 @@
property real maxWidth: parent.width
property alias text: label.text
+ property alias backgroundColor: background.color
+ property alias textColor: label.color
+
readonly property real radius: height/2
width: Math.max(label.implicitWidth + radius, height)
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/qml/HarbourColorEditorDialog.qml
^
|
@@ -164,12 +164,9 @@
EnterKey.onClicked: hexText.focus = false
onTextChanged: {
- if (!ignoreTextUpdates && acceptableInput) {
- tmpColor = "#" + text
- ignoreTextUpdates++
- brightnessSlider.value = hueItem.getV(tmpColor)
- hueSlider.value = hueItem.getH(tmpColor)
- ignoreTextUpdates--
+ if (!ignoreTextUpdates) {
+ // acceptableInput hasn't been updated yet
+ syncTimer.restart()
}
}
@@ -179,6 +176,16 @@
}
}
+ function syncColor() {
+ if (acceptableInput) {
+ tmpColor = "#" + text
+ ignoreTextUpdates++
+ brightnessSlider.value = hueItem.getV(tmpColor)
+ hueSlider.value = hueItem.getH(tmpColor)
+ ignoreTextUpdates--
+ }
+ }
+
function updateText() {
if (!ignoreTextUpdates) {
ignoreTextUpdates++
@@ -187,6 +194,13 @@
ignoreTextUpdates--
}
}
+
+ Timer {
+ id: syncTimer
+
+ interval: 0
+ onTriggered: hexText.syncColor()
+ }
}
}
}
@@ -198,15 +212,16 @@
width: 2 * height
height: hexText.height - 2 * Theme.paddingLarge
anchors.right: parent.right
+ visible: hexText.acceptableInput
onClicked: thisDialog.accept()
Rectangle {
id: sampleItem
+ radius: Theme.paddingSmall
anchors.fill: parent
color: "#" + hexText.text
- visible: hexText.acceptableInput
layer.enabled: sample.pressed && sample.containsMouse
layer.effect: HarbourPressEffect { source: sampleItem }
}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/qml/HarbourColorHueItem.qml
^
|
@@ -38,6 +38,7 @@
id: thisItem
color: "black"
+
property alias brightness: mouseArea.opacity
property alias pressed: mouseArea.pressed
@@ -143,6 +144,7 @@
sourceItem: Rectangle {
width: mouseArea.width
height: mouseArea.height
+ radius: Theme.paddingSmall
gradient: Gradient {
GradientStop { position: 0.0; color: color0 }
GradientStop { position: colorStop1; color: color1 }
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/src/HarbourBase32.cpp
^
|
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2019 Jolla Ltd.
- * Copyright (C) 2019 Slava Monich <slava.monich@jolla.com>
+ * Copyright (C) 2019-2022 Jolla Ltd.
+ * Copyright (C) 2019-2022 Slava Monich <slava.monich@jolla.com>
*
* You may use this file under the terms of the BSD license as follows:
*
@@ -46,25 +46,33 @@
// HarbourBase32::Private
// ==========================================================================
-class HarbourBase32::Private {
+class HarbourBase32::Private
+{
public:
- static char nibbleToBase32(int nibble, char a);
- static int base32ToNibble(char a);
+ static char nibbleToBase32(int, char);
+ static int base32ToNibble(char);
};
-inline char HarbourBase32::Private::nibbleToBase32(int nibble, char a)
+inline
+char
+HarbourBase32::Private::nibbleToBase32(
+ int aNibble,
+ char aBaseChar)
{
- return (nibble < 26) ? (a + nibble) : ('2' + (nibble - 26));
+ return (aNibble < 26) ? (aBaseChar + aNibble) : ('2' + (aNibble - 26));
}
-inline int HarbourBase32::Private::base32ToNibble(char c)
+inline
+int
+HarbourBase32::Private::base32ToNibble(
+ char aChar)
{
- if (c >= 'a' && c <= 'z') {
- return c - 'a';
- } else if (c >= 'A' && c <= 'Z') {
- return c - 'A';
- } else if (c >= '2' && c <= '7') {
- return 26 + (c - '2');
+ if (aChar >= 'a' && aChar <= 'z') {
+ return aChar - 'a';
+ } else if (aChar >= 'A' && aChar <= 'Z') {
+ return aChar - 'A';
+ } else if (aChar >= '2' && aChar <= '7') {
+ return 26 + (aChar - '2');
} else {
return -1;
}
@@ -74,7 +82,9 @@
// HarbourBase32
// ==========================================================================
-bool HarbourBase32::isValidBase32(QString aBase32)
+bool
+HarbourBase32::isValidBase32(
+ QString aBase32)
{
const int n = aBase32.length();
const QChar* chars = aBase32.constData();
@@ -133,7 +143,9 @@
return !empty;
}
-QByteArray HarbourBase32::fromBase32(QString aBase32)
+QByteArray
+HarbourBase32::fromBase32(
+ const QString aBase32)
{
QByteArray out;
@@ -205,7 +217,10 @@
return out;
}
-QString HarbourBase32::toBase32(QByteArray aBinary, bool aLowerCase)
+QString
+HarbourBase32::toBase32(
+ const QByteArray aBinary,
+ bool aLowerCase)
{
QString str;
const int n = aBinary.size();
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/src/HarbourBase45.cpp
^
|
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2021 Jolla Ltd.
- * Copyright (C) 2021 Slava Monich <slava.monich@jolla.com>
+ * Copyright (C) 2021-2022 Jolla Ltd.
+ * Copyright (C) 2021-2022 Slava Monich <slava.monich@jolla.com>
*
* You may use this file under the terms of the BSD license as follows:
*
@@ -39,7 +39,8 @@
// HarbourBase45::Private
// ==========================================================================
-class HarbourBase45::Private {
+class HarbourBase45::Private
+{
public:
enum {
BASE = 45,
@@ -48,7 +49,7 @@
};
static const char mapBase45[BASE];
static const int reverseMapBase45[REVERSE_MAP_SIZE];
- static bool isValidChar(uint x);
+ static bool isValidChar(uint);
};
const char HarbourBase45::Private::mapBase45[HarbourBase45::Private::BASE] = {
@@ -75,16 +76,22 @@
33, 34, 35
};
-inline bool HarbourBase45::Private::isValidChar(uint x)
+inline
+bool
+HarbourBase45::Private::isValidChar(
+ uint aChar)
{
- return (x < Private::REVERSE_MAP_SIZE) && Private::reverseMapBase45[x] >= 0;
+ return (aChar < Private::REVERSE_MAP_SIZE) &&
+ Private::reverseMapBase45[aChar] >= 0;
}
// ==========================================================================
// HarbourBase45::Private
// ==========================================================================
-bool HarbourBase45::isValidBase45(QString aBase45)
+bool
+HarbourBase45::isValidBase45(
+ const QString aBase45)
{
const int len = aBase45.length();
@@ -123,7 +130,9 @@
return false;
}
-QByteArray HarbourBase45::fromBase45(QString aBase45)
+QByteArray
+HarbourBase45::fromBase45(
+ const QString aBase45)
{
QByteArray out;
const int len = aBase45.length();
@@ -175,7 +184,9 @@
return out;
}
-QString HarbourBase45::toBase45(QByteArray aBinary)
+QString
+HarbourBase45::toBase45(
+ const QByteArray aBinary)
{
const uchar* ptr = (uchar*)aBinary.constData();
const int n = aBinary.size();
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/src/HarbourProtoBuf.cpp
^
|
@@ -0,0 +1,144 @@
+/*
+ * Copyright (C) 2022 Jolla Ltd.
+ * Copyright (C) 2022 Slava Monich <slava.monich@jolla.com>
+ *
+ * You may use this file under the terms of the 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:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. 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.
+ * 3. Neither the names of the copyright holders 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
+ * OWNER 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.
+ */
+
+#include "HarbourDebug.h"
+#include "HarbourProtoBuf.h"
+
+// https://developers.google.com/protocol-buffers/docs/encoding
+
+QByteArray*
+HarbourProtoBuf::appendVarInt(
+ QByteArray* aOutput,
+ quint64 aValue)
+{
+ if (aOutput) {
+ uchar out[10];
+ quint64 value = aValue;
+ int i = sizeof(out) - 1;
+
+ out[i] = value & 0x7f;
+ value >>= 7;
+ while (value) {
+ out[--i] = 0x80 | (uchar)value;
+ value >>= 7;
+ }
+
+ const int n = sizeof(out) - i;
+
+ aOutput->reserve(aOutput->size() + n);
+ aOutput->append((char*)(out + i), n);
+ }
+ return aOutput;
+}
+
+QByteArray*
+HarbourProtoBuf::appendVarIntKeyValue(
+ QByteArray* aOutput,
+ quint64 aKey,
+ quint64 aValue)
+{
+ HASSERT((aKey & TYPE_MASK) == TYPE_VARINT);
+ return appendVarInt(appendVarInt(aOutput, aKey), aValue);
+}
+
+QByteArray*
+HarbourProtoBuf::appendDelimitedValue(
+ QByteArray* aOutput,
+ const QByteArray aValue)
+{
+ if (aOutput) {
+ appendVarInt(aOutput, aValue.size())->append(aValue);
+ }
+ return aOutput;
+}
+
+QByteArray*
+HarbourProtoBuf::appendDelimitedKeyValue(
+ QByteArray* aOutput,
+ quint64 aKey,
+ const QByteArray aValue)
+{
+ HASSERT((aKey & TYPE_MASK) == TYPE_DELIMITED);
+ return appendDelimitedValue(appendVarInt(aOutput, aKey), aValue);
+}
+
+bool
+HarbourProtoBuf::parseVarInt(
+ GUtilRange* aPos,
+ quint64* aResult)
+{
+ if (aPos) {
+ quint64 value = 0;
+ const guint8* ptr = aPos->ptr;
+
+ for (int i = 0; i < 10 && ptr < aPos->end; i++, ptr++) {
+ value = (value << 7) | (*ptr & 0x7f);
+ if (!(*ptr & 0x80)) {
+ aPos->ptr = ptr + 1;
+ if (aResult) {
+ *aResult = value;
+ }
+ return true;
+ }
+ }
+
+ // Premature end of stream or too many bytes
+ if (aResult) {
+ *aResult = 0;
+ }
+ }
+ return false;
+}
+
+// A delimited value is stored as a size, encoded as a varint, followed
+// by the payload of type (message | string | bytes | packed)
+bool
+HarbourProtoBuf::parseDelimitedValue(
+ GUtilRange* aPos,
+ GUtilData* aPayload)
+{
+ if (aPos) {
+ GUtilRange pos = *aPos;
+ quint64 size;
+
+ if (parseVarInt(&pos, &size) && (pos.ptr + size) <= pos.end) {
+ if (aPayload) {
+ aPayload->bytes = pos.ptr;
+ aPayload->size = size;
+ }
+ aPos->ptr = pos.ptr + size;
+ return true;
+ }
+ }
+ return false;
+}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/src/HarbourTheme.cpp
^
|
@@ -1,6 +1,6 @@
/*
- * Copyright (C) 2018-2020 Jolla Ltd.
- * Copyright (C) 2018-2020 Slava Monich <slava@monich.com>
+ * Copyright (C) 2018-2022 Jolla Ltd.
+ * Copyright (C) 2018-2022 Slava Monich <slava@monich.com>
*
* You may use this file under the terms of the BSD license as follows:
*
@@ -31,9 +31,10 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "HarbourTheme.h"
-#include "HarbourSystem.h"
#include "HarbourDebug.h"
+#include "HarbourSystem.h"
+#include "HarbourTheme.h"
+#include "HarbourUtil.h"
#include <QQmlEngine>
@@ -212,17 +213,12 @@
QColor HarbourTheme::invertedPrimaryColor() const
{
- return invertedColor(Private::primaryColor());
+ return HarbourUtil::invertedColor(Private::primaryColor());
}
QColor HarbourTheme::invertedColor(const QColor& aColor)
{
- if (aColor.isValid()) {
- const QRgb rgba = aColor.rgba();
- return QColor(((~(rgba & RGB_MASK)) & RGB_MASK) | (rgba & (~RGB_MASK)));
- } else {
- return aColor;
- }
+ return HarbourUtil::invertedColor(aColor);
}
qreal HarbourTheme::colorDifference(const QColor& aColor1, const QColor& aColor2)
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/src/HarbourUtil.cpp
^
|
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2022 Jolla Ltd.
+ * Copyright (C) 2022 Slava Monich <slava.monich@jolla.com>
+ *
+ * You may use this file under the terms of the 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:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. 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.
+ * 3. Neither the names of the copyright holders 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
+ * OWNER 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.
+ */
+
+#include "HarbourUtil.h"
+
+// ==========================================================================
+// HarbourUtil::Private
+// ==========================================================================
+
+class HarbourUtil::Private
+{
+public:
+ static const char hex[];
+};
+
+const char HarbourUtil::Private::hex[] = "0123456789abcdef";
+
+// ==========================================================================
+// HarbourUtil
+// ==========================================================================
+
+HarbourUtil::HarbourUtil(
+ QObject* aParent) :
+ QObject(aParent)
+{
+}
+
+// Callback for qmlRegisterSingletonType<HarbourUtil>
+QObject*
+HarbourUtil::createSingleton(
+ QQmlEngine*,
+ QJSEngine*)
+{
+ return new HarbourUtil();
+}
+
+QColor
+HarbourUtil::invertedColor(
+ const QColor& aColor)
+{
+ if (aColor.isValid()) {
+ const QRgb inv = invertedRgb(aColor.rgba());
+
+ return QColor(qRed(inv), qGreen(inv), qBlue(inv), qAlpha(inv));
+ } else {
+ return aColor;
+ }
+}
+
+QRgb
+HarbourUtil::invertedRgb(
+ QRgb aRgb)
+{
+ return ((~(aRgb & RGB_MASK)) & RGB_MASK) | (aRgb & (~RGB_MASK));
+}
+
+QString
+HarbourUtil::toHex(
+ const void* aData,
+ size_t aSize)
+{
+ QString hex;
+
+ if (aSize > 0) {
+ const uchar* bytes = (const uchar*)aData;
+
+ hex.reserve(2 * aSize);
+ for (size_t i = 0; i < aSize; i++) {
+ const uchar b = bytes[i];
+
+ hex.append(QChar(Private::hex[(b & 0xf0) >> 4]));
+ hex.append(QChar(Private::hex[b & 0x0f]));
+ }
+ }
+ return hex;
+}
+
+QByteArray
+HarbourUtil::toHexBytes(
+ const void* aData,
+ size_t aSize)
+{
+ return aSize ?
+ QByteArray::fromRawData((const char*) aData, (int) aSize).toHex() :
+ QByteArray();
+}
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/src/libcrypto.c
^
|
@@ -0,0 +1,262 @@
+/*
+ * Copyright (C) 2021 Jolla Ltd.
+ * Copyright (C) 2021 Slava Monich <slava.monich@jolla.com>
+ *
+ * You may use this file under the terms of the 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:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. 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.
+ * 3. Neither the names of the copyright holders 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
+ * OWNER 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.
+ */
+
+#include "gutil_log.h"
+
+#include <dlfcn.h>
+#include <stdint.h>
+
+#include <openssl/aes.h>
+#include <openssl/des.h>
+#include <openssl/md5.h>
+#include <openssl/rsa.h>
+#include <openssl/sha.h>
+
+/*
+ * What is this code?
+ *
+ * Sailfish OS comes in 3 flavors wrt openssl versions:
+ *
+ * 1. Sailfish OS up to 3.4 had openssl 1.0
+ * 2. Sailfish 4.0..4.2 had both openssl 1.0 and openssl 1.1 libraries
+ * 3. Sailfish 4.3 dropped openssl 1.0 libraries and only has openssl 1.1
+ *
+ * Which means that explicitly linking with any version of openssl
+ * makes your app incompatible with either Sailfish OS <= 3.4 or
+ * Sailfish OS >= 4.3 (nice symmetry).
+ *
+ * If you want to build an app which runs on both Sailfish OS <= 3.4
+ * and Sailfish OS >= 4.3 you have two options:
+ *
+ * 1. Link openssl statically
+ * 2. Load libcrypts.so dynamically with dlopen/dlsym
+ *
+ * This module allows you to implement the second strategy. It works
+ * because openssl 1.0 and 1.1 (luckily!) appear to be binary compatible.
+ * It doesn't load all libcrypto functions, only those referenced by my
+ * apps but the list can be easily expanded.
+ */
+
+#ifndef LIBDIR
+# ifdef __aarch64__
+# define LIBDIR "/usr/lib64"
+# else
+# define LIBDIR "/usr/lib"
+# endif
+#endif
+
+/*
+ * OpenSSL 1.0 headers define ERR_load_crypto_strings as a function:
+ *
+ * void ERR_load_crypto_strings(void);
+ *
+ * and OpenSSL 1.1 as a macro:
+ *
+ * #if OPENSSL_API_COMPAT < 0x10100000L
+ * # define ERR_load_crypto_strings() \
+ * OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL)
+ * # define ERR_free_strings() while(0) continue
+ * #endif
+ *
+ * We want to try loading both ERR_load_crypto_strings and
+ * OPENSSL_init_crypto, one of which will probably fail.
+ */
+
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+# undef ERR_load_crypto_strings
+#else
+# define OPENSSL_INIT_SETTINGS void
+#endif
+
+/* f(name,params,args) */
+#define LIBCRYPTO_FUNCTIONS1(f) \
+ f(AES_cbc_encrypt, \
+ (const unsigned char* in, unsigned char* out, size_t length, \
+ const AES_KEY* key, unsigned char* ivec, const int enc), \
+ (in, out, length, key, ivec, enc)) \
+ f(AES_cfb128_encrypt, \
+ (const unsigned char* in, unsigned char* out, size_t length, \
+ const AES_KEY* key,unsigned char* ivec, int* num, const int enc), \
+ (in, out, length, key, ivec, num, enc)) \
+ f(AES_ecb_encrypt, \
+ (const unsigned char* in, unsigned char* out, const AES_KEY* key, \
+ const int enc), \
+ (in, out, key, enc)) \
+ f(BN_free, (BIGNUM *a), (a)) \
+ f(DES_ede3_cbc_encrypt, \
+ (const unsigned char* input, unsigned char* output, long length, \
+ DES_key_schedule* ks1, DES_key_schedule* ks2, DES_key_schedule* ks3, \
+ DES_cblock* ivec, int enc), \
+ (input, output, length, ks1, ks2, ks3, ivec, enc)) \
+ f(ERR_load_crypto_strings, (void), ()) \
+ f(RSA_free, (RSA* r), (r))
+
+/* f(ret,name,params,args,def) */
+#define LIBCRYPTO_FUNCTIONS2(f) \
+ f(int, AES_set_decrypt_key, \
+ (const unsigned char* userKey, const int bits, AES_KEY* key), \
+ (userKey, bits, key), -1) \
+ f(int, AES_set_encrypt_key, \
+ (const unsigned char* userKey, const int bits, AES_KEY* key), \
+ (userKey, bits, key), -1) \
+ f(BIGNUM*, BN_bin2bn, \
+ (const unsigned char* s, int len, BIGNUM* ret), (s, len, ret), NULL) \
+ f(int, BN_bn2bin, \
+ (const BIGNUM* a, unsigned char* to), (a, to), 0) \
+ f(BIGNUM*, BN_new, (void), (), NULL) \
+ f(int, BN_num_bits, (const BIGNUM *a), (a), 0) \
+ f(int, BN_set_word, (BIGNUM* a, BN_ULONG w), (a, w), 0) \
+ f(int, DES_check_key_parity, (const_DES_cblock* key), (key), 0) \
+ f(int, DES_is_weak_key, (const_DES_cblock* key), (key), 0) \
+ f(int, DES_set_key, \
+ (const_DES_cblock* key, DES_key_schedule* schedule), \
+ (key, schedule), -1) \
+ f(char*, ERR_error_string, (unsigned long e, char* buf), (e, buf), NULL) \
+ f(unsigned long, ERR_get_error, (void), (), 0) \
+ f(unsigned char*, MD5, \
+ (const unsigned char* d, size_t n, unsigned char* md), (d, n, md), NULL) \
+ f(int, MD5_Final, (unsigned char* md, MD5_CTX* c), (md, c), 0) \
+ f(int, MD5_Init, (MD5_CTX* c), (c), 0) \
+ f(int, MD5_Update, (MD5_CTX* c, const void* data, size_t len), \
+ (c, data, len), 0) \
+ f(int, OPENSSL_init_crypto, \
+ (uint64_t opts, const OPENSSL_INIT_SETTINGS* settings), \
+ (opts, settings), 0) \
+ f(int, RAND_bytes, (unsigned char* buf, int num), (buf, num), 0) \
+ f(int, RAND_poll, (void), (), 0) \
+ f(RSA*, RSAPrivateKey_dup, (RSA* rsa), (rsa), NULL) \
+ f(RSA*, RSAPublicKey_dup, (RSA* rsa), (rsa), NULL) \
+ f(int, RSA_generate_key_ex, \
+ (RSA* rsa, int bits, BIGNUM* e, BN_GENCB* cb), \
+ (rsa, bits, e, cb), 0) \
+ f(RSA*, RSA_new, (void), (), NULL) \
+ f(int, RSA_private_decrypt, \
+ (int flen, const unsigned char* from, unsigned char* to, RSA* rsa, \
+ int padding), (flen, from, to, rsa, padding), 0) \
+ f(int, RSA_private_encrypt, \
+ (int flen, const unsigned char* from, unsigned char* to, RSA* rsa, \
+ int padding), (flen, from, to, rsa, padding), 0) \
+ f(int, RSA_public_decrypt, \
+ (int flen, const unsigned char* from, unsigned char* to, RSA* rsa, \
+ int padding), (flen, from, to, rsa, padding), 0) \
+ f(int, RSA_public_encrypt, \
+ (int flen, const unsigned char* from, unsigned char* to, RSA* rsa, \
+ int padding), (flen, from, to, rsa, padding), 0) \
+ f(int, RSA_size, (const RSA* rsa), (rsa), 0) \
+ f(unsigned char*, SHA1, (const unsigned char* d, size_t n, \
+ unsigned char* md), (d, n, md), NULL) \
+ f(int, SHA1_Final, (unsigned char* md, SHA_CTX* c), (md, c), 0) \
+ f(int, SHA1_Init, (SHA_CTX* c), (c), 0) \
+ f(int, SHA1_Update, (SHA_CTX* c, const void* data, size_t len), \
+ (c, data, len), 0) \
+ f(unsigned char*, SHA256, (const unsigned char* d, size_t n, \
+ unsigned char* md), (d, n, md), NULL) \
+ f(int, SHA256_Final, (unsigned char* md, SHA256_CTX* c), (md, c), 0) \
+ f(int, SHA256_Init, (SHA256_CTX* c), (c), 0) \
+ f(int, SHA256_Update, (SHA256_CTX* c, const void* data, size_t len), \
+ (c, data, len), 0) \
+ f(unsigned char*, SHA512, (const unsigned char* d, size_t n, \
+ unsigned char* md), (d, n, md), NULL) \
+ f(int, SHA512_Final, (unsigned char* md, SHA512_CTX* c), (md, c), 0) \
+ f(int, SHA512_Init, (SHA512_CTX* c), (c), 0) \
+ f(int, SHA512_Update, (SHA512_CTX* c, const void* data, size_t len), \
+ (c, data, len), 0)
+
+static const char* libcrypto_so_path[] = {
+ LIBDIR "/libcrypto.so.1.1",
+ "/lib/libcrypto.so.10"
+};
+
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/test/Makefile
^
|
@@ -4,3 +4,5 @@
%:
@$(MAKE) -C TestHarbourBase32 $*
@$(MAKE) -C TestHarbourBase45 $*
+ @$(MAKE) -C TestHarbourProtoBuf $*
+ @$(MAKE) -C TestHarbourUtil $*
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/test/Makefile.common
^
|
@@ -31,6 +31,8 @@
SRC_DIR = .
TOP_DIR = ../..
HARBOUR_DIR = $(TOP_DIR)
+HARBOUR_INCLUDE_DIR = $(HARBOUR_DIR)/include
+HARBOUR_SRC_DIR = $(HARBOUR_DIR)/src
BUILD_DIR = build
DEBUG_BUILD_DIR = $(BUILD_DIR)/debug
RELEASE_BUILD_DIR = $(BUILD_DIR)/release
@@ -44,7 +46,7 @@
LD = $(CC)
MOC = qtchooser -run-tool=moc -qt=5
WARNINGS = -Wall
-INCLUDES = -I$(BUILD_DIR) -I$(HARBOUR_DIR)/include
+INCLUDES = -I$(BUILD_DIR) -I$(HARBOUR_INCLUDE_DIR)
BASE_FLAGS = -fPIC
BASE_LDFLAGS = $(BASE_FLAGS) $(LDFLAGS)
BASE_CFLAGS = $(BASE_FLAGS) $(CFLAGS)
@@ -84,6 +86,9 @@
$(MOC_CPP:%.cpp=$(COVERAGE_BUILD_DIR)/moc_cpp_%.o) \
$(SRC:%.cpp=$(COVERAGE_BUILD_DIR)/%.o) \
$(HARBOUR_SRC:%.cpp=$(COVERAGE_BUILD_DIR)/harbour_%.o)
+GEN_FILES = \
+ $(MOC_H:%.h=$(BUILD_DIR)/moc_%.cpp) \
+ $(MOC_CPP:%.cpp=$(BUILD_DIR)/%.moc)
#
# Dependencies
@@ -96,6 +101,7 @@
endif
endif
+$(GEN_FILES): | $(BUILD_DIR)
$(DEBUG_OBJS): | $(DEBUG_BUILD_DIR)
$(RELEASE_OBJS): | $(RELEASE_BUILD_DIR)
$(COVERAGE_OBJS): | $(COVERAGE_BUILD_DIR)
@@ -139,10 +145,10 @@
$(COVERAGE_BUILD_DIR):
mkdir -p $@
-$(BUILD_DIR)/moc_%.cpp : $(APP_DIR)/%.h
+$(BUILD_DIR)/moc_%.cpp : $(HARBOUR_INCLUDE_DIR)/%.h
$(MOC) $< -o $@
-$(BUILD_DIR)/%.moc : $(APP_DIR)/%.cpp
+$(BUILD_DIR)/%.moc : $(HARBOUR_SRC_DIR)/%.cpp
$(MOC) $< -o $@
$(DEBUG_BUILD_DIR)/%.o : $(SRC_DIR)/%.cpp
@@ -163,31 +169,22 @@
$(COVERAGE_BUILD_DIR)/moc_h_%.o : $(BUILD_DIR)/moc_%.cpp $(BUILD_DIR)
$(CC) -c $(COVERAGE_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
-$(DEBUG_BUILD_DIR)/moc_cpp_%.o : $(HARBOUR_DIR)/%.cpp $(BUILD_DIR)/%.moc
+$(DEBUG_BUILD_DIR)/moc_cpp_%.o : $(HARBOUR_SRC_DIR)/%.cpp $(BUILD_DIR)/%.moc
$(CC) -c $(DEBUG_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
-$(RELEASE_BUILD_DIR)/moc_cpp_%.o : $(HARBOUR_DIR)/%.cpp $(BUILD_DIR)/%.moc
+$(RELEASE_BUILD_DIR)/moc_cpp_%.o : $(HARBOUR_SRC_DIR)/%.cpp $(BUILD_DIR)/%.moc
$(CC) -c $(RELEASE_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
-$(COVERAGE_BUILD_DIR)/moc_cpp_%.o : $(HARBOUR_DIR)/%.cpp $(BUILD_DIR)/%.moc
+$(COVERAGE_BUILD_DIR)/moc_cpp_%.o : $(HARBOUR_SRC_DIR)/%.cpp $(BUILD_DIR)/%.moc
$(CC) -c $(COVERAGE_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
-$(DEBUG_BUILD_DIR)/app_%.o : $(APP_DIR)/%.cpp
+$(DEBUG_BUILD_DIR)/harbour_%.o : $(HARBOUR_SRC_DIR)/%.cpp
$(CC) -c $(DEBUG_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
-$(RELEASE_BUILD_DIR)/app_%.o : $(APP_DIR)/%.cpp
+$(RELEASE_BUILD_DIR)/harbour_%.o : $(HARBOUR_SRC_DIR)/%.cpp
$(CC) -c $(RELEASE_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
-$(COVERAGE_BUILD_DIR)/app_%.o : $(APP_DIR)/%.cpp
- $(CC) -c $(COVERAGE_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
-
-$(DEBUG_BUILD_DIR)/harbour_%.o : $(HARBOUR_DIR)/src/%.cpp
- $(CC) -c $(DEBUG_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
-
-$(RELEASE_BUILD_DIR)/harbour_%.o : $(HARBOUR_DIR)/src/%.cpp
- $(CC) -c $(RELEASE_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
-
-$(COVERAGE_BUILD_DIR)/harbour_%.o : $(HARBOUR_DIR)/src/%.cpp
+$(COVERAGE_BUILD_DIR)/harbour_%.o : $(HARBOUR_SRC_DIR)/%.cpp
$(CC) -c $(COVERAGE_CFLAGS) -MT"$@" -MF"$(@:%.o=%.d)" $< -o $@
$(DEBUG_EXE): $(DEBUG_OBJS)
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/test/TestHarbourProtoBuf/Makefile
^
|
@@ -0,0 +1,7 @@
+# -*- Mode: makefile-gmake -*-
+
+PKGS = libglibutil
+EXE = TestHarbourProtoBuf
+HARBOUR_SRC = HarbourProtoBuf.cpp
+
+include ../Makefile.common
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/test/TestHarbourProtoBuf/TestHarbourProtoBuf.cpp
^
|
@@ -0,0 +1,168 @@
+/*
+ * Copyright (C) 2022 Jolla Ltd.
+ * Copyright (C) 2022 Slava Monich <slava.monich@jolla.com>
+ *
+ * You may use this file under the terms of the 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:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. 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.
+ * 3. Neither the names of the copyright holders 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
+ * OWNER 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.
+ */
+
+#include "HarbourProtoBuf.h"
+
+#include <glib.h>
+
+/*==========================================================================*
+ * null
+ *==========================================================================*/
+
+static
+void
+test_null(
+ void)
+{
+ g_assert(!HarbourProtoBuf::appendVarInt(NULL, 0));
+ g_assert(!HarbourProtoBuf::appendVarIntKeyValue(NULL, 0, 0));
+ g_assert(!HarbourProtoBuf::appendDelimitedValue(NULL, QByteArray()));
+ g_assert(!HarbourProtoBuf::appendDelimitedKeyValue(NULL,
+ HarbourProtoBuf::TYPE_DELIMITED, QByteArray()));
+ g_assert(!HarbourProtoBuf::parseVarInt(NULL, NULL));
+ g_assert(!HarbourProtoBuf::parseDelimitedValue(NULL, NULL));
+}
+
+/*==========================================================================*
+ * int
+ *==========================================================================*/
+
+static
+void
+test_int(
+ void)
+{
+ QByteArray buf;
+ GUtilRange range;
+ quint64 res;
+
+ static const guint8 enc0[] = { 0 };
+
+ g_assert(HarbourProtoBuf::appendVarInt(&buf, 0) == &buf);
+ g_assert(buf == QByteArray::fromRawData((char*)enc0, sizeof(enc0)));
+
+ range.end = (range.ptr = enc0);
+ g_assert(!HarbourProtoBuf::parseVarInt(&range, NULL));
+ range.end = (range.ptr = enc0);
+
+ res = 42;
+ g_assert(!HarbourProtoBuf::parseVarInt(&range, &res));
+ g_assert_cmpuint(res, == ,0);
+
+ range.end = (range.ptr = enc0) + sizeof(enc0);
+ g_assert(HarbourProtoBuf::parseVarInt(&range, NULL));
+ g_assert(range.ptr == range.end);
+
+ res = 42;
+ range.end = (range.ptr = enc0) + sizeof(enc0);
+ g_assert(HarbourProtoBuf::parseVarInt(&range, &res));
+ g_assert_cmpuint(res, == ,0);
+
+ static const guint8 enc257[] = { 0x82, 0x01 };
+
+ buf.clear();
+ g_assert(HarbourProtoBuf::appendVarInt(&buf, 257) == &buf);
+ g_assert(buf == QByteArray::fromRawData((char*)enc257, sizeof(enc257)));
+
+ res = 42;
+ range.end = (range.ptr = enc257) + 1;
+ g_assert(!HarbourProtoBuf::parseVarInt(&range, &res));
+ g_assert_cmpuint(res, == ,0);
+
+ res = 42;
+ range.end = (range.ptr = enc257) + sizeof(enc257);
+ g_assert(HarbourProtoBuf::parseVarInt(&range, &res));
+ g_assert(range.ptr == range.end);
+ g_assert_cmpuint(res, == ,257);
+}
+
+/*==========================================================================*
+ * delimited
+ *==========================================================================*/
+
+static
+void
+test_delimited(
+ void)
+{
+ QByteArray buf;
+ GUtilRange range;
+ GUtilData payload;
+ static const guint8 value[] = { 0x01, 0x02 };
+ static const guint8 encodedValue[] = { 0x02, 0x01, 0x02 };
+
+ g_assert(HarbourProtoBuf::appendDelimitedValue(&buf,
+ QByteArray::fromRawData((char*)value, sizeof(value))) == &buf);
+ g_assert(buf == QByteArray::fromRawData((char*)encodedValue,
+ sizeof(encodedValue)));
+
+ range.end = (range.ptr = encodedValue);
+ g_assert(!HarbourProtoBuf::parseDelimitedValue(&range, NULL));
+ g_assert(range.ptr == encodedValue);
+
+ range.end = (range.ptr = encodedValue) + sizeof(encodedValue) - 1;
+ g_assert(!HarbourProtoBuf::parseDelimitedValue(&range, NULL));
+ g_assert(range.ptr == encodedValue);
+
+ range.end = (range.ptr = encodedValue) + sizeof(encodedValue);
+ g_assert(HarbourProtoBuf::parseDelimitedValue(&range, NULL));
+
+ memset(&payload, 0, sizeof(payload));
+ range.end = (range.ptr = encodedValue) + sizeof(encodedValue);
+ g_assert(HarbourProtoBuf::parseDelimitedValue(&range, &payload));
+ g_assert_cmpuint(payload.size, == ,sizeof(value));
+ g_assert(!memcmp(payload.bytes, value, sizeof(value)));
+}
+
+/*==========================================================================*
+ * Common
+ *==========================================================================*/
+
+#define TEST_(name) "/HarbourProtoBuf/" name
+
+int main(int argc, char* argv[])
+{
+ g_test_init(&argc, &argv, NULL);
+ g_test_add_func(TEST_("null"), test_null);
+ g_test_add_func(TEST_("int"), test_int);
+ g_test_add_func(TEST_("delimited"), test_delimited);
+ return g_test_run();
+}
+
+/*
+ * Local Variables:
+ * mode: C++
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/test/TestHarbourUtil/Makefile
^
|
@@ -0,0 +1,8 @@
+# -*- Mode: makefile-gmake -*-
+
+PKGS = Qt5Gui
+EXE = TestHarbourUtil
+MOC_H = HarbourUtil.h
+HARBOUR_SRC = HarbourUtil.cpp
+
+include ../Makefile.common
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/test/TestHarbourUtil/TestHarbourUtil.cpp
^
|
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2022 Jolla Ltd.
+ * Copyright (C) 2022 Slava Monich <slava.monich@jolla.com>
+ *
+ * You may use this file under the terms of the 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:
+ *
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. 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.
+ * 3. Neither the names of the copyright holders 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
+ * OWNER 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.
+ */
+
+#include "HarbourUtil.h"
+
+#include <glib.h>
+
+/*==========================================================================*
+ * object
+ *==========================================================================*/
+
+static
+void
+test_object(
+ void)
+{
+ QObject* obj = HarbourUtil::createSingleton(Q_NULLPTR, Q_NULLPTR);
+
+ g_assert(qobject_cast<HarbourUtil*>(obj));
+ delete obj;
+}
+
+/*==========================================================================*
+ * invertColor
+ *==========================================================================*/
+
+static
+void
+test_invertColor(
+ void)
+{
+ g_assert_cmpuint(HarbourUtil::invertedRgb(0x12345678), == ,0x12cba987);
+ const QColor original(0xcb,0xa9,0x87,0x12);
+ const QColor inverted(0x34,0x56,0x78,0x12);
+ g_assert(HarbourUtil::invertedColor(original) == inverted);
+ g_assert(!HarbourUtil::invertedColor(QColor()).isValid());
+}
+
+/*==========================================================================*
+ * toHex
+ *==========================================================================*/
+
+static
+void
+test_toHex(
+ void)
+{
+ static const char data[] = {
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A,
+ 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, 0x10, 0x11, 0x12, 0x13, 0x14
+ };
+
+ // Lower case is assumed
+ const QByteArray hex("0102030405060708090a0b0c0d0e0f1011121314");
+
+ g_assert(HarbourUtil::toHex(QByteArray()).isEmpty());
+ g_assert(HarbourUtil::toHex(Q_NULLPTR, 0).isEmpty());
+ g_assert(HarbourUtil::toHexBytes(Q_NULLPTR, 0).isEmpty());
+ g_assert(HarbourUtil::toHex(data, sizeof(data)) == QString::fromLatin1(hex));
+ const QByteArray out(HarbourUtil::toHexBytes(data, sizeof(data)));
+ g_assert_cmpstr(out.constData(), == ,hex.constData());
+}
+
+/*==========================================================================*
+ * Common
+ *==========================================================================*/
+
+#define TEST_(name) "/HarbourUtil/" name
+
+int main(int argc, char* argv[])
+{
+ g_test_init(&argc, &argv, NULL);
+ g_test_add_func(TEST_("object"), test_object);
+ g_test_add_func(TEST_("invertColor"), test_invertColor);
+ g_test_add_func(TEST_("toHex"), test_toHex);
+ return g_test_run();
+}
+
+/*
+ * Local Variables:
+ * mode: C++
+ * c-basic-offset: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/harbour-lib/test/coverage/run
^
|
@@ -5,7 +5,9 @@
TESTS="\
TestHarbourBase32 \
-TestHarbourBase45"
+TestHarbourBase45 \
+TestHarbourProtoBuf \
+TestHarbourUtil"
function err() {
echo "*** ERROR!" $1
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/libmc/LICENSE
^
|
@@ -1,4 +1,4 @@
-Copyright (C) 2020-2021 by Slava Monich <slava@monich.com>
+Copyright (C) 2020-2022 by Slava Monich <slava@monich.com>
You may use this file under the terms of the BSD license as follows:
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/libmc/Makefile
^
|
@@ -1,6 +1,7 @@
# -*- Mode: makefile-gmake -*-
.PHONY: clean all debug release test
+.PHONY: debug_lib release_lib coverage_lib pkgconfig install install-dev
.PHONY: print_debug_lib print_release_lib print_coverage_lib
#
@@ -21,7 +22,7 @@
VERSION_MAJOR = 1
VERSION_MINOR = 0
-VERSION_RELEASE = 3
+VERSION_RELEASE = 4
# Version for pkg-config
PCVERSION = $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_RELEASE)
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/libmc/debian/changelog
^
|
@@ -1,3 +1,9 @@
+libmc (1.0.4) unstable; urgency=low
+
+ * Handle ORG attribute
+
+ -- Slava Monich <slava@monich.com> Wed, 11 May 2022 19:23:54 +0300
+
libmc (1.0.3) unstable; urgency=low
* Fixed lib install path
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/libmc/debian/copyright
^
|
@@ -1,4 +1,4 @@
-Copyright (C) 2020-2021 by Slava Monich <slava@monich.com>
+Copyright (C) 2020-2022 by Slava Monich <slava@monich.com>
You may use this file under the terms of the BSD license as follows:
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/libmc/include/mc_mecard.h
^
|
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2020 by Slava Monich <slava@monich.com>
+ * Copyright (C) 2020-2022 by Slava Monich <slava@monich.com>
*
* You may use this file under the terms of the BSD license as follows:
*
@@ -50,6 +50,7 @@
const McStr* note;
const McStr* url;
const McStr* nickname;
+ const McStr* org; /* Since 1.0.4 */
};
MeCard*
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/libmc/rpm/libmc.spec
^
|
@@ -1,5 +1,5 @@
Name: libmc
-Version: 1.0.3
+Version: 1.0.4
Release: 0
Summary: Library for parsing mobile codes
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/libmc/src/mc_mecard.c
^
|
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2020-2021 by Slava Monich <slava@monich.com>
+ * Copyright (C) 2020-2022 by Slava Monich <slava@monich.com>
*
* You may use this file under the terms of the BSD license as follows:
*
@@ -47,6 +47,7 @@
MECARD_FIELD_NOTE,
MECARD_FIELD_URL,
MECARD_FIELD_NICKNAME,
+ MECARD_FIELD_ORG,
MECARD_FIELD_COUNT
};
@@ -72,7 +73,8 @@
"ADR", /* MECARD_FIELD_ADR */
"NOTE", /* MECARD_FIELD_NOTE */
"URL", /* MECARD_FIELD_URL */
- "NICKNAME" /* MECARD_FIELD_NICKNAME */
+ "NICKNAME", /* MECARD_FIELD_NICKNAME */
+ "ORG" /* MECARD_FIELD_ORG */
};
G_STATIC_ASSERT(sizeof(MeCardFields) == sizeof(MeCard));
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/libmc/unit/test_mecard/test_mecard.c
^
|
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2020 by Slava Monich <slava@monich.com>
+ * Copyright (C) 2020-2022 by Slava Monich <slava@monich.com>
*
* You may use this file under the terms of the BSD license as follows:
*
@@ -65,6 +65,7 @@
/* Example from OMA-TS-MC-V1_0-20130611-A */
MeCard* mecard = mecard_parse("MECARD:"
"N:Bill Jones;"
+ "ORG:Test org;"
"TEL:+18586230741;"
"TEL:+18586230742;"
"EMAIL:foo@openmobilealliance.org;"
@@ -91,6 +92,10 @@
g_assert_cmpstr(mecard->url[0], == ,"http://www.openmobilealliance.org");
g_assert(!mecard->url[1]);
+ g_assert(mecard->org);
+ g_assert_cmpstr(mecard->org[0], == ,"Test org");
+ g_assert(!mecard->org[1]);
+
g_assert(!mecard->bday);
g_assert(!mecard->adr);
g_assert(!mecard->note);
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/qml/components/CopyableDetailItem.qml
^
|
@@ -0,0 +1,32 @@
+import QtQuick 2.0
+import Sailfish.Silica 1.0
+
+ListItem {
+ id: thisItem
+
+ contentHeight: detailItem.height
+ height: contentHeight + (copyMenu ? copyMenu.height : 0)
+ width: parent.width
+
+ property alias label: detailItem.label
+ property alias value: detailItem.value
+ property alias leftMargin: detailItem.leftMargin
+
+ menu: ContextMenu {
+ id: copyMenu
+
+ x: detailItem.width/2
+ width: detailItem.width/2
+
+ MenuItem {
+ //: Context menu item
+ //% "Copy to clipboard"
+ text: qsTrId("history-menu-copy")
+ onClicked: Clipboard.text = detailItem.value
+ }
+ }
+
+ DetailItem {
+ id: detailItem
+ }
+}
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/qml/components/IconSeparator.qml
^
|
@@ -0,0 +1,68 @@
+/*
+The MIT License (MIT)
+
+Copyright (c) 2022 Slava Monich
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+
+import QtQuick 2.0
+import Sailfish.Silica 1.0
+
+import "../harbour"
+
+Item {
+ property alias iconSource: icon.source
+ property int iconSize
+ property alias color: icon.highlightColor
+
+ height: iconSize + 2 * Theme.paddingSmall
+
+ HarbourHighlightIcon {
+ id: icon
+
+ anchors.centerIn: parent
+ source: visible ? "img/contact-phone.svg" : ""
+ sourceSize.height: iconSize
+ }
+
+ Separator {
+ anchors {
+ left: parent.left
+ right: icon.left
+ rightMargin: Theme.paddingSmall
+ verticalCenter: parent.verticalCenter
+ }
+
+ color: icon.highlightColor
+ horizontalAlignment: Qt.AlignRight
+ }
+
+ Separator {
+ anchors {
+ left: icon.right
+ leftMargin: Theme.paddingSmall
+ right: parent.right
+ verticalCenter: parent.verticalCenter
+ }
+
+ color: icon.highlightColor
+ horizontalAlignment: Qt.AlignLeft
+ }
+}
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/qml/pages/CodeItem.qml
^
|
@@ -32,6 +32,7 @@
Item {
id: codeItem
+ property int allowedOrientations
property string text
property string recordId
property bool hasImage
@@ -188,9 +189,11 @@
visible: isNeeded
enabled: !holdOffTimer.running
onClicked: {
+ // Take focus away from the edit field
+ button.forceActiveFocus()
if (dgCert.valid) {
pageStack.push("CovidPage.qml", {
- allowedOrientations: window.allowedOrientations,
+ allowedOrientations: codeItem.allowedOrientations,
text: dgCert.text
})
} else if (isUrl) {
@@ -204,17 +207,9 @@
Qt.openUrlExternally(calendarEvent.url)
holdOffTimer.restart()
} else if (haveContact) {
- // Workaround for Sailfish.Contacts not being allowed in harbour apps
- var page = Qt.createQmlObject("import QtQuick 2.0;import Sailfish.Silica 1.0;import Sailfish.Contacts 1.0; \
- Page { id: page; signal saveContact(); property alias contact: card.contact; property alias saveText: saveMenu.text; \
- ContactCard { id: card; PullDownMenu { MenuItem { id: saveMenu; onClicked: page.saveContact(); }}}}",
- codeItem, "ContactPage")
- pageStack.push(page, {
- allowedOrientations: window.allowedOrientations,
- contact: codeItem.vcard.contact(),
- //: Pulley menu item (saves contact)
- //% "Save contact"
- saveText: qsTrId("contact-menu-save_contact")
+ pageStack.push("VCardPage.qml", {
+ allowedOrientations: codeItem.allowedOrientations,
+ contact: vcard.contact(),
}).saveContact.connect(function() {
pageStack.pop()
codeItem.vcard.importContact()
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/qml/pages/CodePage.qml
^
|
@@ -67,6 +67,7 @@
}
delegate: CodeItem {
+ allowedOrientations: codePage.allowedOrientations
offsetY: -slideView.y
width: slideView.width
height: slideView.height
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/qml/pages/ScanPage.qml
^
|
@@ -787,7 +787,7 @@
onHideHint: scanPage.hideHint()
onClicked: {
pageStack.push("CovidPage.qml", {
- allowedOrientations: window.allowedOrientations,
+ allowedOrientations: scanPage.allowedOrientations,
text: dgCert.text
})
}
@@ -805,17 +805,9 @@
onShowHint: scanPage.showHint(hint)
onHideHint: scanPage.hideHint()
onClicked: {
- // Workaround for Sailfish.Contacts not being allowed in harbour apps
- var page = Qt.createQmlObject("import QtQuick 2.0;import Sailfish.Silica 1.0;import Sailfish.Contacts 1.0; \
- Page { id: page; signal saveContact(); property alias contact: card.contact; property alias saveText: saveMenu.text; \
- ContactCard { id: card; PullDownMenu { MenuItem { id: saveMenu; onClicked: page.saveContact(); }}}}",
- scanPage, "ContactPage")
- pageStack.push(page, {
- allowedOrientations: window.allowedOrientations,
+ pageStack.push("VCardPage.qml", {
+ allowedOrientations: scanPage.allowedOrientations,
contact: clickableResult.vcard.contact(),
- //: Pulley menu item (saves contact)
- //% "Save contact"
- saveText: qsTrId("contact-menu-save_contact")
}).saveContact.connect(function() {
pageStack.pop()
clickableResult.vcard.importContact()
@@ -941,6 +933,7 @@
onClicked: {
pageStack.push("TextPage.qml", {
+ allowedOrientations: scanPage.allowedOrientations,
hasImage: AppSettings.saveImages,
recordId: clickableResult.recordId,
text: clickableResult.text,
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/qml/pages/TextPage.qml
^
|
@@ -2,7 +2,7 @@
The MIT License (MIT)
Copyright (c) 2014 Steffen Förster
-Copyright (c) 2018-2020 Slava Monich
+Copyright (c) 2018-2022 Slava Monich
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -29,8 +29,6 @@
Page {
id: textPage
- allowedOrientations: window.allowedOrientations
-
property alias text: codeItem.text
property alias recordId: codeItem.recordId
property alias hasImage: codeItem.hasImage
@@ -43,6 +41,7 @@
CodeItem {
id: codeItem
+ allowedOrientations: textPage.allowedOrientations
anchors.fill: parent
isPortrait: textPage.isPortrait
onDeleteEntry: textPage.deleteEntry()
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/qml/pages/VCardPage.qml
^
|
@@ -0,0 +1,259 @@
+/*
+The MIT License (MIT)
+
+Copyright (c) 2022 Slava Monich
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+*/
+
+import QtQuick 2.0
+import Sailfish.Silica 1.0
+
+import "../components"
+import "../harbour"
+
+Page {
+ id: thisPage
+
+ property var contact
+
+ signal saveContact()
+
+ SilicaFlickable {
+ anchors.fill: parent
+ contentHeight: content.height + Theme.paddingSmall
+
+ PullDownMenu {
+ MenuItem {
+ //: Pulley menu item (saves contact)
+ //% "Save contact"
+ text: qsTrId("contact-menu-save_contact")
+ onClicked: thisPage.saveContact()
+ }
+ }
+
+ DetailItem {
+ id: detailItemSample
+ visible: false
+ label: " "
+ value: " "
+ }
+
+ Column {
+ id: content
+
+ width: parent.width
+
+ readonly property int detailIconSize: detailItemSample.height - 2 * Theme.paddingSmall
+
+ PageHeader {
+ title: !contact ? "" :
+ contact.displayLabel ? contact.displayLabel :
+ contact.primaryName ? contact.primaryName :
+ contact.secondaryName ? contact.secondaryName :
+ contact.companyName ? contact.companyName :
+ //: Default page title (contact page)
+ //% "Contact"
+ qsTrId("contact-title-default")
+ description: (!contact || contact.companyName === title) ? "" : contact.companyName
+ }
+
+ Image {
+ id: contactImage
+
+ readonly property bool available: status === Image.Ready
+ property int itemSize: Math.round(Screen.width/3)
+
+ anchors.horizontalCenter: parent.horizontalCenter
+ width: itemSize
+ height: itemSize
+ sourceSize: Qt.size(itemSize, itemSize)
+ fillMode: Image.PreserveAspectCrop
+ source: !contact ? "" : contact.avatarUrl
+ visible: available
+ cache: false
+ clip: true
+ }
+
+ VerticalGap {
+ visible: contactImage.visible
+ }
+
+ IconSeparator {
+ width: parent.width
+ visible: (primaryName.visible || secondaryName.visible) && !contactImage.visible
+ iconSource: visible ? "img/contact-name.svg" : ""
+ iconSize: content.detailIconSize
+ }
+
+ CopyableDetailItem {
+ id: primaryName
+
+ label: secondaryName.visible ?
+ //: Contact detail label
+ //% "Primary name"
+ qsTrId("contact-detail-primary_name") :
+ //: Contact detail label
+ //% "Name"
+ qsTrId("contact-detail-name")
+ value: contact.primaryName
+ visible: !!value
+ }
+
+ CopyableDetailItem {
+ id: secondaryName
+
+ label: primaryName.visible ?
+ //: Contact detail label
+ //% "Secondary name"
+ qsTrId("contact-detail-secondary_name") :
+ //: Contact detail label
+ //% "Name"
+ qsTrId("contact-detail-name")
+ value: contact.secondaryName
+ visible: !!value
+ }
+
+ IconSeparator {
+ width: parent.width
+ visible: phoneDetails.count > 0
+ iconSource: visible ? "img/contact-phone.svg" : ""
+ iconSize: content.detailIconSize
+ }
+
+ Repeater {
+ id: phoneDetails
+
+ model: !contact ? [] : contact.removeDuplicatePhoneNumbers(contact.phoneDetails)
+
+ CopyableDetailItem {
+ //: Contact detail label
+ //% "Phone"
+ label: index ? "" : qsTrId("contact-detail-phone")
+ value: modelData.number
+ visible: !!value || !index
+ }
+ }
+
+ IconSeparator {
+ width: parent.width
+ visible: emailDetails.count > 0
+ iconSource: visible ? "img/contact-email.svg" : ""
+ iconSize: content.detailIconSize
+ }
+
+ Repeater {
+ id: emailDetails
+
+ model: !contact ? [] : contact.removeDuplicateEmailAddresses(contact.emailDetails)
+
+ CopyableDetailItem {
+ //: Contact detail label
+ //% "E-mail"
+ label: index ? "" : qsTrId("contact-detail-email")
+ value: modelData.address
+ visible: !!value || !index
+ }
+ }
+
+ IconSeparator {
+ width: parent.width
+ visible: addressDetails.count > 0
+ iconSource: visible ? "img/contact-address.svg" : ""
+ iconSize: content.detailIconSize
+ }
+
+ Repeater {
+ id: addressDetails
+
+ model: !contact ? [] : contact.addressDetails
+
+ CopyableDetailItem {
+ //: Contact detail label
+ //% "Address"
+ label: index ? "" : qsTrId("contact-detail-address")
+ value: modelData.address
+ visible: !!value || !index
+ }
+ }
+
+ IconSeparator {
+ width: parent.width
+ visible: websiteDetails.count > 0
+ iconSource: visible ? "img/contact-website.svg" : ""
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/qml/pages/img/contact-address.svg
^
|
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ x="0px"
+ y="0px"
+ width="64"
+ height="64"
+ viewBox="0 0 64 64"
+ style="enable-background:new 0 0 64 64"
+ xml:space="preserve">
+ <rect
+ style="opacity:0;fill:#ffffff"
+ width="64"
+ height="64"/>
+ <path
+ style="fill:#ffffff"
+ d="M32,57.156c-1.185,0-2.317-0.65-3.106-1.783c-0.558-0.802-13.693-19.738-16.066-28.607 c-0.877-3.276-0.324-6.669,1.598-9.813c2.695-4.41,8.002-8.027,13.518-9.214c2.701-0.58,5.413-0.581,8.112,0 c5.517,1.187,10.823,4.804,13.52,9.213c1.922,3.145,2.475,6.538,1.598,9.813v0c-2.374,8.869-15.509,27.805-16.067,28.607 C34.317,56.506,33.186,57.156,32,57.156z M32,9.301c-1.2,0-2.423,0.132-3.636,0.393c-5.007,1.078-9.809,4.336-12.232,8.302 c-1.629,2.666-2.104,5.52-1.373,8.253c2.285,8.535,15.642,27.789,15.776,27.982c0.831,1.193,2.097,1.193,2.929,0 c0.134-0.193,13.492-19.449,15.776-27.982v0c0.731-2.734,0.257-5.588-1.373-8.253c-2.424-3.966-7.226-7.224-12.232-8.302 C34.423,9.433,33.2,9.301,32,9.301z M50.207,26.507h0.01H50.207z"/>
+ <path
+ style="opacity:0.6;fill:#ffffff"
+ d="M32,36.362c-5.435,0-9.856-4.421-9.856-9.855c0-5.435,4.421-9.856,9.856-9.856 s9.855,4.421,9.855,9.856C41.855,31.941,37.435,36.362,32,36.362z M32,18.363c-4.491,0-8.144,3.653-8.144,8.144 c0,4.49,3.653,8.144,8.144,8.144c4.491,0,8.145-3.654,8.145-8.144C40.145,22.017,36.491,18.363,32,18.363z"/>
+</svg>
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/qml/pages/img/contact-date.svg
^
|
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ x="0px"
+ y="0px"
+ width="64"
+ height="64"
+ viewBox="0 0 64 64"
+ style="enable-background:new 0 0 64 64"
+ xml:space="preserve">
+ <rect
+ style="opacity:0;fill:#ffffff"
+ width="64"
+ height="64"/>
+ <path
+ style="opacity:0.6;fill:#ffffff"
+ d="M52.247,55.743H11.751c-1.885,0-3.419-1.534-3.419-3.419V11.828c0-1.885,1.534-3.418,3.419-3.418 h40.496c1.885,0,3.419,1.534,3.419,3.418v40.496C55.666,54.209,54.132,55.743,52.247,55.743z M11.751,10.41 c-0.782,0-1.419,0.636-1.419,1.418v40.496c0,0.782,0.637,1.419,1.419,1.419h40.496c0.782,0,1.419-0.637,1.419-1.419V11.828 c0-0.782-0.637-1.418-1.419-1.418H11.751z"/>
+ <rect
+ style="opacity:0.6;fill:#ffffff"
+ x="10"
+ y="17.667"
+ width="44"
+ height="2"/>
+ <rect
+ style="fill:#ffffff"
+ x="16"
+ y="31.667"
+ width="32"
+ height="2"/>
+ <rect
+ style="fill:#ffffff"
+ x="16"
+ y="39.667"
+ width="32"
+ height="2"/>
+ <rect
+ style="fill:#ffffff"
+ x="23"
+ y="25.333"
+ width="2"
+ height="22.667"/>
+ <rect
+ style="fill:#ffffff"
+ x="31"
+ y="25.333"
+ width="2"
+ height="22.667"/>
+ <rect
+ style="fill:#ffffff"
+ x="39"
+ y="25.333"
+ width="2"
+ height="22.667"/>
+ <path
+ style="fill:#ffffff"
+ d="M46.604,49.743H17.396c-1.321,0-2.396-1.075-2.396-2.396V26.14c0-1.321,1.075-2.396,2.396-2.396 h29.208c1.321,0,2.396,1.075,2.396,2.396v21.207C49,48.668,47.925,49.743,46.604,49.743z M17.396,25.743 c-0.215,0-0.396,0.182-0.396,0.396v21.207c0,0.215,0.182,0.396,0.396,0.396h29.208c0.215,0,0.396-0.182,0.396-0.396V26.14 c0-0.215-0.182-0.396-0.396-0.396H17.396z"/>
+</svg>
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/qml/pages/img/contact-email.svg
^
|
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ x="0px"
+ y="0px"
+ width="64px"
+ height="64px"
+ viewBox="0 0 64 64"
+ style="enable-background:new 0 0 64 64"
+ xml:space="preserve">
+ <rect
+ style="opacity:0;fill:#ffffff"
+ width="64"
+ height="64"/>
+ <path
+ style="fill:#ffffff"
+ d="M53.865,50h-44c-1.654,0-3-1.346-3-3V17c0-1.654,1.346-3,3-3h44c1.654,0,3,1.346,3,3v30 C56.865,48.654,55.52,50,53.865,50z M9.865,16c-0.551,0-1,0.449-1,1v30c0,0.552,0.449,1,1,1h44c0.552,0,1-0.448,1-1V17 c0-0.551-0.448-1-1-1H9.865z"/>
+ <path
+ style="opacity:0.5;fill:#FFFFFF"
+ d="M32.206,37.221c-0.799,0-1.556-0.286-2.131-0.805L8.679,17.083 c-0.976-0.882-0.872-1.662-0.723-2.048C8.104,14.648,8.55,14,9.865,14h44c1.311,0,1.762,0.648,1.913,1.034 c0.152,0.387,0.264,1.168-0.696,2.061L34.374,36.383C33.795,36.923,33.024,37.221,32.206,37.221z M10.463,16l20.952,18.932 c0.415,0.375,1.187,0.368,1.595-0.012L53.323,16H10.463z"/>
+</svg>
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/qml/pages/img/contact-name.svg
^
|
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ x="0px"
+ y="0px"
+ width="64"
+ height="64"
+ viewBox="0 0 64 64"
+ style="enable-background:new 0 0 64 64"
+ xml:space="preserve">
+ <rect
+ style="opacity:0;fill:#ffffff"
+ width="64"
+ height="64"/>
+ <path
+ style="opacity:0.6;fill:#ffffff"
+ d="M22,41.5h20c4.971,0,9,4.029,9,9c0,0.338-0.019,0.672-0.055,1h2.01 c0.03-0.329,0.045-0.663,0.045-1c0-6.075-4.925-11-11-11H22c-6.075,0-11,4.925-11,11c0,0.337,0.015,0.671,0.045,1h2.01 C13.019,51.172,13,50.838,13,50.5C13,45.529,17.029,41.5,22,41.5z"/>
+ <path
+ style="fill:#ffffff"
+ d="M32,35.5c-6.617,0-12-5.383-12-12s5.383-12,12-12c6.617,0,12,5.383,12,12S38.617,35.5,32,35.5z M32,13.5c-5.514,0-10,4.486-10,10s4.486,10,10,10c5.514,0,10-4.486,10-10S37.514,13.5,32,13.5z"/>
+</svg>
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/qml/pages/img/contact-note.svg
^
|
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ x="0px"
+ y="0px"
+ width="64px"
+ height="64px"
+ viewBox="0 0 64 64"
+ style="enable-background:new 0 0 64 64"
+ xml:space="preserve">
+ <rect
+ style="opacity:0;fill:#ffffff"
+ width="64"
+ height="64"/>
+ <path
+ style="opacity:0.6;fill:#ffffff"
+ d="M38.096,53h-23.71C12.784,53,11,51.725,11,49.895V14.105 C11,12.275,12.784,11,14.386,11h35.79C51.813,11,53,12.306,53,14.105v23.697L38.096,53z M14.386,13C13.712,13,13,13.568,13,14.105 v35.789C13,50.432,13.712,51,14.386,51h22.87L51,36.986V14.105C51,13.846,50.94,13,50.176,13H14.386z"/>
+ <path
+ style="fill:#ffffff"
+ d="M37.087,39.277V52L52,37H39.587C38.438,37,37.087,38.099,37.087,39.277z"/>
+ <path
+ style="fill:#ffffff"
+ d="M43,24H21c-0.552,0-1-0.448-1-1s0.448-1,1-1h22c0.553,0,1,0.448,1,1S43.553,24,43,24z"/>
+ <path
+ style="fill:#ffffff"
+ d="M43,33H21c-0.552,0-1-0.448-1-1s0.448-1,1-1h22c0.553,0,1,0.448,1,1S43.553,33,43,33z"/>
+ <path
+ style="fill:#ffffff"
+ d="M43,42H21c-0.552,0-1-0.447-1-1s0.448-1,1-1h22c0.553,0,1,0.447,1,1S43.553,42,43,42z"/>
+</svg>
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/qml/pages/img/contact-phone.svg
^
|
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ x="0px"
+ y="0px"
+ width="64"
+ height="64"
+ viewBox="0 0 64 64"
+ style="enable-background:new 0 0 64 64"
+ xml:space="preserve">
+ <rect
+ style="opacity:0;fill:#ffffff"
+ width="64"
+ height="64"/>
+ <path
+ style="fill:#ffffff"
+ d="M37.56,45.803l-0.871-0.53c-6.019-3.27-10.424-7.271-14.281-12.975 c-0.549-0.794-1.091-1.645-1.606-2.519c-0.209-0.346-0.424-0.705-0.637-1.074l-0.514-0.893l0.908-0.487 c3.643-1.956,4.729-6.477,3.902-9.739c-0.725-2.861-1.818-7.982-1.829-8.034c-0.115-0.54,0.229-1.071,0.77-1.187 c0.541-0.118,1.071,0.229,1.187,0.77c0.011,0.051,1.096,5.136,1.811,7.959c1.1,4.336-0.608,9.063-4.009,11.446 c0.043,0.071,0.085,0.142,0.128,0.212c0.497,0.844,1.013,1.653,1.541,2.416c3.5,5.175,7.465,8.873,12.779,11.899l0.028-0.043 l0.006,0.003c2.487-3.343,7.322-5.01,11.505-3.957l7.878,1.984l-0.488,1.939l-7.878-1.984c-3.494-0.876-7.698,0.626-9.569,3.424 l-0.68,1.26l-0.018-0.01L37.56,45.803z"/>
+ <path
+ style="opacity:0.6;fill:#ffffff"
+ d="M46.575,56.962c-1.345,0-2.695-0.202-4.018-0.601c-0.809-0.244-1.607-0.513-2.4-0.796 h-0.002l-0.154-0.056c-14.145-5.107-25.475-16.457-30.309-30.36c-0.342-0.989-0.609-1.834-0.842-2.659 c-0.379-1.341-0.561-2.701-0.54-4.042c0.083-5.477,3.648-10.104,7.785-10.105l7.514,0c0.552,0,1,0.448,1,1s-0.448,1-1,1l-7.543,0 c-2.7,0.057-5.684,3.382-5.756,8.136c-0.018,1.146,0.139,2.313,0.465,3.467c0.223,0.788,0.478,1.597,0.782,2.474 c4.663,13.412,15.541,24.303,29.124,29.208l-0.188,0.995l0.336-0.941c0.762,0.271,1.529,0.53,2.307,0.765 c1.134,0.342,2.291,0.515,3.439,0.515c0.015,0,0.03,0,0.046,0c4.811-0.019,8.404-3.049,8.404-5.745 c0-3.078-0.015-7.188-0.015-7.188l2-0.008c0,0,0.015,4.114,0.015,7.184c0,4.117-4.858,7.736-10.396,7.758 C46.611,56.962,46.593,56.962,46.575,56.962z"/>
+</svg>
|
[-]
[+]
|
Added |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/qml/pages/img/contact-website.svg
^
|
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+ version="1.1"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ x="0px"
+ y="0px"
+ width="64"
+ height="64"
+ viewBox="0 0 64 64"
+ style="enable-background:new 0 0 64 64"
+ xml:space="preserve">
+ <rect
+ style="opacity:0;fill:#ffffff"
+ width="64"
+ height="64"/>
+ <path
+ style="fill:#ffffff"
+ d="M32,56.519c-13.509,0-24.5-10.99-24.5-24.5c0-13.509,10.991-24.5,24.5-24.5 c13.51,0,24.5,10.991,24.5,24.5C56.5,45.528,45.51,56.519,32,56.519z M32,9.519c-12.407,0-22.5,10.093-22.5,22.5 c0,12.406,10.093,22.5,22.5,22.5c12.406,0,22.5-10.094,22.5-22.5C54.5,19.612,44.406,9.519,32,9.519z"/>
+ <rect
+ style="opacity:0.6;fill:#ffffff"
+ x="8.5"
+ y="31.012"
+ width="47"
+ height="2"/>
+ <rect
+ style="opacity:0.6;fill:#ffffff"
+ x="31"
+ y="8.519"
+ width="2"
+ height="47"/>
+ <rect
+ style="opacity:0.6;fill:#ffffff"
+ x="11.69"
+ y="18.512"
+ width="40.619"
+ height="2"/>
+ <rect
+ style="opacity:0.6;fill:#ffffff"
+ x="11.69"
+ y="43.512"
+ width="40.619"
+ height="2"/>
+ <path
+ style="opacity:0.6;fill:#ffffff"
+ d="M32,56.519c-7.919,0-14.123-10.762-14.123-24.5S24.081,7.519,32,7.519 c7.92,0,14.123,10.762,14.123,24.5S39.92,56.519,32,56.519z M32,9.519c-6.685,0-12.123,10.093-12.123,22.5 c0,12.406,5.438,22.5,12.123,22.5s12.123-10.094,12.123-22.5C44.123,19.612,38.685,9.519,32,9.519z"/>
+</svg>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/src/MeCardConverter.cpp
^
|
@@ -1,7 +1,7 @@
/*
The MIT License (MIT)
-Copyright (c) 2020 Slava Monich
+Copyright (c) 2020-2022 Slava Monich
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -73,6 +73,7 @@
concatValues(&utf8, "N", mecard->n, ';');
encodeValues(&utf8, "TEL", mecard->tel);
encodeValues(&utf8, "EMAIL", mecard->email);
+ encodeValues(&utf8, "ORG", mecard->org);
encodeValues(&utf8, "BDAY", mecard->bday);
if (mecard->adr) {
// ADR is slightly special
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/src/scanner/BarcodeScanner.cpp
^
|
@@ -369,9 +369,9 @@
#endif // HARBOUR_DEBUG
QImage scaledImage;
- if (image.width() > maxSize || image.height() > maxSize) {
+ if (image.width() > maxSize && image.height() > maxSize) {
Qt::TransformationMode mode = Qt::SmoothTransformation;
- if (image.height() > image.width()) {
+ if (image.height() < image.width()) {
scaledImage = image.scaledToHeight(maxSize, mode);
scale = image.height()/(qreal)maxSize;
HDEBUG("scaled to height" << scale << scaledImage);
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode-cs.ts
^
|
@@ -504,7 +504,7 @@
<message id="dgcert-personal-name">
<source>Name</source>
<extracomment>Detail label (personal details)</extracomment>
- <translation type="unfinished">Název</translation>
+ <translation type="unfinished">Jméno</translation>
</message>
<message id="dgcert-personal-standardized_name">
<source>Standardized name</source>
@@ -676,5 +676,55 @@
<extracomment>Test result</extracomment>
<translation type="unfinished">Pozitivní</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation type="unfinished">Kontakt</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Jméno</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Hlavní jméno</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Druhé jméno</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Telefon</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>E‑mail</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Adresa</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Webová stránka</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Narozeniny</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Poznámka</translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode-da.ts
^
|
@@ -674,5 +674,55 @@
<extracomment>Test result</extracomment>
<translation type="unfinished">Positiv</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation type="unfinished">Kontakt</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Navn</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Primært navn</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Sekundært navn</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Telefon</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Mail</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Adresse</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Websted</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Fødselsdag</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Note</translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode-de.ts
^
|
@@ -674,5 +674,55 @@
<extracomment>Test result</extracomment>
<translation type="unfinished">Positiver</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation type="unfinished">Kontakt</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Name</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Primärer Name</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Zweitname</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Telefon</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>E-Mail</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Adresse</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Website</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Geburtstag</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Notiz</translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode-es.ts
^
|
@@ -674,5 +674,55 @@
<extracomment>Test result</extracomment>
<translation type="unfinished">Positiva</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation type="unfinished">Contacto</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Nombre</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Nombre principal</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Nombre secundario</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Teléfono</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Correo electrónico</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Dirección</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Sitio web</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Cumpleaños</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Notas</translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode-fr.ts
^
|
@@ -674,5 +674,55 @@
<extracomment>Test result</extracomment>
<translation type="unfinished">Positif</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation type="unfinished">Contact</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Nom</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Nom principal</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Nom secondaire</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Téléphone</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>E-mail</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Adresse</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Site Web</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Date de naissance</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Note</translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode-hu.ts
^
|
@@ -672,5 +672,55 @@
<extracomment>Test result</extracomment>
<translation>Pozitív</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation type="unfinished">Névjegy</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Név</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Elsődleges név</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Másodlagos név</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Telefon</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>E-mail</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Cím</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Honlap</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Születésnap</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Megjegyzés</translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode-it.ts
^
|
@@ -674,5 +674,55 @@
<extracomment>Test result</extracomment>
<translation type="unfinished">Positivo</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation type="unfinished">Contatto</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Nome</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Nome primario</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Nome secondario</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Telefono</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>E-mail</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Indirizzo</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Sito web</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Compleanno</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Note</translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode-pl.ts
^
|
@@ -91,12 +91,12 @@
<message id="settings-formats-section">
<source>Barcode formats</source>
<extracomment>Section header</extracomment>
- <translation type="unfinished">Formaty kodów kreskowych</translation>
+ <translation>Formaty kodów kreskowych</translation>
</message>
<message id="settings-formats-description">
<source>Disabling the formats that you don't need speeds up the decoding and reduces the risk of incorrect recognition of the barcode type.</source>
<extracomment>Section description</extracomment>
- <translation type="unfinished">Wyłączając niepotrzebne formaty, przyspieszasz dekodowanie i zmniejszasz ryzyko nieprawidłowego wykrycia typu kodu kreskowego.</translation>
+ <translation>Wyłączając niepotrzebne formaty, przyspieszasz dekodowanie i zmniejszasz ryzyko nieprawidłowego wykrycia typu kodu kreskowego.</translation>
</message>
<message id="settings-scan-section">
<source>Scan</source>
@@ -676,5 +676,55 @@
<extracomment>Test result</extracomment>
<translation>Pozytywny</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation type="unfinished">Kontakt</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Imię</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Główna imię</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Drugie imię</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Telefon</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>E-mail</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Adres</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Strona internetowa</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Urodziny</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Notatka</translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode-pt.ts
^
|
@@ -674,5 +674,55 @@
<extracomment>Test result</extracomment>
<translation type="unfinished">Positivo</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation type="unfinished">Contacto</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Nome</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Nome principal</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Nome secundário</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Telefone</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>E-mail</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Morada</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Site</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Data de nascimento</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Apontamento</translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode-ru.ts
^
|
@@ -676,5 +676,55 @@
<extracomment>Test result</extracomment>
<translation>Положительный</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation>Контакт</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Имя</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Основное имя</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Второе имя</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Телефон</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Электронная почта</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Адрес</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Веб-сайт</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>День рождения</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Заметка</translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode-sk.ts
^
|
@@ -676,5 +676,55 @@
<extracomment>Test result</extracomment>
<translation>Pozitívny</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation type="unfinished">Kontakt</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Meno</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Hlavné meno</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Druhé meno</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Telefón</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>E-mail</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Adresa</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Webová stránka</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Narodeniny</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Poznámka</translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode-sv.ts
^
|
@@ -674,5 +674,55 @@
<extracomment>Test result</extracomment>
<translation>Positivt</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation type="unfinished">Kontakt</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Namn</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Primärt namn</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">Sekundärt namn</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Telefon</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Mejl</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Adress</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Webbplats</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Födelsedag</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Anteckning</translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode-zh_CN.ts
^
|
@@ -500,7 +500,7 @@
<message id="dgcert-personal-name">
<source>Name</source>
<extracomment>Detail label (personal details)</extracomment>
- <translation type="unfinished">名称</translation>
+ <translation type="unfinished">姓名</translation>
</message>
<message id="dgcert-personal-standardized_name">
<source>Standardized name</source>
@@ -672,5 +672,55 @@
<extracomment>Test result</extracomment>
<translation type="unfinished">检测到</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation type="unfinished">联系人</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">名字</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">主要名称</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">次要名称</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>电话</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>电子邮件</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>地址</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>网站</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>生日</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>注释</translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode-zh_TW.ts
^
|
@@ -500,7 +500,7 @@
<message id="dgcert-personal-name">
<source>Name</source>
<extracomment>Detail label (personal details)</extracomment>
- <translation type="unfinished">名稱</translation>
+ <translation type="unfinished">姓名</translation>
</message>
<message id="dgcert-personal-standardized_name">
<source>Standardized name</source>
@@ -672,5 +672,55 @@
<extracomment>Test result</extracomment>
<translation type="unfinished">檢測到</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation type="unfinished">聯絡人</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">名字</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">主要名稱</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation type="unfinished">次要名稱</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>電話</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>電子郵件</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>地址</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>網站</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>生日</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>註解</translation>
+ </message>
</context>
</TS>
|
[-]
[+]
|
Changed |
_service:tar_git:harbour-barcode-1.0.48.tar.bz2/translations/harbour-barcode.ts
^
|
@@ -212,7 +212,7 @@
<message id="history-menu-copy">
<source>Copy to clipboard</source>
<extracomment>Context menu item</extracomment>
- <translation>Copy to clipboard</translation>
+ <translation>Copy</translation>
</message>
<message id="history-menu-delete_remorse">
<source>Deleting</source>
@@ -674,5 +674,55 @@
<extracomment>Test result</extracomment>
<translation>Positive</translation>
</message>
+ <message id="contact-title-default">
+ <source>Contact</source>
+ <extracomment>Default page title (contact page)</extracomment>
+ <translation>Contact</translation>
+ </message>
+ <message id="contact-detail-name">
+ <source>Name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Name</translation>
+ </message>
+ <message id="contact-detail-primary_name">
+ <source>Primary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Primary name</translation>
+ </message>
+ <message id="contact-detail-secondary_name">
+ <source>Secondary name</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Secondary name</translation>
+ </message>
+ <message id="contact-detail-phone">
+ <source>Phone</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Phone</translation>
+ </message>
+ <message id="contact-detail-email">
+ <source>E-mail</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>E-mail</translation>
+ </message>
+ <message id="contact-detail-address">
+ <source>Address</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Address</translation>
+ </message>
+ <message id="contact-detail-website">
+ <source>Website</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Website</translation>
+ </message>
+ <message id="contact-detail-birthday">
+ <source>Birthday</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Birthday</translation>
+ </message>
+ <message id="contact-detail-note">
+ <source>Note</source>
+ <extracomment>Contact detail label</extracomment>
+ <translation>Note</translation>
+ </message>
</context>
</TS>
|