From a3eb2d0cf08d66cbb044f5bea622e02be6b3dfad Mon Sep 17 00:00:00 2001 From: Jeena Paradies Date: Thu, 28 Mar 2019 21:07:35 +0100 Subject: [PATCH 01/14] Replace transfer.sh with file.io in travis script transfer.sh is down so we need to find a new way of getting the image after it builds. --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index dd3eb50..7311465 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,4 +21,4 @@ script: - ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmldir=./qml/ -bundle-non-qt-libs - ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmldir=./qml/ -appimage - find ./appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq - - curl --upload-file ./FeedTheMonkey*.AppImage https://transfer.sh/FeedTheMonkey-git.$(git rev-parse --short HEAD)-x86_64.AppImage + - curl -F "file=@$(echo ./FeedTheMonkey*.AppImage) https://file.io From 9c441ba03418a037e599b88a7a57c4a2c91865b3 Mon Sep 17 00:00:00 2001 From: Jeena Paradies Date: Thu, 28 Mar 2019 22:51:36 +0100 Subject: [PATCH 02/14] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 7311465..3410eab 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,4 +21,4 @@ script: - ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmldir=./qml/ -bundle-non-qt-libs - ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmldir=./qml/ -appimage - find ./appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq - - curl -F "file=@$(echo ./FeedTheMonkey*.AppImage) https://file.io + - curl -F "file=@$(echo FeedTheMonkey*.AppImage) https://file.io From 40bd96cc123e8794b650b2711b64e15231358f86 Mon Sep 17 00:00:00 2001 From: Jeena Paradies Date: Fri, 29 Mar 2019 07:51:52 +0100 Subject: [PATCH 03/14] Update .travis.yml --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3410eab..5336db7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,4 +21,4 @@ script: - ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmldir=./qml/ -bundle-non-qt-libs - ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmldir=./qml/ -appimage - find ./appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq - - curl -F "file=@$(echo FeedTheMonkey*.AppImage) https://file.io + - curl -F "file=@$(echo FeedTheMonkey*.AppImage)" https://file.io From 0c5825afb8adbcaeda0d791ccce796747be5ad42 Mon Sep 17 00:00:00 2001 From: Jeena Date: Sun, 31 Mar 2019 10:25:10 +0200 Subject: [PATCH 04/14] Add deploy step This step deploys the AppImage to GitHub so that I can create a release which contains the AppImage within it. --- .travis.yml | 45 +++++++++++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/.travis.yml b/.travis.yml index dd3eb50..fcc6e8d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,23 +2,32 @@ language: cpp compiler: gcc sudo: require dist: trusty - before_install: - - sudo add-apt-repository ppa:beineri/opt-qt58-trusty -y - - sudo apt-get update -qq - -install: - - sudo apt-get -y install qt58base qt58webengine qt58quickcontrols - - source /opt/qt58/bin/qt58-env.sh - +- sudo add-apt-repository ppa:beineri/opt-qt58-trusty -y +- sudo apt-get update -qq +install: +- sudo apt-get -y install qt58base qt58webengine qt58quickcontrols +- source /opt/qt58/bin/qt58-env.sh script: - - qmake PREFIX=/usr - - make -j4 - - sudo make INSTALL_ROOT=appdir install ; sudo chown -R $USER appdir ; find appdir/ - - wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" - - chmod a+x linuxdeployqt*.AppImage - - unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH - - ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmldir=./qml/ -bundle-non-qt-libs - - ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmldir=./qml/ -appimage - - find ./appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq - - curl --upload-file ./FeedTheMonkey*.AppImage https://transfer.sh/FeedTheMonkey-git.$(git rev-parse --short HEAD)-x86_64.AppImage +- qmake PREFIX=/usr +- make -j4 +- sudo make INSTALL_ROOT=appdir install ; sudo chown -R $USER appdir ; find appdir/ +- wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage" +- chmod a+x linuxdeployqt*.AppImage +- unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH +- "./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmldir=./qml/ + -bundle-non-qt-libs" +- "./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmldir=./qml/ + -appimage" +- find ./appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " + -f 2-3 | sort | uniq +- mv FeedTheMonkey*.AppImage FeedTheMonkey.AppImage +deploy: + provider: releases + api_key: + secure: d+hHwOnmeLPVvuue6VDCs2LwLS+BFzJF/BB5iObtkCYBwQ8ybnVzUcgnjJKOt37SHI0T9kLegI+Lq/843ECYiGiDjQg4PvCF69V8ODgHv3v1qiN5oG/eroBXd83a0+xhi4BuJt0SwcV9mcv4uD9bCPhj944rmMLH+3qD4ysgImBmbYSbbLecE9+QAs7bfrCwQRfdCePBORX3FHa/p12NEtln7xv6ZRyku9LdJSzAcdgm4zc95ggTAVC1+aQB6J0q2QzWPlQcOkLx+ZYmOqClhbSMFpIyPXP8UpXjYyvUlTAd0+wH8BGf0O3lpOqACc7IKIbj9d5oPmghVZo55SyW+RR77G+az+IbGJ7iXZsMfQZsMvtB7hNYhNvUUxQrAau7Y/ve+6sMQmvA7aMHV8kDUvnNW/c2r2jAWwk+N8QzGcP/rclDCKeOWZqZABmrzTViXZVAeXh4hJ8r6mbq8iwagBUPCsVYhVuerQt/KIoWxyn6/1GmMfKGi3dA/v3u1qU61vzrz3yLlJBmUAVPxZdVmqfRweh4BXjImxFMFmf5PYm5FnDg1gmw8rWsgii7+IPYw7DjTAHpjYbtXvDwDgG1nRXiRp2TGtPPgKW1/Uk8r/j5vfB5WcEZ7exLUgsPPjny5MGvzjqOxeLvwK1Pg9jFBFXIx7l1tNMJQxQU0r3DmBg= + file: FeedTheMonkey.AppImage + on: + repo: jeena/FeedTheMonkey + skip_cleanup: true + draft: true From ab1306a7b8e5cf96886cb01a7f52cbec8a0f765a Mon Sep 17 00:00:00 2001 From: Jeena Date: Sat, 27 Apr 2019 22:59:34 +0200 Subject: [PATCH 05/14] Update QtWebEngine te 1.8 When running with AppImage and on Ubuntu I'm getting the error that QtWebEngine 1.7 is not installed, it seems that per default 1.8 is installed nowadays. --- qml/Content.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qml/Content.qml b/qml/Content.qml index 73885f1..9ace9c4 100644 --- a/qml/Content.qml +++ b/qml/Content.qml @@ -17,7 +17,7 @@ * along with FeedTheMonkey. If not, see . */ -import QtWebEngine 1.7 +import QtWebEngine 1.8 import QtQuick 2.0 import QtQuick.Controls 1.3 import QtQuick.Layouts 1.1 From b62dc791fbf563a0f95a276e45350c0cc5c3502d Mon Sep 17 00:00:00 2001 From: Jeena Date: Sat, 27 Apr 2019 22:59:34 +0200 Subject: [PATCH 06/14] Update QtWebEngine te 1.8 When running with AppImage and on Ubuntu I'm getting the error that QtWebEngine 1.7 is not installed, it seems that per default 1.8 is installed nowadays. --- qml/Content.qml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qml/Content.qml b/qml/Content.qml index 73885f1..9ace9c4 100644 --- a/qml/Content.qml +++ b/qml/Content.qml @@ -17,7 +17,7 @@ * along with FeedTheMonkey. If not, see . */ -import QtWebEngine 1.7 +import QtWebEngine 1.8 import QtQuick 2.0 import QtQuick.Controls 1.3 import QtQuick.Layouts 1.1 From 3a0b18e51ef681d0d96107e00ce9abf1b23dba2c Mon Sep 17 00:00:00 2001 From: Jeena Date: Fri, 12 Jun 2020 23:17:06 +0200 Subject: [PATCH 07/14] Replace image URLs My old jabs.nu domain doesn't exist anymore, I moved the screenshot and the logo file included in the readme to a different server. The screenshot has been renewt to the dark mode one. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 8819b8e..155358a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # FeedTheMonkey -Icon +Icon FeedTheMonkey is a desktop client for [TinyTinyRSS](http://tt-rss.org). That means that it doesn't work as a standalone feed reader but only as a client for the TinyTinyRSS API @@ -43,7 +43,7 @@ the use on a desktop computer but I'd like to see it on a mobile device too. ## Screenshot -![Feed the Monkey screenshot](http://jabs.nu/feedthemonkey/screenshot.png) +![Feed the Monkey screenshot](http://jeena.net/feedthemonkey/feedthemonkey-dark.png) ## License From cb649951ae56359b61de170df20981bed1f970ad Mon Sep 17 00:00:00 2001 From: Jeena Date: Fri, 12 Jun 2020 23:34:58 +0200 Subject: [PATCH 08/14] Make sidebar dissapear if thiner than 200px Often I wanted to make the sidebar dissapear because I don't need it. This patch let's you make it dissapear when it's thinner than 200px and reappear if it's wider. --- qml/Sidebar.qml | 9 +++++++-- qml/main.qml | 1 - 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/qml/Sidebar.qml b/qml/Sidebar.qml index bcb70ee..ee7d762 100644 --- a/qml/Sidebar.qml +++ b/qml/Sidebar.qml @@ -48,6 +48,13 @@ ScrollView { } } + onWidthChanged: { + // Hide sidebar if smaller than 200px wide + if(width < 200) { + width = 0; + } + } + ListView { id: listView @@ -85,8 +92,6 @@ ScrollView { } item.content.post = server.posts[currentIndex] - //content.flickableItem.contentY = 0 - previousPost = item.content.post } } diff --git a/qml/main.qml b/qml/main.qml index a5fcbcb..1f6409f 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -184,7 +184,6 @@ ApplicationWindow { content: content server: server - Layout.minimumWidth: 200 implicitWidth: 300 textFontSize: app.textFontSize nightmode: app.nightmode From ea85197874e7be95b80b395ee7cbbe0fa8ed6db0 Mon Sep 17 00:00:00 2001 From: Jeena Date: Fri, 12 Jun 2020 23:37:00 +0200 Subject: [PATCH 09/14] Tweak dark mode and font size to appear closer to Adwaita-dark in GNOME The colors are now closer to the Adwaita-dark mode which I'm using as my primary theme. The header has been redesigned slightly to appear more consistent with other default apps too. --- html/content.css | 31 +++++++++++++------------------ qml/PostListItem.qml | 4 ++-- qml/Sidebar.qml | 14 +++++++++++--- qml/main.qml | 2 +- 4 files changed, 27 insertions(+), 24 deletions(-) diff --git a/html/content.css b/html/content.css index afcb4e4..2b1d0b3 100644 --- a/html/content.css +++ b/html/content.css @@ -25,14 +25,12 @@ html, body { body { background: #eee; font-family: sans-serif; - padding: 2em; - font-weight: lighter; word-wrap: break-word; } .nightmode { - background: #111; - color: #aaa; + background: #353535; + color: #ddd; } .nightmode::-webkit-scrollbar { @@ -51,32 +49,28 @@ body { } h1 { - font-weight: lighter; font-size: 1.4em; margin: 0; padding: 0; } -#date { - border-bottom: 1px solid #aaa; - margin-bottom: 1em; - padding-bottom: 1em; - display: block; -} - -.nightmode #date { - border-bottom-color: #333; -} - .starred:after { content: "*"; } +header { + padding: 2em; + border-bottom: 1px solid #aaa; +} + +.nightmode header { + border-bottom-color: #222; +} + header p { - color: #aaa; + color: #666; margin: 0; padding: 0; - font-size: 0.8em; } .nightmode header p { @@ -90,6 +84,7 @@ a { article { line-height: 1.6; + margin: 2em; } article a { diff --git a/qml/PostListItem.qml b/qml/PostListItem.qml index e0c3d20..63bf813 100644 --- a/qml/PostListItem.qml +++ b/qml/PostListItem.qml @@ -33,7 +33,7 @@ Item { } id: item - height: d.height + t.height + e.height + 20 + height: d.height + t.height + e.height + 2 Item { anchors.fill: parent @@ -81,7 +81,7 @@ Item { Label { id: t text: title - color: nightmode ? (read ? "#555" : "#aaa") : (read ? "gray" : "black") + color: nightmode ? (read ? "#888" : "#ddd") : (read ? "gray" : "black") font.pointSize: textFontSize textFormat: Text.PlainText wrapMode: Text.WrapAnywhere diff --git a/qml/Sidebar.qml b/qml/Sidebar.qml index ee7d762..84de4cb 100644 --- a/qml/Sidebar.qml +++ b/qml/Sidebar.qml @@ -55,6 +55,14 @@ ScrollView { } } + Rectangle { + width: 1 + color: app.nightmode ? "#111" : "lightgray" + anchors.right: parent.right + anchors.top: parent.top + height: parent.height + } + ListView { id: listView @@ -74,12 +82,12 @@ ScrollView { highlightFollowsCurrentItem: false highlight: Component { Rectangle { - width: listView.currentItem.width + width: listView.currentItem.width -1 height: listView.currentItem.height - color: nightmode ? "#444" : "lightblue" - opacity: 0.5 + color: nightmode ? "#15539e" : "lightblue" y: listView.currentItem.y } + } onCurrentItemChanged: { diff --git a/qml/main.qml b/qml/main.qml index 1f6409f..ca06500 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -29,7 +29,7 @@ ApplicationWindow { id: app title: "FeedTheMonkey" visible: true - color: nightmode ? "#111" : "#eee" + color: nightmode ? "#2d2d2d" : "#eee" minimumWidth: 480 minimumHeight: 320 From 3e0b62b109f2b376400a68f4c25d60361b81fe7a Mon Sep 17 00:00:00 2001 From: Jeena Date: Fri, 12 Jun 2020 23:42:42 +0200 Subject: [PATCH 10/14] Remove opening in speaker: URL scheme Back in the day on OSX this has been used to pass the current item to a application called Speaker which would read the content. That application is not available anymore so we can remove the functionality from FeedTheMonkey. --- qml/TheMenuBar.qml | 2 +- qml/main.qml | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/qml/TheMenuBar.qml b/qml/TheMenuBar.qml index ae2eb70..94a07dc 100644 --- a/qml/TheMenuBar.qml +++ b/qml/TheMenuBar.qml @@ -132,7 +132,7 @@ MenuBar { title: qsTr("Help") MenuItem { text: qsTr("About") - onTriggered: Qt.openUrlExternally("http://jabs.nu/feedthemonkey"); + onTriggered: Qt.openUrlExternally("http://jeena.net/feedthemonkey/index.html"); } } diff --git a/qml/main.qml b/qml/main.qml index ca06500..0b6074b 100644 --- a/qml/main.qml +++ b/qml/main.qml @@ -159,10 +159,6 @@ ApplicationWindow { case Qt.Key_Return: Qt.openUrlExternally(content.post.link) break - case Qt.Key_S: { - console.log(Qt.openUrlExternally("speaker:"+ removeHTML(content.post.content))) - break - } default: break } From f65d9b6231c7444ab7226b00f6a677f5907df552 Mon Sep 17 00:00:00 2001 From: Jeena Date: Fri, 12 Jun 2020 23:51:38 +0200 Subject: [PATCH 11/14] Make Ctrl+W close the application Many other applications have a Ctrl+W to close a window, adding this as a second option to close the application because it only has one window. --- qml/TheMenuBar.qml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/qml/TheMenuBar.qml b/qml/TheMenuBar.qml index 94a07dc..34c0310 100644 --- a/qml/TheMenuBar.qml +++ b/qml/TheMenuBar.qml @@ -35,6 +35,11 @@ MenuBar { Menu { visible: menuBar.visible title: qsTr("File") + MenuItem { + text: qsTr("Close &Window") + shortcut: "Ctrl+W" + onTriggered: Qt.quit() + } MenuItem { text: qsTr("Exit") shortcut: "Ctrl+Q" From 0bb19eae060ca9abe6b10aef46637db0dd3d515e Mon Sep 17 00:00:00 2001 From: Jeena Date: Sat, 13 Jun 2020 00:08:20 +0200 Subject: [PATCH 12/14] Remove duplicate import --- qml/Content.qml | 1 - 1 file changed, 1 deletion(-) diff --git a/qml/Content.qml b/qml/Content.qml index 9ace9c4..8d3faab 100644 --- a/qml/Content.qml +++ b/qml/Content.qml @@ -22,7 +22,6 @@ import QtQuick 2.0 import QtQuick.Controls 1.3 import QtQuick.Layouts 1.1 import QtQuick.Controls.Styles 1.3 -import QtQuick.Controls 1.3 import TTRSS 1.0 Item { From 4b804873a63aa1c89aeba80e0dd3db3dbb467bd7 Mon Sep 17 00:00:00 2001 From: Jeena Date: Sat, 13 Jun 2020 00:20:46 +0200 Subject: [PATCH 13/14] Fix open in browser on enter This patch fixes the opening of the current item in a browser which was broken for a long time. --- html/content.html | 6 ++++-- qml/Content.qml | 9 +++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/html/content.html b/html/content.html index 9a1c3ec..87d53aa 100644 --- a/html/content.html +++ b/html/content.html @@ -81,11 +81,13 @@ function checkKey(e) { e = e || window.event; + if (e.keyCode === 37) { window.location.href = "feedthemonkey:previous"; - } - else if (e.keyCode === 39) { + } else if (e.keyCode === 39) { window.location.href = "feedthemonkey:next"; + } else if(e.keyCode == 13) { + window.location.href = "feedthemonkey:open"; } } diff --git a/qml/Content.qml b/qml/Content.qml index 8d3faab..07440be 100644 --- a/qml/Content.qml +++ b/qml/Content.qml @@ -86,13 +86,14 @@ Item { onNavigationRequested: { if (request.url == "feedthemonkey:previous") { - // This is commented out because for some reason this reloads the page forever. - // This will show the error that the feedthemonkey:previous location is not supported - //request.action = WebEngineNavigationRequest.IgnoreRequest; + request.action = WebEngineView.IgnoreRequest; app.showPreviousPost(); } else if (request.url == "feedthemonkey:next") { - //request.action = WebEngineNavigationRequest.IgnoreRequest; + request.action = WebEngineView.IgnoreRequest; app.showNextPost(); + } else if (request.url == "feedthemonkey:open") { + request.action = WebEngineView.IgnoreRequest; + Qt.openUrlExternally(post.link) } else if (request.navigationType !== WebEngineNavigationRequest.LinkClickedNavigation) { request.action = WebEngineView.AcceptRequest; } else { From 3f492b6160930220cc7d6ba83c394f39a4a032e8 Mon Sep 17 00:00:00 2001 From: Jeena Date: Mon, 24 May 2021 22:10:23 +0200 Subject: [PATCH 14/14] Fix problem with HDPI screens On high dpi screens the thml was shown way too small, this let's it scale properly. --- src/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main.cpp b/src/main.cpp index 48475bb..95f351e 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -31,6 +31,7 @@ int main(int argc, char *argv[]) { + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QGuiApplication app(argc, argv); app.setOrganizationName("Jeena"); app.setOrganizationDomain("jeena.net");