diff --git a/harbour-wallaread.pro b/harbour-wallaread.pro index 4719d38..9a1e39c 100644 --- a/harbour-wallaread.pro +++ b/harbour-wallaread.pro @@ -52,4 +52,6 @@ DISTFILES += \ qml/pages/SettingsPage.qml \ qml/types/Server.qml \ qml/types/ServerSettings.qml \ - rpm/harbour-wallaread.changes + rpm/harbour-wallaread.changes \ + qml/pages/ServerPageShowDialog.qml \ + qml/types/ServerPageShowPreferences.qml diff --git a/qml/pages/ServerPage.qml b/qml/pages/ServerPage.qml index cd3925d..75706ce 100644 --- a/qml/pages/ServerPage.qml +++ b/qml/pages/ServerPage.qml @@ -32,6 +32,7 @@ Page { property int serverId property alias server: server + property alias showPreferences: showPreferences Server { id: server @@ -46,6 +47,10 @@ Page { } } + ServerPageShowPreferences { + id: showPreferences + } + ArticlesModel { id: articlesModel @@ -269,18 +274,14 @@ Page { PullDownMenu { MenuItem { - text: articlesModel.showStarred ? qsTr( "Show unstarred articles" ) : qsTr( "Show only starred articles" ) + text: qsTr( "Show: " ) + showPreferences.getVisibleDescription() onClicked: { - articlesModel.showStarred = !articlesModel.showStarred - serverPage.updateArticlesList() - } - } - - MenuItem { - text: articlesModel.showRead ? qsTr( "Show unread articles" ) : qsTr( "Show read articles" ) - onClicked: { - articlesModel.showRead = !articlesModel.showRead - serverPage.updateArticlesList() + var dlg = pageStack.push( Qt.resolvedUrl( "ServerPageShowDialog.qml" ), { preferences: showPreferences } ) + dlg.accepted.connect( function() { + articlesModel.showStarred = showPreferences.starred + articlesModel.showRead = showPreferences.read + serverPage.updateArticlesList() + } ) } } diff --git a/qml/pages/ServerPageShowDialog.qml b/qml/pages/ServerPageShowDialog.qml new file mode 100644 index 0000000..018f869 --- /dev/null +++ b/qml/pages/ServerPageShowDialog.qml @@ -0,0 +1,67 @@ +/* + * WallaRead - A Wallabag 2+ client for SailfishOS + * © 2017 Grégory Oestreicher <greg@kamago.net> + * + * This file is part of WallaRead. + * + * WallaRead is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * WallaRead is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WallaRead. If not, see <http://www.gnu.org/licenses/>. + * + */ + +import QtQuick 2.0 +import Sailfish.Silica 1.0 + +Dialog { + id: serverShowDialog + allowedOrientations: Orientation.All + canAccept: true + + property variant preferences + + onDone: { + if ( result === DialogResult.Accepted ) { + preferences.read = showReadSwitch.checked + preferences.starred = showStarredSwitch.checked + } + } + + SilicaFlickable { + anchors.fill: parent + contentHeight: column.height + width: parent.width + + Column { + id: column + width: parent.width + + DialogHeader { + acceptText: qsTr( "Filter view" ) + } + + TextSwitch { + id: showReadSwitch + width: parent.width + checked: preferences.read + text: qsTr( "Read articles" ) + } + + TextSwitch { + id: showStarredSwitch + width: parent.width + checked: preferences.starred + text: qsTr( "Starred articles" ) + } + } + } +} diff --git a/qml/types/ServerPageShowPreferences.qml b/qml/types/ServerPageShowPreferences.qml new file mode 100644 index 0000000..39e2153 --- /dev/null +++ b/qml/types/ServerPageShowPreferences.qml @@ -0,0 +1,45 @@ +/* + * WallaRead - A Wallabag 2+ client for SailfishOS + * © 2017 Grégory Oestreicher <greg@kamago.net> + * + * This file is part of WallaRead. + * + * WallaRead is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * WallaRead is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with WallaRead. If not, see <http://www.gnu.org/licenses/>. + * + */ + +import QtQuick 2.0 + +QtObject { + property bool read: false + property bool starred: false + + function getVisibleDescription() { + var ret = "" + + if ( read ) + ret += qsTr( "read" ) + else + ret += qsTr( "unread" ) + + ret += "/" + + if ( starred ) + ret += qsTr( "starred" ) + else + ret += qsTr( "all" ) + + return ret + } +} diff --git a/translations/harbour-wallaread-fr.ts b/translations/harbour-wallaread-fr.ts index 3c9c0dc..45174cb 100644 --- a/translations/harbour-wallaread-fr.ts +++ b/translations/harbour-wallaread-fr.ts @@ -84,6 +84,44 @@ <source>Add article</source> <translation>Ajouter un article</translation> </message> + <message> + <source>Show: </source> + <translation>Afficher : </translation> + </message> +</context> +<context> + <name>ServerPageShowDialog</name> + <message> + <source>Filter view</source> + <translation>Filtrer la liste</translation> + </message> + <message> + <source>Read articles</source> + <translation>Articles lus</translation> + </message> + <message> + <source>Starred articles</source> + <translation>Articles favoris</translation> + </message> +</context> +<context> + <name>ServerPageShowPreferences</name> + <message> + <source>read</source> + <translation>lus</translation> + </message> + <message> + <source>unread</source> + <translation>non lus</translation> + </message> + <message> + <source>starred</source> + <translation>favoris</translation> + </message> + <message> + <source>all</source> + <translation>tous</translation> + </message> </context> <context> <name>ServerSettings</name> diff --git a/translations/harbour-wallaread.ts b/translations/harbour-wallaread.ts index 75a475d..d3555c2 100644 --- a/translations/harbour-wallaread.ts +++ b/translations/harbour-wallaread.ts @@ -84,6 +84,44 @@ <source>Add article</source> <translation type="unfinished"></translation> </message> + <message> + <source>Show: </source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ServerPageShowDialog</name> + <message> + <source>Filter view</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Read articles</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>Starred articles</source> + <translation type="unfinished"></translation> + </message> +</context> +<context> + <name>ServerPageShowPreferences</name> + <message> + <source>read</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>unread</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>starred</source> + <translation type="unfinished"></translation> + </message> + <message> + <source>all</source> + <translation type="unfinished"></translation> + </message> </context> <context> <name>ServerSettings</name>