From c5c0f35f59434b9ce1fffd44bd1ece19c3e3a86e Mon Sep 17 00:00:00 2001 From: Kevin Flynn Date: Sat, 5 Jul 2014 15:03:53 -0700 Subject: [PATCH] Small fixes to status button --- res.qrc | 1 + ui/fileTransferWidget/fileTransferWidget.css | 4 +- ui/statusButton/menu_indicator.png | Bin 0 -> 262 bytes ui/statusButton/statusButton.css | 43 +++++++++++++++++-- widget.ui | 13 ++++-- widget/widget.cpp | 23 ++++++++-- 6 files changed, 70 insertions(+), 14 deletions(-) create mode 100644 ui/statusButton/menu_indicator.png diff --git a/res.qrc b/res.qrc index 33995781f..793d63c22 100644 --- a/res.qrc +++ b/res.qrc @@ -108,5 +108,6 @@ ui/statusButton/dot_idle.png ui/statusButton/dot_online.png ui/statusButton/statusButton.css + ui/statusButton/menu_indicator.png diff --git a/ui/fileTransferWidget/fileTransferWidget.css b/ui/fileTransferWidget/fileTransferWidget.css index ce8f1759b..ab306fb9c 100644 --- a/ui/fileTransferWidget/fileTransferWidget.css +++ b/ui/fileTransferWidget/fileTransferWidget.css @@ -16,11 +16,11 @@ QProgressBar { background-color: transparent; - border: 1px solid black; + border: 1px solid rgb(150,150,150); height: 11px; } QProgressBar::chunk { - background-color: black; + background-color: rgb(150,150,150); width: 2px; } \ No newline at end of file diff --git a/ui/statusButton/menu_indicator.png b/ui/statusButton/menu_indicator.png new file mode 100644 index 0000000000000000000000000000000000000000..0015b5d08be56bbc60182e81bf4eb324d46ec65e GIT binary patch literal 262 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRR!3HD+k8e2&;v{*yyD?NMQuI%^NSw-b6KWx{X2o##^>Eal|alN$fAXk%vi0k>D=7Sk^ zt@o4u??2%>Da}cVhqIUK(1~n8Hr-vTcUw#^zPeIF<$UqKr!muJJhyl>NBOi-+&$(6 zTc6EXX7g)a<-Cgw-`6GIHe0jRCD0{F_p*s0&*5|y0jCF1*JU2fI1)7_=!);>&{unP zP9IvEYj~_+rIr&%2ZvJAO+~?jmhIo?mB!Ye+t1i`*tv)G?bk4%^B6o`{an^LB{Ts5 Dcg|yB literal 0 HcmV?d00001 diff --git a/ui/statusButton/statusButton.css b/ui/statusButton/statusButton.css index e96750704..5ca59c357 100644 --- a/ui/statusButton/statusButton.css +++ b/ui/statusButton/statusButton.css @@ -1,17 +1,41 @@ QPushButton { - background: none; + background: none; background-color: rgb(65,65,65); border: none; border-radius: 6px; } -/*Disabled due to a bug preventing button status from - resetting to default after menu item pressed +QPushButton#online +{ + image: url(":ui/statusButton/dot_online.png") center center; +} + +QPushButton#away +{ + image: url(":ui/statusButton/dot_idle.png") center center; +} + +QPushButton#busy +{ + image: url(":ui/statusButton/dot_busy.png") center center; +} + +QPushButton#offline +{ + image: url(":ui/statusButton/dot_away.png") center center; +} + +QPushButton:default +{ + background-color: rgb(65,65,65); +} + +/*Bugged in Qt, but it's probably better to leave enabled so that users can tell it's clickable*/ QPushButton:hover { background-color: rgb(75,75,75); -}*/ +} QPushButton:pressed { @@ -21,3 +45,14 @@ QPushButton:pressed QPushButton:focus { outline: none; } + +QPushButton::menu-indicator {image: none;} + +QPushButton::menu-indicator:pressed, QPushButton::menu-indicator:open +{ + image: url(":ui/statusButton/menu_indicator.png"); + subcontrol-origin: padding; + subcontrol-position: bottom center; + position: relative; + bottom: 2px; +} diff --git a/widget.ui b/widget.ui index 34db6ed85..48f172468 100644 --- a/widget.ui +++ b/widget.ui @@ -2026,19 +2026,24 @@ QSplitter:handle{ + + + 0 + 0 + + 20 40 + + Qt::NoFocus + - - - :/ui/statusButton/dot_away.png:/ui/statusButton/dot_away.png - 10 diff --git a/widget/widget.cpp b/widget/widget.cpp index c480548b9..44352ad0d 100644 --- a/widget/widget.cpp +++ b/widget/widget.cpp @@ -156,6 +156,7 @@ Widget::Widget(QWidget *parent) : setStatusBusy->setIcon(QIcon(":ui/statusButton/dot_busy.png")); ui->statusButton->setMenu(statusButtonMenu); + this->setMouseTracking(true); QList widgets = this->findChildren(); @@ -315,14 +316,28 @@ void Widget::onFailedToStartCore() void Widget::onStatusSet(Status status) { + //We have to use stylesheets here, there's no way to + //prevent the button icon from moving when pressed otherwise if (status == Status::Online) - ui->statusButton->setIcon(QIcon(":ui/statusButton/dot_online.png")); + { + ui->statusButton->setObjectName("online"); + ui->statusButton->style()->polish(ui->statusButton); + } else if (status == Status::Away) - ui->statusButton->setIcon(QIcon(":ui/statusButton/dot_idle.png")); + { + ui->statusButton->setObjectName("away"); + ui->statusButton->style()->polish(ui->statusButton); + } else if (status == Status::Busy) - ui->statusButton->setIcon(QIcon(":ui/statusButton/dot_busy.png")); + { + ui->statusButton->setObjectName("busy"); + ui->statusButton->style()->polish(ui->statusButton); + } else if (status == Status::Offline) - ui->statusButton->setIcon(QIcon(":ui/statusButton/dot_away.png")); + { + ui->statusButton->setObjectName("offline"); + ui->statusButton->style()->polish(ui->statusButton); + } } void Widget::onAddClicked()