[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