Some optimizations.

This commit is contained in:
Black Hat 2018-11-11 09:55:41 +08:00
parent 06983a506c
commit bbc4fedd20
3 changed files with 45 additions and 45 deletions

View File

@ -115,58 +115,49 @@ Drawer {
room: roomDrawer.room
}
delegate: Column {
property bool expanded: false
delegate: SwipeDelegate {
width: userListView.width
height: 48
ItemDelegate {
width: userListView.width
height: 48
RowLayout {
anchors.fill: parent
anchors.margins: 8
spacing: 12
RowLayout {
anchors.fill: parent
anchors.margins: 8
spacing: 12
ImageItem {
Layout.preferredWidth: height
Layout.fillHeight: true
ImageItem {
Layout.preferredWidth: height
Layout.fillHeight: true
source: paintable
hint: name
}
Label {
Layout.fillWidth: true
text: name
}
source: paintable
hint: name
}
onClicked: expanded = !expanded
}
ColumnLayout {
width: parent.width - 32
height: expanded ? implicitHeight : 0
anchors.horizontalCenter: parent.horizontalCenter
spacing: 0
clip: true
Button {
Label {
Layout.fillWidth: true
text: "Kick"
highlighted: true
onClicked: room.kickMember(userId)
}
Behavior on height {
PropertyAnimation { easing.type: Easing.InOutCubic; duration: 200 }
text: name
}
}
swipe.right: Rectangle {
width: height
height: parent.height
anchors.right: parent.right
color: Material.accent
MaterialIcon {
anchors.fill: parent
icon: "\ue879"
color: "white"
}
SwipeDelegate.onClicked: {
room.kickMember(userId)
swipe.close()
}
}
onClicked: swipe.open(SwipeDelegate.Right)
}
ScrollBar.vertical: ScrollBar {}

View File

@ -40,6 +40,13 @@ Controller::Controller(QObject* parent)
QTimer::singleShot(0, this, SLOT(invokeLogin()));
}
Controller::~Controller() {
for (Connection* c : m_connections) {
c->saveState();
c->stopSync();
}
}
inline QString accessTokenFileName(const AccountSettings& account) {
QString fileName = account.userId();
fileName.replace(':', '_');
@ -103,8 +110,10 @@ void Controller::addConnection(Connection* c) {
m_connections.push_back(c);
connect(c, &Connection::syncDone, this, [=] {
c->saveState();
c->sync(30000);
static int counter = 0;
if (++counter % 17 == 2) c->saveState();
});
connect(c, &Connection::loggedOut, this, [=] { dropConnection(c); });

View File

@ -23,7 +23,7 @@ class Controller : public QObject {
public:
explicit Controller(QObject* parent = nullptr);
~Controller(){};
~Controller();
// All the Q_INVOKABLEs.
Q_INVOKABLE void loginWithCredentials(QString, QString, QString);