Simplify room list item
This commit is contained in:
parent
6553aa61a1
commit
f4522f9bbf
5 changed files with 256 additions and 135 deletions
|
|
@ -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));
|
||||
}
|
||||
|
|
|
|||
38
include/Splitter.h
Normal file
38
include/Splitter.h
Normal file
|
|
@ -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;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue