summary refs log tree commit diff
path: root/include
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-05-19 03:28:15 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-05-19 03:28:15 +0300
commitf4522f9bbf427adea3164677d241cca454fc68dd (patch)
tree97a89bd0fe1e8afac99a3931a86d28487e1b1810 /include
parentReplace include guards with #pragma once (diff)
downloadnheko-f4522f9bbf427adea3164677d241cca454fc68dd.tar.xz
Simplify room list item
Diffstat (limited to 'include')
-rw-r--r--include/RoomInfoListItem.h46
-rw-r--r--include/Splitter.h38
2 files changed, 54 insertions, 30 deletions
diff --git a/include/RoomInfoListItem.h b/include/RoomInfoListItem.h
index df7f11e8..f01fddf4 100644
--- a/include/RoomInfoListItem.h
+++ b/include/RoomInfoListItem.h
@@ -17,13 +17,8 @@
 
 #pragma once
 
-#include <QtWidgets/QHBoxLayout>
-#include <QtWidgets/QLabel>
-#include <QtWidgets/QVBoxLayout>
-#include <QtWidgets/QWidget>
+#include <QWidget>
 
-#include "Avatar.h"
-#include "Badge.h"
 #include "RippleOverlay.h"
 #include "RoomState.h"
 
@@ -52,46 +47,37 @@ public slots:
 
 protected:
 	void mousePressEvent(QMouseEvent *event) override;
+	void paintEvent(QPaintEvent *event) override;
 
 private:
-	void setElidedText(QLabel *label, QString text, int width);
+	const int Padding = 10;
+	const int IconSize = 45;
 
 	RippleOverlay *ripple_overlay_;
 
 	RoomState state_;
-	QString room_id_;
 
-	QHBoxLayout *topLayout_;
+	QString roomId_;
+	QString roomName_;
+	QString lastMessage_;
+	QString lastTimestamp_;
 
-	QVBoxLayout *avatarLayout_;
-	QVBoxLayout *textLayout_;
+	QPixmap roomAvatar_;
 
-	QWidget *avatarWidget_;
-	QWidget *textWidget_;
+	bool isPressed_;
 
-	QLabel *roomName_;
-	QLabel *roomTopic_;
-
-	Avatar *roomAvatar_;
-	Badge *unreadMessagesBadge_;
-
-	QString pressed_style_;
-	QString normal_style_;
-
-	bool is_pressed_;
-
-	int max_height_;
-	int unread_msg_count_;
+	int maxHeight_ = 60;
+	int unreadMsgCount_ = 0;
 };
 
 inline int RoomInfoListItem::unreadMessageCount() const
 {
-	return unread_msg_count_;
+	return unreadMsgCount_;
 }
 
 inline bool RoomInfoListItem::isPressed() const
 {
-	return is_pressed_;
+	return isPressed_;
 }
 
 inline RoomState RoomInfoListItem::state() const
@@ -99,7 +85,7 @@ inline RoomState RoomInfoListItem::state() const
 	return state_;
 }
 
-inline void RoomInfoListItem::setAvatar(const QImage &avatar_image)
+inline void RoomInfoListItem::setAvatar(const QImage &img)
 {
-	roomAvatar_->setImage(avatar_image);
+	roomAvatar_ = QPixmap::fromImage(img.scaled(IconSize, IconSize, Qt::KeepAspectRatio, Qt::SmoothTransformation));
 }
diff --git a/include/Splitter.h b/include/Splitter.h
new file mode 100644
index 00000000..d9610730
--- /dev/null
+++ b/include/Splitter.h
@@ -0,0 +1,38 @@
+/*
+ * nheko Copyright (C) 2017  Konstantinos Sideris <siderisk@auth.gr>
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#pragma once
+
+#include <QSplitter>
+
+class Splitter : public QSplitter
+{
+	Q_OBJECT
+public:
+	explicit Splitter(int first_step, int second_step, QWidget *parent = nullptr);
+
+private:
+	void onSplitterMoved(int pos, int index);
+
+	int firstStep_ = 60;
+	int secondStep_ = 300;
+
+	int moveEventLimit_ = 50;
+
+	int leftMoveCount_ = 0;
+	int rightMoveCount_ = 0;
+};