[-]
[+]
|
Changed |
_service:tar_git:patchmanager.changes
|
|
[-]
[+]
|
Changed |
_service:tar_git:patchmanager.spec
^
|
|
[-]
[+]
|
Deleted |
_service:tar_git:patchmanager-rpmlintrc
^
|
@@ -1,47 +0,0 @@
-# References: An exceptionally comprehensive example rpmlintrc file
-# https://github.com/coreos/tectonic-rpms/blob/master/rpmlint-config
-# but adheres to the old syntax, not the new TOML one: https://toml.io/en/
-# See also https://fedoraproject.org/wiki/Common_Rpmlint_issues and
-# https://en.opensuse.org/openSUSE:Packaging_checks#Building_Packages_in_spite_of_errors
-
-# On behalf of Jolla's tar_git / SailfishOS-OBS:
-# - It re-writes the DistURL, rendering it inconsistent
-addFilter('invalid-url DistURL')
-# - It has a limited list of FLOSS-licenses, most SDPX-IDs are missing
-addFilter('invalid-license')
-# - It extracts strange changelog entries out of Git, if a %%changelog section is used
-addFilter('incoherent-version-in-changelog')
-# - It sometimes re-writes the %version-%release strings of package names,
-# when referencing (only) a branch (i.e., not a git tag), for example,
-# 0.5.2-1 to 0.5.2+rebuild1+main.20230129011931.1.g584263a-1.8.1.jolla
-addFilter('filename-too-long-for-joliet')
-
-# On behalf of the SailfishOS:Chum specification:
-# - which re-uses the spec file tag "Url:"
-addFilter('tag-in-description Url:')
-# - which also re-uses the spec file tag "Icon:"
-addFilter('tag-in-description Icon:')
-# - which makes one easily do
-addFilter('description-line-too-long')
-setBadness('description-line-too-long', 0)
-
-# On our own behalf:
-# - This is how it ought to be
-addFilter('^patchmanager.* percent-in-%p[a-z][a-z]')
-addFilter('^patchmanager.* use-tmp-in-%postun')
-addFilter('^patchmanager.* dangerous-command-in-%postun rm')
-# - We know, do you want to contribute? :-)
-addFilter('^patchmanager.* no-soname /usr/lib/libpreloadpatchmanager\.so')
-addFilter('^patchmanager.* shlib-with-non-pic-code /usr/lib/libpreloadpatchmanager\.so')
-addFilter('^patchmanager.* non-standard-dir-in-usr libexec')
-# - This might be worth to investigate
-#addFilter('^patchmanager.* dbus-parsing-exception raised an exception')
-setBadness('dbus-parsing-exception', 0)
-# - The testcases are special
-addFilter('^patchmanager.* libdir-macro-in-noarch-package testcases')
-setBadness('libdir-macro-in-noarch-package', 0)
-addFilter('^patchmanager-testcases.* noarch-with-lib64')
-addFilter('^patchmanager-testcases.* explicit-lib-dependency libsailfishapp-launcher')
-setBadness('explicit-lib-dependency', 0)
-addFilter('^patchmanager-testcases.* desktopfile-without-binary')
-
|
[-]
[+]
|
Added |
_service:tar_git:patchmanager.rpmlintrc
^
|
@@ -0,0 +1,43 @@
+# References: An exceptionally comprehensive example rpmlintrc file
+# https://github.com/coreos/tectonic-rpms/blob/master/rpmlint-config
+# but adheres to the old syntax, not the new TOML one: https://toml.io/en/
+# See also https://fedoraproject.org/wiki/Common_Rpmlint_issues and
+# https://en.opensuse.org/openSUSE:Packaging_checks#Building_Packages_in_spite_of_errors
+
+# On behalf of Jolla's tar_git / SailfishOS-OBS:
+# - It re-writes the DistURL, rendering it inconsistent
+addFilter('invalid-url DistURL')
+# - It has a limited list of FLOSS-licenses, most SDPX-IDs are missing
+addFilter('invalid-license')
+# - It extracts strange changelog entries out of Git, if a %%changelog section is used
+addFilter('incoherent-version-in-changelog')
+# - It sometimes re-writes the %version-%release strings of package names,
+# when referencing (only) a branch (i.e., not a git tag), for example,
+# 0.5.2-1 to 0.5.2+rebuild1+main.20230129011931.1.g584263a-1.8.1.jolla
+addFilter('filename-too-long-for-joliet')
+
+# On behalf of the SailfishOS:Chum metadata definition:
+# - which often forces one to do
+addFilter('description-line-too-long')
+setBadness('description-line-too-long', 0)
+
+# On our own behalf:
+# - This is how it ought to be
+addFilter('^patchmanager.* percent-in-%p[a-z][a-z]')
+addFilter('^patchmanager.* use-tmp-in-%postun')
+addFilter('^patchmanager.* dangerous-command-in-%postun rm')
+# - We know, do you want to contribute? :-)
+addFilter('^patchmanager.* no-soname /usr/lib/libpreloadpatchmanager\.so')
+addFilter('^patchmanager.* shlib-with-non-pic-code /usr/lib/libpreloadpatchmanager\.so')
+addFilter('^patchmanager.* non-standard-dir-in-usr libexec')
+# - This might be worth to investigate
+#addFilter('^patchmanager.* dbus-parsing-exception raised an exception')
+setBadness('dbus-parsing-exception', 0)
+# - The testcases are special
+addFilter('^patchmanager.* libdir-macro-in-noarch-package testcases')
+setBadness('libdir-macro-in-noarch-package', 0)
+addFilter('^patchmanager-testcases.* noarch-with-lib64')
+addFilter('^patchmanager-testcases.* explicit-lib-dependency libsailfishapp-launcher')
+setBadness('explicit-lib-dependency', 0)
+addFilter('^patchmanager-testcases.* desktopfile-without-binary')
+
|
[-]
[+]
|
Changed |
_service
^
|
@@ -2,7 +2,7 @@
<service name="tar_git">
<param name="url">https://github.com/sailfishos-patches/patchmanager.git</param>
<param name="branch"/>
- <param name="revision">3.2.7</param>
+ <param name="revision">3.2.8</param>
<param name="token"/>
<param name="debian">N</param>
<param name="dumb">N</param>
|
[-]
[+]
|
Changed |
_service:tar_git:patchmanager-3.2.8.tar.gz/.github/workflows/ci-on-pull_req.yml
^
|
@@ -29,7 +29,7 @@
- name: Build ${{ env.ARCH }} on ${{ env.RELEASE }}
env:
- ARCH: armv7hl
+ ARCH: i486
RELEASE: 3.4.0.24
run: |
set -x
|
[-]
[+]
|
Changed |
_service:tar_git:patchmanager-3.2.8.tar.gz/.github/workflows/ci-on-tags.yml
^
|
@@ -6,7 +6,7 @@
- '*'
env:
- LATEST: 4.4.0.68
+ LATEST: 4.5.0.16
jobs:
build:
|
[-]
[+]
|
Added |
_service:tar_git:patchmanager-3.2.8.tar.gz/.icons/README.md
^
|
@@ -0,0 +1,7 @@
+See original, but somehow technically problematic SVG icon (created with Inkscape 0.48.4 r9939) uploaded by Coderus 2016-12-14 for Patchmanager 2 at [`/src/icons/svgs/icon-m-patchmanager2.svg`](https://github.com/sailfishos-patches/patchmanager/blob/master/src/icons/svgs/icon-m-patchmanager2.svg).
+
+The `patchmanager_200x200.png` and `patchmanager_86x86.png` are exported versions (2014-01-22) of an older SVG by SfietKonstantin, which are renamed copies of their originals in [`/src/share`](https://github.com/sailfishos-patches/patchmanager/tree/master/src/share).
+
+For the icons in the "social-media" directory, the `patchmanager_200x200.png` was simply put on a larger, transparent canvas to create `patchmanager_284x284.png` (200 × √2 = 282,842712475, so the icon proper is fully visible when clipped circularly, as GitHub does it at multiple places) and `patchmanager_480x240.png` (2:1 "social media" format, see in GitHub's general settings page of a project).
+
+The original SVG of the `icon-patchmanager_100x100.png` (with the patch in red hue) seems too be lost.
|
|
Added |
_service:tar_git:patchmanager-3.2.8.tar.gz/.icons/icon-patchmanager_100x100.png
^
|
|
Added |
_service:tar_git:patchmanager-3.2.8.tar.gz/.icons/patchmanager_200x200.png
^
|
|
Added |
_service:tar_git:patchmanager-3.2.8.tar.gz/.icons/patchmanager_86x86.png
^
|
|
Added |
_service:tar_git:patchmanager-3.2.8.tar.gz/.icons/social-media/patchmanager_284x284.png
^
|
|
Added |
_service:tar_git:patchmanager-3.2.8.tar.gz/.icons/social-media/patchmanager_480x240.png
^
|
[-]
[+]
|
Added |
_service:tar_git:patchmanager-3.2.8.tar.gz/.transifex/config.yml
^
|
@@ -0,0 +1,12 @@
+git:
+ # Basic setup guide for GitHub:
+ # https://help.transifex.com/en/articles/6265125-github-via-transifex-ui
+ filters:
+ - filter_type: file
+ # All supported i18n types (hard to find): https://docs.transifex.com/formats
+ file_format: QT
+ source_language: en
+ source_file: translations/settings-patchmanager.ts
+ # Path expression to translation files, must be quoted in single-quotes
+ # and must contain <lang> placeholder:
+ translation_files_expression: 'translations/settings-patchmanager-<lang>.ts'
|
[-]
[+]
|
Changed |
_service:tar_git:patchmanager-3.2.8.tar.gz/src/qml/PatchManagerPage.qml
^
|
@@ -249,20 +249,36 @@
id: background
menu: contextMenu
contentHeight: content.height
+ enabled: !view.busy
+
+ /* properties */
property bool applying: appliedSwitch.busy
property int dragThreshold: width / 3
property var pressPosition
property int dragIndex: index
+
+ readonly property bool isBelowBottom: drag.target ? (content.y + content.height - view.contentY) > view.height : false
+ readonly property bool isAboveTop: drag.target ? content.y < view.contentY : false
+
+ property string patchSettingsFile
+ property bool hasPatchSettingsPage: false
+
+ /* signals / handlers */
+
+ Component.onCompleted: {
+ console.debug("Constructing delegate for:", patchObject.details.patch)
+ const qmlFile = "/usr/share/patchmanager/patches/%1/main.qml".arg(patchObject.details.patch)
+ if (PatchManager.fileExists(qmlFile)) {
+ patchSettingsFile = qmlFile
+ hasPatchSettingsPage = true
+ }
+ }
+
onDragIndexChanged: {
if (drag.target) {
view.model.move(index, dragIndex)
}
}
- enabled: !view.busy
-
- Component.onCompleted: {
- console.debug("Constructing delegate for:", patchObject.details.patch)
- }
onPressed: {
pressPosition = Qt.point(mouse.x, mouse.y)
@@ -272,9 +288,6 @@
content.x = 0
}
- readonly property bool isBelowBottom: drag.target ? (content.y + content.height - view.contentY) > view.height : false
- readonly property bool isAboveTop: drag.target ? content.y < view.contentY : false
-
onPositionChanged: {
if (menuOpen) {
return
@@ -307,37 +320,23 @@
}
}
- Timer {
- id: sctollTopTimer
- repeat: true
- interval: 1
- onTriggered: {
- if (view.contentY > view.topmostY) {
- view.contentY -= 5
- content.y -= 5
- } else {
- view.contentY = view.topmostY
-// content.y = 0
- }
- }
- }
+ onReleased: reset()
+ onCanceled: reset()
- Timer {
- id: sctollBottomTimer
- repeat: true
- interval: 1
- onTriggered: {
- // c.y: 1195.81005859375 c.h: 100 cY: 220 cH: 1638 vH: 1280 hH: 138
- if (view.contentY < view.bottommostY) {
- view.contentY += 5
- content.y += 5
- } else {
- view.contentY = view.bottommostY
-// content.y = view.contentHeight - view.height
+ onClicked: {
+ var patchName = patchObject.details.patch
+ if (hasPatchSettingsPage) {
+ var translator = PatchManager.installTranslator(patchName)
+ var page = pageStack.push(patchSettingsFile)
+ if (translator) {
+ page.Component.destruction.connect(function() { PatchManager.removeTranslator(patchName) })
}
+ } else {
+ openPatchInfo()
}
}
+ /* functions */
function reset() {
if (!drag.target) {
content.x = 0
@@ -357,29 +356,9 @@
backAnimation.start()
}
- onReleased: reset()
- onCanceled: reset()
-
- Image {
- anchors.fill: parent
- fillMode: Image.Tile
- source: "image://theme/icon-status-invalid"
- opacity: background.drag.target ? 0.33 : Math.abs(content.x) / dragThreshold / 3
- smooth: false
- }
-
- Connections {
- target: patchObject.details
- onPatchedChanged: {
- console.debug("onPatchedChanged:", patchObject.details.patch, patchObject.details.patched)
- }
- }
-
- Connections {
- target: patchObject
- onBusyChanged: {
- console.debug("onBusyChanged:", patchObject.details.patch, patchObject.busy)
- }
+ function openPatchInfo() {
+ pageStack.push(Qt.resolvedUrl("UnifiedPatchPage.qml"),
+ {modelData: patchObject.details, delegate: background})
}
function doPatch() {
@@ -415,23 +394,62 @@
}
}
- onClicked: {
- var patchName = patchObject.details.patch
- var qmlFile = "/usr/share/patchmanager/patches/%1/main.qml".arg(patchName)
- if (PatchManager.fileExists(qmlFile)) {
- var translator = PatchManager.installTranslator(patchName)
- var page = pageStack.push(qmlFile)
- if (translator) {
- page.Component.destruction.connect(function() { PatchManager.removeTranslator(patchName) })
+
+ /* helper components */
+
+ Connections {
+ target: patchObject.details
+ onPatchedChanged: {
+ console.debug("onPatchedChanged:", patchObject.details.patch, patchObject.details.patched)
+ }
+ }
+
+ Connections {
+ target: patchObject
+ onBusyChanged: {
+ console.debug("onBusyChanged:", patchObject.details.patch, patchObject.busy)
+ }
+ }
+
+ Timer {
+ id: sctollTopTimer
+ repeat: true
+ interval: 1
+ onTriggered: {
+ if (view.contentY > view.topmostY) {
+ view.contentY -= 5
+ content.y -= 5
+ } else {
+ view.contentY = view.topmostY
+// content.y = 0
}
- } else {
- openPatchInfo()
}
}
- function openPatchInfo() {
- pageStack.push(Qt.resolvedUrl("UnifiedPatchPage.qml"),
- {modelData: patchObject.details, delegate: background})
+ Timer {
+ id: sctollBottomTimer
+ repeat: true
+ interval: 1
+ onTriggered: {
+ // c.y: 1195.81005859375 c.h: 100 cY: 220 cH: 1638 vH: 1280 hH: 138
+ if (view.contentY < view.bottommostY) {
+ view.contentY += 5
+ content.y += 5
+ } else {
+ view.contentY = view.bottommostY
+// content.y = view.contentHeight - view.height
+ }
+ }
+ }
+
|
[-]
[+]
|
Changed |
_service:tar_git:patchmanager-3.2.8.tar.gz/src/qml/WebPatchPage.qml
^
|
@@ -340,16 +340,18 @@
width: parent.width
contentHeight: filesContent.height
property bool isInstalled: !!container.versions && container.versions[modelData.project] == modelData.version
- property bool isCompatible: modelData.compatible.indexOf(PatchManager.osVersion) >= 0
- property bool isReinstallable: isInstalled && isCompatible
+ property bool isCompatible: (modelData.compatible.indexOf(PatchManager.osVersion) >= 0)
+ property bool forceCompatible: PatchManager.sfosVersionCheck !== VersionCheck.Strict
+ property bool isInstallable: isCompatible || forceCompatible
+ property bool isReinstallable: isInstalled && isInstallable
onClicked: {
- if ((PatchManager.sfosVersionCheck !== VersionCheck.Strict) && !isCompatible) {
+ if (isReinstallable) {
+ remorseAction(qsTranslate("", "Re-Install Patch %1").arg(patchData.display_name), installPatch)
+ } else if (!isInstallable) {
errorMessageComponent.createObject(fileDelegate, {text: qsTranslate("", "This Patch is incompatible with the installed SailfishOS version.")})
- } else if (!fileDelegate.isInstalled) {
+ } else {
remorseAction(qsTranslate("", "Install Patch %1").arg(patchData.display_name), installPatch)
- } else if (fileDelegate.isReinstallable) {
- remorseAction(qsTranslate("", "Re-Install Patch %1").arg(patchData.display_name), installPatch)
}
}
@@ -426,7 +428,7 @@
text: Theme.highlightText(qsTranslate("", "Compatible: %1").arg(modelData.compatible.join(", ")),PatchManager.osVersion, Theme.primaryColor)
textFormat: Text.StyledText
font.pixelSize: Theme.fontSizeExtraSmall
- color: fileDelegate.isCompatible ? Theme.highlightColor : Qt.tint(Theme.highlightColor, "red")
+ color: fileDelegate.isCompatible ? Theme.highlightColor : Theme.errorColor
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
}
|