summary refs log tree commit diff
path: root/src/dialogs/MemberList.cpp
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-09-19 22:42:26 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-09-19 22:42:26 +0300
commit1716502eff3e5108f05aba8acbabd5c9287d624c (patch)
treefe16cfce143a3350c1b1453edf47adbb5e13f665 /src/dialogs/MemberList.cpp
parentci: Don't count errors during brew upgrade (diff)
downloadnheko-1716502eff3e5108f05aba8acbabd5c9287d624c.tar.xz
Improvements on the system theme
Diffstat (limited to 'src/dialogs/MemberList.cpp')
-rw-r--r--src/dialogs/MemberList.cpp33
1 files changed, 20 insertions, 13 deletions
diff --git a/src/dialogs/MemberList.cpp b/src/dialogs/MemberList.cpp
index b353229f..bd9b1edf 100644
--- a/src/dialogs/MemberList.cpp
+++ b/src/dialogs/MemberList.cpp
@@ -1,5 +1,7 @@
 #include <QListWidgetItem>
 #include <QPainter>
+#include <QPushButton>
+#include <QShortcut>
 #include <QStyleOption>
 #include <QVBoxLayout>
 
@@ -11,7 +13,6 @@
 #include "Config.h"
 #include "Utils.h"
 #include "ui/Avatar.h"
-#include "ui/FlatButton.h"
 
 using namespace dialogs;
 
@@ -51,10 +52,22 @@ MemberItem::MemberItem(const RoomMember &member, QWidget *parent)
         topLayout_->addLayout(textLayout_, 1);
 }
 
+void
+MemberItem::paintEvent(QPaintEvent *)
+{
+        QStyleOption opt;
+        opt.init(this);
+        QPainter p(this);
+        style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
+}
+
 MemberList::MemberList(const QString &room_id, QWidget *parent)
   : QFrame(parent)
   , room_id_{room_id}
 {
+        setAutoFillBackground(true);
+        setWindowFlags(Qt::Tool | Qt::WindowStaysOnTopHint);
+        setWindowModality(Qt::WindowModal);
         setAttribute(Qt::WA_DeleteOnClose, true);
 
         auto layout = new QVBoxLayout(this);
@@ -64,7 +77,6 @@ MemberList::MemberList(const QString &room_id, QWidget *parent)
         list_ = new QListWidget;
         list_->setFrameStyle(QFrame::NoFrame);
         list_->setSelectionMode(QAbstractItemView::NoSelection);
-        list_->setAttribute(Qt::WA_MacShowFocusRect, 0);
         list_->setSpacing(5);
 
         QFont doubleFont;
@@ -89,7 +101,8 @@ MemberList::MemberList(const QString &room_id, QWidget *parent)
         list_->clear();
 
         // Add button at the bottom.
-        moreBtn_  = new FlatButton(tr("SHOW MORE"), this);
+        moreBtn_ = new QPushButton(tr("Show more"), this);
+        moreBtn_->setFlat(true);
         auto item = new QListWidgetItem;
         item->setSizeHint(moreBtn_->minimumSizeHint());
         item->setFlags(Qt::NoItemFlags);
@@ -97,7 +110,7 @@ MemberList::MemberList(const QString &room_id, QWidget *parent)
         list_->insertItem(0, item);
         list_->setItemWidget(item, moreBtn_);
 
-        connect(moreBtn_, &FlatButton::clicked, this, [this]() {
+        connect(moreBtn_, &QPushButton::clicked, this, [this]() {
                 const size_t numMembers = list_->count() - 1;
 
                 if (numMembers > 0)
@@ -109,6 +122,9 @@ MemberList::MemberList(const QString &room_id, QWidget *parent)
         } catch (const lmdb::error &e) {
                 qCritical() << e.what();
         }
+
+        auto closeShortcut = new QShortcut(QKeySequence(tr("ESC")), this);
+        connect(closeShortcut, &QShortcut::activated, this, &MemberList::close);
 }
 
 void
@@ -143,12 +159,3 @@ MemberList::addUsers(const std::vector<RoomMember> &members)
                 list_->setItemWidget(item, user);
         }
 }
-
-void
-MemberList::paintEvent(QPaintEvent *)
-{
-        QStyleOption opt;
-        opt.init(this);
-        QPainter p(this);
-        style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
-}