Compare commits

...
Sign in to create a new pull request.

10 commits

Author SHA1 Message Date
3f492b6160 Fix problem with HDPI screens
On high dpi screens the thml was shown way too small, this let's it
scale properly.
2021-05-24 22:10:23 +02:00
4b804873a6 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.
2020-06-13 00:20:46 +02:00
0bb19eae06 Remove duplicate import 2020-06-13 00:08:20 +02:00
f65d9b6231 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.
2020-06-12 23:51:38 +02:00
3e0b62b109 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.
2020-06-12 23:42:42 +02:00
ea85197874 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.
2020-06-12 23:37:00 +02:00
cb649951ae 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.
2020-06-12 23:34:58 +02:00
3a0b18e51e 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.
2020-06-12 23:22:00 +02:00
ab1306a7b8 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.
2019-04-27 23:01:07 +02:00
0c5825afb8 Add deploy step
This step deploys the AppImage to GitHub so that I can create
a release which contains the AppImage within it.
2019-03-31 10:25:10 +02:00
10 changed files with 80 additions and 60 deletions

View file

@ -2,23 +2,32 @@ language: cpp
compiler: gcc compiler: gcc
sudo: require sudo: require
dist: trusty dist: trusty
before_install: before_install:
- sudo add-apt-repository ppa:beineri/opt-qt58-trusty -y - sudo add-apt-repository ppa:beineri/opt-qt58-trusty -y
- sudo apt-get update -qq - sudo apt-get update -qq
install: install:
- sudo apt-get -y install qt58base qt58webengine qt58quickcontrols - sudo apt-get -y install qt58base qt58webengine qt58quickcontrols
- source /opt/qt58/bin/qt58-env.sh - source /opt/qt58/bin/qt58-env.sh
script: script:
- qmake PREFIX=/usr - qmake PREFIX=/usr
- make -j4 - make -j4
- sudo make INSTALL_ROOT=appdir install ; sudo chown -R $USER appdir ; find appdir/ - 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" - wget -c "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
- chmod a+x linuxdeployqt*.AppImage - chmod a+x linuxdeployqt*.AppImage
- unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH - 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/
- ./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmldir=./qml/ -appimage -bundle-non-qt-libs"
- find ./appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq - "./linuxdeployqt*.AppImage ./appdir/usr/share/applications/*.desktop -qmldir=./qml/
- curl --upload-file ./FeedTheMonkey*.AppImage https://transfer.sh/FeedTheMonkey-git.$(git rev-parse --short HEAD)-x86_64.AppImage -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

View file

