Rework HBox-based pages and account settings

- Refactor everything about HBox, and adapt all the pages and popups
  that used it

- Replace HTabContainer by HTabbedBox

- Make boxes swippable

- Make esc presses in boxes click the cancel button

- Make all boxes and popups scrollable when needed

- Replace generic apply button icons in popups

- Fix tab focus for error and invite popups

- Rework (still WIP) the account settings page:
  - Use the standard tabbed design of other pages
  - Ditch the horizontal profile layout, hacky and impossible to extend
  - Add real-time coloring for the display name field

- Implement a device list in account settings (Sessions, still WIP)
This commit is contained in:
miruka
2020-06-25 08:32:08 -04:00
parent 72bd78c77e
commit da4a5ab5cd
66 changed files with 1594 additions and 1173 deletions

View File

@@ -11,6 +11,7 @@ import "Timeline"
HColumnPage {
id: chatPage
padding: 0
column.spacing: 0
onLoadEventListChanged: if (loadEventList) loadedOnce = true
Component.onDestruction: if (loadMembersFuture) loadMembersFuture.cancel()

View File

@@ -67,10 +67,7 @@ HTile {
roomId: chat.roomId,
targetUserId: model.id,
targetDisplayName: model.display_name,
operation:
model.invited ?
RemoveMemberPopup.Operation.Disinvite :
RemoveMemberPopup.Operation.Kick,
operation: model.invited ? "disinvite" : "kick",
})
Component.onCompleted: py.callClientCoro(
@@ -94,7 +91,7 @@ HTile {
roomId: chat.roomId,
targetUserId: model.id,
targetDisplayName: model.display_name,
operation: RemoveMemberPopup.Operation.Ban,
operation: "ban",
})
Component.onCompleted: py.callClientCoro(

View File

@@ -57,9 +57,6 @@ HFlickableColumnPage {
}
useVariableSpacing: false
column.spacing: theme.spacing * 1.5
flickShortcuts.active:
! mainUI.debugConsole.visible && ! chat.composerHasFocus
@@ -82,6 +79,8 @@ HFlickableColumnPage {
}
}
Keys.onEscapePressed: cancel()
HRoomAvatar {
id: avatar