[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [spacebar] app/package/contents/ui: Initial Kirigami port
From:       Martin Klapetek <mklapetek () kde ! org>
Date:       2016-04-19 4:16:18
Message-ID: E1asN5G-00068M-EH () scm ! kde ! org
[Download RAW message or body]

Git commit fd001f05e39267cf859575e79dc49d29d03b19a3 by Martin Klapetek.
Committed on 19/04/2016 at 04:16.
Pushed by mklapetek into branch 'master'.

Initial Kirigami port

This now works, but still few things are missing as they are unclear in
Kirigami itself

M  +3    -2    app/package/contents/ui/ContactList.qml
M  +19   -7    app/package/contents/ui/ConversationPage.qml
M  +16   -11   app/package/contents/ui/MainPage.qml
M  +5    -6    app/package/contents/ui/NewConversationPage.qml
M  +0    -1    app/package/contents/ui/TextDelegate.qml
M  +10   -8    app/package/contents/ui/main.qml

http://commits.kde.org/spacebar/fd001f05e39267cf859575e79dc49d29d03b19a3

diff --git a/app/package/contents/ui/ContactList.qml \
b/app/package/contents/ui/ContactList.qml index 00ccaf9..85d6785 100644
--- a/app/package/contents/ui/ContactList.qml
+++ b/app/package/contents/ui/ContactList.qml
@@ -26,6 +26,7 @@ import org.kde.kquickcontrolsaddons 2.0 as ExtraComponents
 import org.kde.plasma.core 2.1 as PlasmaCore
 import org.kde.plasma.components 2.0 as PlasmaComponents
 import org.kde.plasma.mobilecomponents 0.2 as MobileComponents
+import org.kde.kirigami 1.0 as Kirigami
 import org.kde.plasma.extras 2.0 as PlasmaExtras
 import org.kde.telepathy 0.1
 
@@ -123,7 +124,7 @@ ListView {
                     Layout.fillHeight: true
                     Layout.fillWidth: true
 
-                    Label {
+                    Kirigami.Label {
                         id: nickLabel
 
                         Layout.fillWidth: true
@@ -132,7 +133,7 @@ ListView {
                         elide: Text.ElideRight
                     }
 
-                    Label {
+                    Kirigami.Label {
                         id: dataLabel
 
                         Layout.fillWidth: true
diff --git a/app/package/contents/ui/ConversationPage.qml \
b/app/package/contents/ui/ConversationPage.qml index ea05b31..9369232 100644
--- a/app/package/contents/ui/ConversationPage.qml
+++ b/app/package/contents/ui/ConversationPage.qml
@@ -22,12 +22,12 @@ import QtQuick.Controls 1.4
 import QtQuick.Layouts 1.1
 import org.kde.plasma.core 2.0 as PlasmaCore
 import org.kde.plasma.components 2.0 as PlasmaComponents
-import org.kde.plasma.mobilecomponents 0.2 as MobileComponents
+import org.kde.kirigami 1.0 as Kirigami
 import org.kde.plasma.extras 2.0 as PlasmaExtras
 // import org.kde.plasma.private.spacebar 1.0
 import org.kde.telepathy 0.1
 
-MobileComponents.Page {
+Kirigami.Page {
     anchors.fill: parent
 
     // This is somewhat a hack, the type should be Conversation
@@ -57,13 +57,13 @@ MobileComponents.Page {
                     source: conversation.presenceIcon
                 }
 
-                PlasmaComponents.Label {
+                Kirigami.Label {
                     Layout.fillWidth: true
                     text: conversation.title
 
                 }
 
-                PlasmaComponents.Button {
+                Button {
                     text: i18nc("Close an active conversation", "Close")
 
                     onClicked: {
@@ -146,7 +146,18 @@ MobileComponents.Page {
                         }
                     }
 
-                    model: conversation.messages // : undefined
+                    model: conversation.messages
+
+                    Connections {
+                        target: conversation.messages
+
+                        onRowsInserted: {
+                            if (view.followConversation) {
+                                view.positionViewAtEnd();
+                            }
+                        }
+                    }
+
                     onMovementEnded: followConversation = atYEnd //we only follow \
the conversation if moved to the end  
                     onContentHeightChanged: {
@@ -171,8 +182,9 @@ MobileComponents.Page {
     //                 }
             }
 
-            PlasmaComponents.Label {
+            Kirigami.Label {
                 Layout.fillWidth: true
+                Layout.maximumHeight: height
                 text: conversation.isContactTyping ? i18nc("Contact is composing a \
                message",
                                                            "%1 is typing...", \
conversation.title) : ""  height: text.length == 0 ? 0 : paintedHeight
@@ -194,7 +206,7 @@ MobileComponents.Page {
                     }
                 }
 
-                PlasmaComponents.Button {
+                Button {
                     enabled: conversation !== null
                     text: conversation.account !== null && \
                conversation.account.online ?
                                     i18nc("Button label; Send message", "Send")
diff --git a/app/package/contents/ui/MainPage.qml \
b/app/package/contents/ui/MainPage.qml index a0958e9..8fba599 100644
--- a/app/package/contents/ui/MainPage.qml
+++ b/app/package/contents/ui/MainPage.qml
@@ -21,20 +21,23 @@ import QtQuick 2.3
 import QtQuick.Controls 1.4
 import QtQuick.Layouts 1.1
 import org.kde.plasma.core 2.0 as PlasmaCore
-import org.kde.plasma.components 2.0 as PlasmaComponents
-import org.kde.plasma.mobilecomponents 0.2 as MobileComponents
+import org.kde.kirigami 1.0 as Kirigami
 import org.kde.plasma.extras 2.0 as PlasmaExtras
 import org.kde.telepathy 0.1 as KTp
 
-MobileComponents.Page {
+Kirigami.Page {
     anchors.fill: parent
 
-    mainAction: Action {
+    title: "Your Conversations"
+
+    mainAction: Kirigami.Action {
         text: "Start New Conversation"
         iconName: "document-edit"
 
         onTriggered: {
-//             pageStack.pop(pageStack.initialPage);
+            if (root.pageStack.depth == 2) {
+                root.pageStack.pop();
+            }
             root.pageStack.push(newConversationPageComponent);
             print("Action button clicked")
         }
@@ -86,12 +89,15 @@ MobileComponents.Page {
                     }
                 }
 
-                delegate: PlasmaComponents.ListItem {
-                    enabled: true
+                delegate: Kirigami.AbstractListItem {
+                    supportsMouseEvents: true
 
                     onClicked: {
+                        if (root.pageStack.depth == 2) {
+                            root.pageStack.pop();
+                        }
                         root.pageStack.push(conversationPageComponent);
-                        root.pageStack.currentPage.conversation = \
model.conversation; +                        root.pageStack.currentItem.conversation \
= model.conversation;  
                         // If the account is online, request a channel
                         if (mainModel.canChat(accountId)) {
@@ -127,7 +133,7 @@ MobileComponents.Page {
                             maximumLineCount: 1
                             level: 4
                         }
-                        PlasmaComponents.Label {
+                        Kirigami.Label {
                             Layout.fillWidth: true
 
                             text: model.lastMessageText
@@ -135,7 +141,7 @@ MobileComponents.Page {
                             elide: Text.ElideRight
                             maximumLineCount: 2
                         }
-                        PlasmaComponents.Label {
+                        Kirigami.Label {
                             Layout.fillWidth: true
 
                             text: Qt.formatDateTime(model.lastMessageDate)
@@ -143,7 +149,6 @@ MobileComponents.Page {
                             elide: Text.ElideRight
                             maximumLineCount: 1
                         }
-
                     }
                 }
             }
diff --git a/app/package/contents/ui/NewConversationPage.qml \
b/app/package/contents/ui/NewConversationPage.qml index c149465..2bf7fcc 100644
--- a/app/package/contents/ui/NewConversationPage.qml
+++ b/app/package/contents/ui/NewConversationPage.qml
@@ -20,17 +20,16 @@
 import QtQuick 2.3
 import QtQuick.Controls 1.4
 import QtQuick.Layouts 1.1
-import org.kde.people 1.0 as KPeople
 import org.kde.plasma.private.kpeoplehelper 1.0
-import org.kde.kquickcontrolsaddons 2.0 as ExtraComponents
-import org.kde.plasma.core 2.0 as PlasmaCore
 import org.kde.plasma.components 2.0 as PlasmaComponents
-import org.kde.plasma.mobilecomponents 0.2 as MobileComponents
+import org.kde.kirigami 1.0 as Kirigami
 import org.kde.plasma.extras 2.0 as PlasmaExtras
 import org.kde.telepathy 0.1
 
-MobileComponents.Page {
+Kirigami.Page {
     anchors.fill: parent
+    focus: true
+
     property string pageName: "newConversationPage"
 
     GridLayout {
@@ -44,7 +43,7 @@ MobileComponents.Page {
             text: i18n("Start New Conversation")
         }
 
-        PlasmaComponents.Label {
+        Kirigami.Label {
             Layout.alignment: Qt.AlignRight
             text: i18n("To:")
         }
diff --git a/app/package/contents/ui/TextDelegate.qml \
b/app/package/contents/ui/TextDelegate.qml index 23beb2e..e315cae 100644
--- a/app/package/contents/ui/TextDelegate.qml
+++ b/app/package/contents/ui/TextDelegate.qml
@@ -19,7 +19,6 @@
 */
 
 import QtQuick 2.1
-import org.kde.plasma.components 2.0 as PlasmaComponents
 import org.kde.telepathy 0.1
 
 Item {
diff --git a/app/package/contents/ui/main.qml b/app/package/contents/ui/main.qml
index 0bfa0aa..bba82f8 100644
--- a/app/package/contents/ui/main.qml
+++ b/app/package/contents/ui/main.qml
@@ -22,9 +22,9 @@ import QtQuick.Controls 1.4
 import QtQuick.Layouts 1.1
 import org.kde.plasma.core 2.0 as PlasmaCore
 import org.kde.plasma.components 2.0 as PlasmaComponents
-import org.kde.plasma.mobilecomponents 0.2 as MobileComponents
+import org.kde.kirigami 1.0 as Kirigami
 
-MobileComponents.ApplicationWindow {
+Kirigami.ApplicationWindow {
     id: root
 
     width: 800
@@ -32,13 +32,13 @@ MobileComponents.ApplicationWindow {
 
     property string requestedChannel
 
-    globalDrawer: MobileComponents.GlobalDrawer {
+    globalDrawer: Kirigami.GlobalDrawer {
         title: "SpaceBar"
         titleIcon: "spacebar"
 //         bannerImageSource: "banner.jpg"
 
         actions: [
-//         MobileComponents.ActionGroup {
+//         Kirigami.ActionGroup {
 //             text: "View"
 //             iconName: "view-list-icons"
 //             Action {
@@ -105,15 +105,15 @@ MobileComponents.ApplicationWindow {
 //             enabled: false
 //         }
     }
-    contextDrawer: MobileComponents.ContextDrawer {
+    contextDrawer: Kirigami.ContextDrawer {
         id: contextDrawer
     }
 
-    initialPage: mainPageComponent
+    pageStack.initialPage: mainPageComponent
 
 //     Component {
 //         id: settingsComponent
-//         MobileComponents.Page {
+//         Kirigami.Page {
 //             objectName: "settingsPage"
 //             Rectangle {
 //                 anchors.fill: parent
@@ -137,7 +137,9 @@ MobileComponents.ApplicationWindow {
     Component {
         id: newConversationPageComponent
 
-        NewConversationPage {}
+        NewConversationPage {
+            id: newConversationPage
+        }
     }
 
     Component.onCompleted: {


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic