← Back to team overview

ubuntu-touch-coreapps-reviewers team mailing list archive

[Merge] lp:~mrqtros/ubuntu-rssreader-app/ubuntu-rssreader-app-night-mode-reworked into lp:ubuntu-rssreader-app

 

Roman Shchekin has proposed merging lp:~mrqtros/ubuntu-rssreader-app/ubuntu-rssreader-app-night-mode-reworked into lp:ubuntu-rssreader-app.

Commit message:
Cleanup in Shorts:
 * "night mode" switcher in main menu.
 * icons from theme instead of predefined in resources.
 * options reworked.

Requested reviews:
  Ubuntu Shorts Developers (ubuntu-rssreader-dev)

For more details, see:
https://code.launchpad.net/~mrqtros/ubuntu-rssreader-app/ubuntu-rssreader-app-night-mode-reworked/+merge/274043

Cleanup in Shorts:
 * "night mode" switcher in main menu.
 * icons from theme instead of predefined in resources.
 * options reworked.
-- 
Your team Ubuntu Shorts Developers is requested to review the proposed merge of lp:~mrqtros/ubuntu-rssreader-app/ubuntu-rssreader-app-night-mode-reworked into lp:ubuntu-rssreader-app.
=== modified file 'shorts/qml/components/ArticleViewItem.qml'
--- shorts/qml/components/ArticleViewItem.qml	2015-09-16 08:52:25 +0000
+++ shorts/qml/components/ArticleViewItem.qml	2015-10-10 12:39:16 +0000
@@ -64,7 +64,7 @@
     ListView {
         id: rssListview
 
-        property int contentFontSize: optionsKeeper.fontSize()
+        property int contentFontSize: optionsKeeper.fontSize
 
         width: parent.width
         anchors {
@@ -78,7 +78,6 @@
         delegate: xmlDelegate
         snapMode: ListView.SnapOneItem
         cacheBuffer: 90 // value in pixels, for what?
-        // boundsBehavior: Flickable.StopAtBounds
         orientation: ListView.Horizontal
         contentHeight: parent.width * count
         highlightFollowsCurrentItem: true
@@ -157,14 +156,14 @@
                     anchors.horizontalCenter: parent.horizontalCenter
                     spacing: units.gu(1)
 
-                    Image {
+                    Icon {
                         id: imgFavourite
-                        anchors.verticalCenter: labelTime.verticalCenter
-                        fillMode: Image.PreserveAspectCrop
-                        source: Qt.resolvedUrl("/img/qml/icons/favorite-selected.svg")
-                        sourceSize.height: modelItem == null ? 0 : (modelItem.favourite == "1" ? units.gu(2) : 0)
+                        anchors {
+                            top: parent.top
+                            bottom: parent.bottom
+                        }
+                        name: "favorite-selected"
                         visible: modelItem == null ? false : (modelItem.favourite == "1")
-                        smooth: true
                     }
 
                     Label {

=== modified file 'shorts/qml/components/ListModeItem.qml'
--- shorts/qml/components/ListModeItem.qml	2015-07-19 14:29:20 +0000
+++ shorts/qml/components/ListModeItem.qml	2015-10-10 12:39:16 +0000
@@ -126,12 +126,13 @@
                         height: labelTime.paintedHeight
                         spacing: units.gu(0.5)
 
-                        Image {
+                        Icon {
                             id: imgFavourite
-                            anchors.verticalCenter: labelTime.verticalCenter
-                            fillMode: Image.PreserveAspectCrop
-                            source: Qt.resolvedUrl("/img/qml/icons/favorite-selected.svg")
-                            sourceSize.height: model.favourite == "1" ? units.gu(1.5) : 0
+                            anchors {
+                                top: parent.top
+                                bottom: parent.bottom
+                            }
+                            name: "favorite-selected"
                             visible: model.favourite == "1"
                         }
 

=== modified file 'shorts/qml/components/OptionsKeeper.qml'
--- shorts/qml/components/OptionsKeeper.qml	2015-07-04 08:38:18 +0000
+++ shorts/qml/components/OptionsKeeper.qml	2015-10-10 12:39:16 +0000
@@ -2,15 +2,25 @@
 import U1db 1.0 as U1db
 
 /* New interface for options.
- * Currently it is just facade on DB logic.
+ * Currently it is just facade on U1DB.
  */
 Item {
 
-    signal fontSizeChanged(int value)
-    signal useDarkThemeChanged(bool value)
-    signal useListModeChanged(bool value)
-
-    function fontSize() {
+    property int fontSize
+    property bool useDarkTheme
+    property bool useListMode
+
+    Component.onCompleted: {
+        fontSize = getFontSize()
+        useDarkTheme = getUseDarkTheme()
+        useListMode = getUseListMode()
+    }
+
+    onFontSizeChanged: setFontSize(fontSize)
+    onUseDarkThemeChanged: setUseDarkTheme(useDarkTheme)
+    onUseListModeChanged: setUseListMode(useListMode)
+
+    function getFontSize() {
         return settingsDocument.contents.fontSize
     }
 
@@ -18,10 +28,9 @@
         var cont = settingsDocument.contents
         cont.fontSize = value
         settingsDocument.contents = cont
-        fontSizeChanged(value)
     }
 
-    function useDarkTheme() {
+    function getUseDarkTheme() {
         return settingsDocument.contents.useDarkTheme
     }
 
@@ -29,10 +38,9 @@
         var cont = settingsDocument.contents
         cont.useDarkTheme = value
         settingsDocument.contents = cont
-        useDarkThemeChanged(value)
     }
 
-    function useListMode() {
+    function getUseListMode() {
         return settingsDocument.contents.useListMode
     }
 
@@ -40,7 +48,6 @@
         var cont = settingsDocument.contents
         cont.useListMode = value
         settingsDocument.contents = cont
-        useListModeChanged(value)
     }
 
     function dbVersion() {

=== modified file 'shorts/qml/components/OrganicGrid.qml'
--- shorts/qml/components/OrganicGrid.qml	2015-07-04 08:38:18 +0000
+++ shorts/qml/components/OrganicGrid.qml	2015-10-10 12:39:16 +0000
@@ -51,8 +51,10 @@
         var componentsPath = "../delegates/" + "Article"
         var alignNames = ["TextA", "TextB", "OneImgA", "FullImg"]
         for (var i = 0; i < alignNames.length; i++) {
-            var componentName = componentsPath + alignNames[i] + ".qml";
-            delegateComponents[i] = Qt.createComponent(componentName);
+            var componentName = componentsPath + alignNames[i] + ".qml"
+            delegateComponents[i] = Qt.createComponent(componentName)
+            if (delegateComponents[i].status == Component.Error)
+                console.log("prepareComponents", delegateComponents[i].errorString())
         }
     }
 

=== modified file 'shorts/qml/components/ReadingOptions.qml'
--- shorts/qml/components/ReadingOptions.qml	2015-09-16 08:52:25 +0000
+++ shorts/qml/components/ReadingOptions.qml	2015-10-10 12:39:16 +0000
@@ -16,8 +16,7 @@
     id: readingOptionsPopover
 
     Component.onCompleted: {
-        fontSizeSlider.value = optionsKeeper.fontSize()
-        buttonRow.updateButtonsState()
+        fontSizeSlider.value = optionsKeeper.fontSize
     }
 
     Column {
@@ -39,25 +38,15 @@
                 Button {
                     text: i18n.tr("Dark")
                     width: units.gu(14)
-                    gradient: buttonRow.useDark ? UbuntuColors.orangeGradient : UbuntuColors.greyGradient
-                    onClicked: {
-                        optionsKeeper.setUseDarkTheme(true)
-                        buttonRow.updateButtonsState()
-                    }
+                    gradient: optionsKeeper.useDarkTheme ? UbuntuColors.orangeGradient : UbuntuColors.greyGradient
+                    onClicked: optionsKeeper.useDarkTheme = true
                 }
 
                 Button {
                     text: i18n.tr("Light")
                     width: units.gu(14)
-                    gradient: buttonRow.useDark ? UbuntuColors.greyGradient : UbuntuColors.orangeGradient
-                    onClicked: {
-                        optionsKeeper.setUseDarkTheme(false)
-                        buttonRow.updateButtonsState()
-                    }
-                }
-
-                function updateButtonsState() {
-                    useDark = optionsKeeper.useDarkTheme()
+                    gradient: optionsKeeper.useDarkTheme ? UbuntuColors.greyGradient : UbuntuColors.orangeGradient
+                    onClicked: optionsKeeper.useDarkTheme = false
                 }
             }
         }
@@ -99,7 +88,7 @@
                         res = 1
                     else res = 2
 
-                    optionsKeeper.setFontSize(res)
+                    optionsKeeper.fontSize = res
                 }
 
                 function formatValue(v) {

=== modified file 'shorts/qml/delegates/ArticleFullImg.qml'
--- shorts/qml/delegates/ArticleFullImg.qml	2015-09-16 08:52:25 +0000
+++ shorts/qml/delegates/ArticleFullImg.qml	2015-10-10 12:39:16 +0000
@@ -81,12 +81,13 @@
             height: labelTime.height
             spacing: units.gu(0.5)
 
-            Image {
+            Icon {
                 id: imgFavourite
-                anchors.verticalCenter: labelTime.verticalCenter
-                fillMode: Image.PreserveAspectCrop
-                source: Qt.resolvedUrl("/img/qml/icons/favorite-selected.svg")
-                sourceSize.height: invalid ? 0 : (modelItem.favourite == "1" ? units.gu(1.5) : 0)
+                anchors {
+                    top: parent.top
+                    bottom: parent.bottom
+                }
+                name: "favorite-selected"
                 visible: invalid ? false : (modelItem.favourite == "1")
             }
 

=== modified file 'shorts/qml/delegates/ArticleOneImgA.qml'
--- shorts/qml/delegates/ArticleOneImgA.qml	2015-07-19 14:29:20 +0000
+++ shorts/qml/delegates/ArticleOneImgA.qml	2015-10-10 12:39:16 +0000
@@ -79,12 +79,13 @@
             height: labelTime.paintedHeight
             spacing: units.gu(0.5)
 
-            Image {
+            Icon {
                 id: imgFavourite
-                anchors.verticalCenter: labelTime.verticalCenter
-                fillMode: Image.PreserveAspectCrop
-                source: Qt.resolvedUrl("/img/qml/icons/favorite-selected.svg")
-                sourceSize.height: invalid ? 0 : (modelItem.favourite == "1" ? units.gu(1.5) : 0)
+                anchors {
+                    top: parent.top
+                    bottom: parent.bottom
+                }
+                name: "favorite-selected"
                 visible: invalid ? false : (modelItem.favourite == "1")
             }
 

=== modified file 'shorts/qml/delegates/ArticleTextA.qml'
--- shorts/qml/delegates/ArticleTextA.qml	2015-07-19 14:29:20 +0000
+++ shorts/qml/delegates/ArticleTextA.qml	2015-10-10 12:39:16 +0000
@@ -55,12 +55,13 @@
             height: labelTime.paintedHeight
             spacing: units.gu(0.5)
 
-            Image {
+            Icon {
                 id: imgFavourite
-                anchors.verticalCenter: labelTime.verticalCenter
-                fillMode: Image.PreserveAspectCrop
-                source: Qt.resolvedUrl("/img/qml/icons/favorite-selected.svg")
-                sourceSize.height: invalid ? 0 : (modelItem.favourite == "1" ? units.gu(1.5) : 0)
+                anchors {
+                    top: parent.top
+                    bottom: parent.bottom
+                }
+                name: "favorite-selected"
                 visible: invalid ? false : (modelItem.favourite == "1")
             }
 

=== modified file 'shorts/qml/delegates/ArticleTextB.qml'
--- shorts/qml/delegates/ArticleTextB.qml	2015-07-19 14:29:20 +0000
+++ shorts/qml/delegates/ArticleTextB.qml	2015-10-10 12:39:16 +0000
@@ -51,12 +51,13 @@
             height: labelTime.paintedHeight
             spacing: units.gu(0.5)
 
-            Image {
+            Icon {
                 id: imgFavourite
-                anchors.verticalCenter: labelTime.verticalCenter
-                fillMode: Image.PreserveAspectCrop
-                source: Qt.resolvedUrl("/img/qml/icons/favorite-selected.svg")
-                sourceSize.height: invalid ? 0 : (modelItem.favourite == "1" ? units.gu(1.5) : 0)
+                anchors {
+                    top: parent.top
+                    bottom: parent.bottom
+                }
+                name: "favorite-selected"
                 visible: invalid ? false : (modelItem.favourite == "1")
             }
 

=== modified file 'shorts/qml/pages/AppendFeedPage.qml'
--- shorts/qml/pages/AppendFeedPage.qml	2015-07-19 14:29:20 +0000
+++ shorts/qml/pages/AppendFeedPage.qml	2015-10-10 12:39:16 +0000
@@ -141,13 +141,11 @@
             anchors {
                 horizontalCenter: parent.horizontalCenter
             }
-            primaryItem: Image {
-                height: parent.height*0.5
+            primaryItem: Icon {
+                height: parent.height * 0.5
                 width: height
                 anchors.verticalCenter: parent.verticalCenter
-                //                anchors.verticalCenterOffset: -units.gu(0.2)
-                source: Qt.resolvedUrl("/img/qml/icons/find.svg")
-                smooth: true
+                name: "search"
 
                 MouseArea {
                     anchors.fill: parent

=== modified file 'shorts/qml/pages/ArticleViewPage.qml'
--- shorts/qml/pages/ArticleViewPage.qml	2015-09-16 08:52:25 +0000
+++ shorts/qml/pages/ArticleViewPage.qml	2015-10-10 12:39:16 +0000
@@ -44,12 +44,9 @@
     head.actions: [
 
         Action {
-            text:  innerArticleView.modelItem == null ? "" : (innerArticleView.modelItem.favourite == "0" ? i18n.tr("Save") : i18n.tr("Remove"))
-            iconSource: {
-                if (innerArticleView.modelItem == null || innerArticleView.modelItem.favourite == "0")
-                    return Qt.resolvedUrl("/img/qml/icons/favorite-unselected.svg")
-                else return Qt.resolvedUrl("/img/qml/icons/favorite-selected.svg")
-            }
+            text: !innerArticleView.modelItem ? "" : (innerArticleView.modelItem.favourite == "0" ? i18n.tr("Save") : i18n.tr("Remove"))
+            iconName: (!innerArticleView.modelItem || innerArticleView.modelItem.favourite == "0") ?
+                          "favorite-unselected" : "favorite-selected"
             onTriggered: {
                 var fav = (innerArticleView.modelItem.favourite == "0" ? "1" : "0")
                 var dbResult = DB.updateArticleFavourite(innerArticleView.modelItem.id, fav)
@@ -61,7 +58,7 @@
 
         Action {
             text:  i18n.tr("Options")
-            iconSource: "/img/qml/icons/settings.svg"
+            iconName: "settings"
             onTriggered: {
                 PopupUtils.open(readingOptionsPopoverComponent, fakeItem)
             }
@@ -69,7 +66,7 @@
 
         Action {
             text:  i18n.tr("Open site")
-            iconSource: Qt.resolvedUrl("/img/qml/icons/go-to.svg")
+            iconName: "go-to"
             onTriggered: {
                 Qt.openUrlExternally(innerArticleView.modelItem.link)
             }

=== modified file 'shorts/qml/pages/TopicComponent.qml'
--- shorts/qml/pages/TopicComponent.qml	2015-07-21 19:42:29 +0000
+++ shorts/qml/pages/TopicComponent.qml	2015-10-10 12:39:16 +0000
@@ -172,14 +172,13 @@
                 }
             } // Row
 
-            Image {
+            Icon {
                 id: imgArrow
                 anchors {
                     right: parent.right; top: parent.top; bottom: parent.bottom;
                     topMargin: units.gu(1.5); bottomMargin: units.gu(1.5); rightMargin: units.gu(2)
                 }
-                fillMode: Image.PreserveAspectFit
-                source: Qt.resolvedUrl("/img/qml/icons/go-to.svg")
+                name: "go-to"
                 rotation: topicComponent.isExpanded ? 90 : 0
 
                 Behavior on rotation { UbuntuNumberAnimation{} }

=== modified file 'shorts/qml/shorts-app.qml'
--- shorts/qml/shorts-app.qml	2015-09-16 08:52:25 +0000
+++ shorts/qml/shorts-app.qml	2015-10-10 12:39:16 +0000
@@ -118,8 +118,8 @@
         id: pageStack
         objectName: "pageStack"
 
-        property bool isListView: optionsKeeper.useListMode()
-        property var commonHeadActions: [refreshAction, changeModeAction, /*addReadsAction,*/ editTopicsAction]
+        property bool isListView: optionsKeeper.useListMode
+        property var commonHeadActions: [refreshAction, changeModeAction, editTopicsAction, nightModeAction]
 
         anchors.fill: parent
         focus: true
@@ -182,14 +182,13 @@
             id: refreshAction
 
             text:  i18n.tr("Refresh")
-            iconSource: "/img/qml/icons/reload.svg"
+            iconName: "reload"
             onTriggered: refresh()
         }
 
         Action {
             id: changeModeAction
             text:  pageStack.isListView ? i18n.tr("Grid View") : i18n.tr("List view")
-            //iconSource: pageStack.isListView ? Qt.resolvedUrl("/img/qml/icons/view-fullscreen.svg") : Qt.resolvedUrl("/img/qml/icons/view-restore.svg")
             iconName: pageStack.isListView ? "view-grid-symbolic" : "view-list-symbolic"
             onTriggered: {
                 pageStack.isListView = !pageStack.isListView
@@ -216,12 +215,22 @@
             id: editTopicsAction
             objectName:"editTopicsAction"
             text:  i18n.tr("Edit topics")
-            iconSource: Qt.resolvedUrl("/img/qml/icons/edit.svg")
+            iconName: "edit"
             onTriggered: {
                 pageStack.push(topicManagement)
             }
         }
 
+        Action {
+            id: nightModeAction
+            objectName:"nightModeAction"
+            text: optionsKeeper.useDarkTheme ? i18n.tr("Disable night mode") : i18n.tr("Enable night mode")
+            iconName: "night-mode"
+            onTriggered: {
+                optionsKeeper.useDarkTheme = !optionsKeeper.useDarkTheme
+            }
+        }
+
         /* -------------------------- Pages & Tabs ---------------------------- */
 
         BottomEdgeTabs {
@@ -558,5 +567,5 @@
     }
 
     layer.effect: DarkModeShader {}
-    layer.enabled: optionsKeeper.useDarkTheme() && pageStack.currentPage == articlePage
+    layer.enabled: optionsKeeper.useDarkTheme //  && pageStack.currentPage == articlePage
 }


Follow ups