@ -1,6 +1,6 @@
# FeedTheMonkey # FeedTheMonkey
<img align=right src="http://jabs.nu/feedthemonkey/feedthemonkey-icon.png" width='256' alt='Icon'> <img align=right src="http://jeena.net/feedthemonkey/feedthemonkey-icon.png" width='256' alt='Icon'>
FeedTheMonkey is a desktop client for [TinyTinyRSS](http://tt-rss.org). That means that 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 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 ## Screenshot
![Feed the Monkey screenshot](http://jabs.nu/feedthemonkey/screenshot.png) ![Feed the Monkey screenshot](http://jeena.net/feedthemonkey/feedthemonkey-dark.png)
## License ## License

View file

@ -25,14 +25,12 @@ html, body {
body { body {
background: #eee; background: #eee;
font-family: sans-serif; font-family: sans-serif;
padding: 2em;
font-weight: lighter;
word-wrap: break-word; word-wrap: break-word;
} }
.nightmode { .nightmode {
background: #111; background: #353535;
color: #aaa; color: #ddd;
} }
.nightmode::-webkit-scrollbar { .nightmode::-webkit-scrollbar {
@ -51,32 +49,28 @@ body {
} }
h1 { h1 {
font-weight: lighter;
font-size: 1.4em; font-size: 1.4em;
margin: 0; margin: 0;
padding: 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 { .starred:after {
content: "*"; content: "*";
} }
header {
padding: 2em;
border-bottom: 1px solid #aaa;
}
.nightmode header {
border-bottom-color: #222;
}
header p { header p {
color: #aaa; color: #666;
margin: 0; margin: 0;
padding: 0; padding: 0;
font-size: 0.8em;
} }
.nightmode header p { .nightmode header p {
@ -90,6 +84,7 @@ a {
article { article {
line-height: 1.6; line-height: 1.6;
margin: 2em;
} }
article a { article a {

View file

@ -81,11 +81,13 @@
function checkKey(e) { function checkKey(e) {
e = e || window.event; e = e || window.event;
if (e.keyCode === 37) { if (e.keyCode === 37) {
window.location.href = "feedthemonkey:previous"; window.location.href = "feedthemonkey:previous";
} } else if (e.keyCode === 39) {
else if (e.keyCode === 39) {
window.location.href = "feedthemonkey:next"; window.location.href = "feedthemonkey:next";
} else if(e.keyCode == 13) {
window.location.href = "feedthemonkey:open";
} }
} }

View file

@ -17,12 +17,11 @@
* along with FeedTheMonkey. If not, see <http://www.gnu.org/licenses/>. * along with FeedTheMonkey. If not, see <http://www.gnu.org/licenses/>.
*/ */
import QtWebEngine 1.7 import QtWebEngine 1.8
import QtQuick 2.0 import QtQuick 2.0
import QtQuick.Controls 1.3 import QtQuick.Controls 1.3
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.1
import QtQuick.Controls.Styles 1.3 import QtQuick.Controls.Styles 1.3
import QtQuick.Controls 1.3
import TTRSS 1.0 import TTRSS 1.0
Item { Item {
@ -87,13 +86,14 @@ Item {
onNavigationRequested: { onNavigationRequested: {
if (request.url == "feedthemonkey:previous") { if (request.url == "feedthemonkey:previous") {
// This is commented out because for some reason this reloads the page forever. request.action = WebEngineView.IgnoreRequest;
// This will show the error that the feedthemonkey:previous location is not supported
//request.action = WebEngineNavigationRequest.IgnoreRequest;
app.showPreviousPost(); app.showPreviousPost();
} else if (request.url == "feedthemonkey:next") { } else if (request.url == "feedthemonkey:next") {
//request.action = WebEngineNavigationRequest.IgnoreRequest; request.action = WebEngineView.IgnoreRequest;
app.showNextPost(); app.showNextPost();
} else if (request.url == "feedthemonkey:open") {
request.action = WebEngineView.IgnoreRequest;
Qt.openUrlExternally(post.link)
} else if (request.navigationType !== WebEngineNavigationRequest.LinkClickedNavigation) { } else if (request.navigationType !== WebEngineNavigationRequest.LinkClickedNavigation) {
request.action = WebEngineView.AcceptRequest; request.action = WebEngineView.AcceptRequest;
} else { } else {

View file

@ -33,7 +33,7 @@ Item {
} }
id: item id: item
height: d.height + t.height + e.height + 20 height: d.height + t.height + e.height + 2
Item { Item {
anchors.fill: parent anchors.fill: parent
@ -81,7 +81,7 @@ Item {
Label { Label {
id: t id: t
text: title text: title
color: nightmode ? (read ? "#555" : "#aaa") : (read ? "gray" : "black") color: nightmode ? (read ? "#888" : "#ddd") : (read ? "gray" : "black")
font.pointSize: textFontSize font.pointSize: textFontSize
textFormat: Text.PlainText textFormat: Text.PlainText
wrapMode: Text.WrapAnywhere wrapMode: Text.WrapAnywhere

View file

@ -48,6 +48,21 @@ ScrollView {
} }
} }
onWidthChanged: {
// Hide sidebar if smaller than 200px wide
if(width < 200) {
width = 0;
}
}
Rectangle {
width: 1
color: app.nightmode ? "#111" : "lightgray"
anchors.right: parent.right
anchors.top: parent.top
height: parent.height
}
ListView { ListView {
id: listView id: listView
@ -67,12 +82,12 @@ ScrollView {
highlightFollowsCurrentItem: false highlightFollowsCurrentItem: false
highlight: Component { highlight: Component {
Rectangle { Rectangle {
width: listView.currentItem.width width: listView.currentItem.width -1
height: listView.currentItem.height height: listView.currentItem.height
color: nightmode ? "#444" : "lightblue" color: nightmode ? "#15539e" : "lightblue"
opacity: 0.5
y: listView.currentItem.y y: listView.currentItem.y
} }
} }
onCurrentItemChanged: { onCurrentItemChanged: {
@ -85,8 +100,6 @@ ScrollView {
} }
item.content.post = server.posts[currentIndex] item.content.post = server.posts[currentIndex]
//content.flickableItem.contentY = 0
previousPost = item.content.post previousPost = item.content.post
} }
} }

View file

@ -35,6 +35,11 @@ MenuBar {
Menu { Menu {
visible: menuBar.visible visible: menuBar.visible
title: qsTr("File") title: qsTr("File")
MenuItem {
text: qsTr("Close &Window")
shortcut: "Ctrl+W"
onTriggered: Qt.quit()
}
MenuItem { MenuItem {
text: qsTr("Exit") text: qsTr("Exit")
shortcut: "Ctrl+Q" shortcut: "Ctrl+Q"
@ -132,7 +137,7 @@ MenuBar {
title: qsTr("Help") title: qsTr("Help")
MenuItem { MenuItem {
text: qsTr("About") text: qsTr("About")
onTriggered: Qt.openUrlExternally("http://jabs.nu/feedthemonkey"); onTriggered: Qt.openUrlExternally("http://jeena.net/feedthemonkey/index.html");
} }
} }

View file

@ -29,7 +29,7 @@ ApplicationWindow {
id: app id: app
title: "FeedTheMonkey" title: "FeedTheMonkey"
visible: true visible: true
color: nightmode ? "#111" : "#eee" color: nightmode ? "#2d2d2d" : "#eee"
minimumWidth: 480 minimumWidth: 480
minimumHeight: 320 minimumHeight: 320
@ -159,10 +159,6 @@ ApplicationWindow {
case Qt.Key_Return: case Qt.Key_Return:
Qt.openUrlExternally(content.post.link) Qt.openUrlExternally(content.post.link)
break break
case Qt.Key_S: {
console.log(Qt.openUrlExternally("speaker:"+ removeHTML(content.post.content)))
break
}
default: default:
break break
} }
@ -184,7 +180,6 @@ ApplicationWindow {
content: content content: content
server: server server: server
Layout.minimumWidth: 200
implicitWidth: 300 implicitWidth: 300
textFontSize: app.textFontSize textFontSize: app.textFontSize
nightmode: app.nightmode nightmode: app.nightmode

View file

@ -31,6 +31,7 @@
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv); QGuiApplication app(argc, argv);
app.setOrganizationName("Jeena"); app.setOrganizationName("Jeena");
app.setOrganizationDomain("jeena.net"); app.setOrganizationDomain("jeena.net");