refactor: use QPushButtons and fake toolbutton style without using a style sheet
This commit is contained in:
committed by
Chris Rizzitello
parent
697cd57adb
commit
6b05c2abc0
@ -48,7 +48,6 @@
|
||||
#include <QRegularExpressionValidator>
|
||||
#include <QScreen>
|
||||
#include <QScrollBar>
|
||||
#include <QToolButton>
|
||||
|
||||
#include <memory>
|
||||
|
||||
@ -74,7 +73,7 @@ MainWindow::MainWindow()
|
||||
m_logDock{new LogDock(this)},
|
||||
m_lblSecurityStatus{new QLabel(this)},
|
||||
m_lblStatus{new QLabel(this)},
|
||||
m_btnFingerprint{new QToolButton(this)},
|
||||
m_btnFingerprint{new QPushButton(this)},
|
||||
m_btnUpdate{new QPushButton(this)},
|
||||
m_actionAbout{new QAction(this)},
|
||||
m_actionClearSettings{new QAction(tr("Clear settings"), this)},
|
||||
@ -236,30 +235,31 @@ void MainWindow::setupControls()
|
||||
ui->btnSaveServerConfig->setIconSize(QSize(22, 22));
|
||||
#endif
|
||||
|
||||
const auto trayItemSize = QSize(24, 24);
|
||||
m_btnFingerprint->setStyleSheet(kStyleFlatButtonHoverable);
|
||||
static const auto btnHeight = ui->statusBar->height() - 2;
|
||||
static const auto btnSize = QSize(btnHeight, btnHeight);
|
||||
static const auto iconSize = QSize(fontMetrics().height() + 2, fontMetrics().height() + 2);
|
||||
|
||||
m_btnFingerprint->setFlat(true);
|
||||
m_btnFingerprint->setIcon(QIcon::fromTheme(QStringLiteral("fingerprint")));
|
||||
m_btnFingerprint->setFixedSize(trayItemSize);
|
||||
m_btnFingerprint->setIconSize(trayItemSize);
|
||||
m_btnFingerprint->setAutoRaise(true);
|
||||
m_btnFingerprint->setFixedSize(btnSize);
|
||||
m_btnFingerprint->setIconSize(iconSize);
|
||||
m_btnFingerprint->setToolTip(tr("View local fingerprint"));
|
||||
ui->statusBar->insertPermanentWidget(0, m_btnFingerprint);
|
||||
|
||||
m_lblSecurityStatus->setVisible(false);
|
||||
m_lblSecurityStatus->setFixedSize(trayItemSize);
|
||||
m_lblSecurityStatus->setFixedSize(iconSize);
|
||||
m_lblSecurityStatus->setScaledContents(true);
|
||||
ui->statusBar->insertPermanentWidget(1, m_lblSecurityStatus);
|
||||
|
||||
ui->statusBar->insertPermanentWidget(2, m_lblStatus, 1);
|
||||
|
||||
m_btnUpdate->setVisible(false);
|
||||
m_btnUpdate->setStyleSheet(kStyleFlatButtonHoverable);
|
||||
m_btnUpdate->setFlat(true);
|
||||
m_btnUpdate->setText(tr("Update available"));
|
||||
m_btnUpdate->setLayoutDirection(Qt::RightToLeft);
|
||||
m_btnUpdate->setIcon(QIcon::fromTheme(QStringLiteral("software-updates-release")));
|
||||
m_btnUpdate->setFixedHeight(24);
|
||||
m_btnUpdate->setIconSize(trayItemSize);
|
||||
m_btnUpdate->setFixedHeight(btnHeight);
|
||||
m_btnUpdate->setIconSize(iconSize);
|
||||
ui->statusBar->insertPermanentWidget(3, m_btnUpdate);
|
||||
}
|
||||
|
||||
@ -322,7 +322,7 @@ void MainWindow::connectSlots()
|
||||
connect(ui->btnSaveServerConfig, &QPushButton::clicked, this, &MainWindow::saveServerConfig);
|
||||
connect(ui->btnConfigureServer, &QPushButton::clicked, this, [this] { showConfigureServer(""); });
|
||||
connect(ui->lblComputerName, &QLabel::linkActivated, this, &MainWindow::openSettings);
|
||||
connect(m_btnFingerprint, &QToolButton::clicked, this, &MainWindow::showMyFingerprint);
|
||||
connect(m_btnFingerprint, &QPushButton::clicked, this, &MainWindow::showMyFingerprint);
|
||||
|
||||
connect(ui->rbModeServer, &QRadioButton::toggled, this, &MainWindow::coreModeToggled);
|
||||
connect(ui->rbModeClient, &QRadioButton::toggled, this, &MainWindow::coreModeToggled);
|
||||
|
||||
@ -38,7 +38,6 @@ class QPushButton;
|
||||
class QTextEdit;
|
||||
class QComboBox;
|
||||
class QTabWidget;
|
||||
class QToolButton;
|
||||
class QCheckBox;
|
||||
class QRadioButton;
|
||||
class QMessageBox;
|
||||
@ -187,7 +186,7 @@ private:
|
||||
LogDock *m_logDock;
|
||||
QLabel *m_lblSecurityStatus = nullptr;
|
||||
QLabel *m_lblStatus = nullptr;
|
||||
QToolButton *m_btnFingerprint = nullptr;
|
||||
QPushButton *m_btnFingerprint = nullptr;
|
||||
QPushButton *m_btnUpdate = nullptr;
|
||||
|
||||
// Window Actions
|
||||
|
||||
@ -34,13 +34,4 @@ const auto kStyleErrorInactiveLabel = //
|
||||
"background-color: none"
|
||||
);
|
||||
|
||||
const auto kStyleFlatButton = QStringLiteral("QAbstractButton{background-color: none; border: none;}");
|
||||
|
||||
const auto kStyleFlatButtonHoverable = QStringLiteral(
|
||||
"%1\n"
|
||||
"QAbstractButton:hover{border: 1px solid palette(highlight);"
|
||||
" border-radius: 6px}"
|
||||
)
|
||||
.arg(kStyleFlatButton);
|
||||
|
||||
} // namespace deskflow::gui
|
||||
|
||||
@ -11,30 +11,33 @@
|
||||
#include <QEvent>
|
||||
#include <QHBoxLayout>
|
||||
#include <QLabel>
|
||||
#include <QToolButton>
|
||||
#include <QPushButton>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
LogDock::LogDock(QWidget *parent)
|
||||
: QDockWidget(tr("Log"), parent),
|
||||
m_textLog{new LogWidget(this)},
|
||||
m_btnClose{new QToolButton(this)},
|
||||
m_btnFloat{new QToolButton(this)},
|
||||
m_btnClose{new QPushButton(this)},
|
||||
m_btnFloat{new QPushButton(this)},
|
||||
m_lblTitle{new QLabel(tr("Log"), this)}
|
||||
{
|
||||
const auto iconSize = QSize(fontMetrics().height() - 2, fontMetrics().height() - 2);
|
||||
const auto maxBtnSize = QSize(fontMetrics().height() + 2, fontMetrics().height() + 2);
|
||||
|
||||
m_btnFloat->setStyleSheet(deskflow::gui::kStyleFlatButtonHoverable);
|
||||
m_btnFloat->setFixedSize(maxBtnSize);
|
||||
m_btnFloat->setCheckable(true);
|
||||
m_btnFloat->setFlat(true);
|
||||
m_btnFloat->setIcon(QIcon::fromTheme(QStringLiteral("window-minimize-pip")));
|
||||
m_btnFloat->setIconSize(iconSize);
|
||||
m_btnFloat->setToolTip(tr("Detach from window"));
|
||||
connect(m_btnFloat, &QToolButton::toggled, this, &LogDock::setFloating);
|
||||
connect(m_btnFloat, &QPushButton::toggled, this, &LogDock::setFloating);
|
||||
|
||||
m_btnClose->setStyleSheet(deskflow::gui::kStyleFlatButtonHoverable);
|
||||
m_btnClose->setFixedSize(maxBtnSize);
|
||||
m_btnClose->setFlat(true);
|
||||
m_btnClose->setIcon(QIcon::fromTheme(QStringLiteral("view-close")));
|
||||
m_btnClose->setIconSize(iconSize);
|
||||
m_btnClose->setToolTip(tr("Close Log"));
|
||||
connect(m_btnClose, &QToolButton::clicked, this, &QDockWidget::hide);
|
||||
connect(m_btnClose, &QPushButton::clicked, this, &QDockWidget::hide);
|
||||
|
||||
auto titleWidget = new QWidget(this);
|
||||
titleWidget->installEventFilter(this);
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
|
||||
class LogWidget;
|
||||
class QLabel;
|
||||
class QToolButton;
|
||||
class QPushButton;
|
||||
|
||||
class LogDock : public QDockWidget
|
||||
{
|
||||
@ -25,7 +25,7 @@ protected:
|
||||
|
||||
private:
|
||||
LogWidget *m_textLog = nullptr;
|
||||
QToolButton *m_btnClose = nullptr;
|
||||
QToolButton *m_btnFloat = nullptr;
|
||||
QPushButton *m_btnClose = nullptr;
|
||||
QPushButton *m_btnFloat = nullptr;
|
||||
QLabel *m_lblTitle = nullptr;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user