Snappy sidebar
4 files changed, 24 insertions, 10 deletions
diff --git a/include/ChatPage.h b/include/ChatPage.h
index 5ad22584..7e8bc9e9 100644
--- a/include/ChatPage.h
+++ b/include/ChatPage.h
@@ -24,16 +24,12 @@
#include "MatrixClient.h"
#include "RoomList.h"
#include "RoomState.h"
+#include "Splitter.h"
#include "TextInputWidget.h"
#include "TimelineViewManager.h"
#include "TopRoomBar.h"
#include "UserInfoWidget.h"
-namespace Ui
-{
-class ChatPage;
-}
-
class ChatPage : public QWidget
{
Q_OBJECT
@@ -64,7 +60,20 @@ private slots:
private:
void updateRoomState(RoomState &room_state, const QJsonArray &events);
- Ui::ChatPage *ui;
+ QHBoxLayout *topLayout_;
+ Splitter *splitter;
+
+ QWidget *sideBar_;
+ QVBoxLayout *sideBarLayout_;
+ QVBoxLayout *sideBarTopLayout_;
+ QVBoxLayout *sideBarMainLayout_;
+ QWidget *sideBarTopWidget_;
+ QVBoxLayout *sideBarTopWidgetLayout_;
+
+ QWidget *content_;
+ QVBoxLayout *contentLayout_;
+ QHBoxLayout *topBarLayout_;
+ QVBoxLayout *mainContentLayout_;
RoomList *room_list_;
TimelineViewManager *view_manager_;
diff --git a/include/Splitter.h b/include/Splitter.h
index d9610730..fdaca8f7 100644
--- a/include/Splitter.h
+++ b/include/Splitter.h
@@ -23,14 +23,11 @@ class Splitter : public QSplitter
{
Q_OBJECT
public:
- explicit Splitter(int first_step, int second_step, QWidget *parent = nullptr);
+ explicit Splitter(QWidget *parent = nullptr);
private:
void onSplitterMoved(int pos, int index);
- int firstStep_ = 60;
- int secondStep_ = 300;
-
int moveEventLimit_ = 50;
int leftMoveCount_ = 0;
diff --git a/include/UserInfoWidget.h b/include/UserInfoWidget.h
index e7dfbe25..1b819577 100644
--- a/include/UserInfoWidget.h
+++ b/include/UserInfoWidget.h
@@ -42,6 +42,9 @@ public:
signals:
void logout();
+protected:
+ void resizeEvent(QResizeEvent *event) override;
+
private:
Avatar *userAvatar_;
diff --git a/include/ui/Theme.h b/include/ui/Theme.h
index 95eb5277..e63d8fc5 100644
--- a/include/ui/Theme.h
+++ b/include/ui/Theme.h
@@ -12,6 +12,11 @@ enum class AvatarType {
Letter
};
+namespace sidebar
+{
+static const int SmallSize = 60;
+static const int NormalSize = 300;
+}
// Default font size.
const int FontSize = 16;
|