mirror of
https://github.com/YACReader/yacreader
synced 2025-07-14 11:04:25 -04:00
Headless server: simplify system config logger
This commit is contained in:
151
YACReaderLibrary/yacreader_main_toolbar.cpp
Normal file
151
YACReaderLibrary/yacreader_main_toolbar.cpp
Normal file
@ -0,0 +1,151 @@
|
||||
#include "yacreader_main_toolbar.h"
|
||||
|
||||
#include <QPainter>
|
||||
#include <QHBoxLayout>
|
||||
#include <QToolButton>
|
||||
#include <QLabel>
|
||||
#include <QResizeEvent>
|
||||
#include <QPaintEvent>
|
||||
#include <QAction>
|
||||
|
||||
YACReaderMainToolBar::YACReaderMainToolBar(QWidget *parent) :
|
||||
QWidget(parent)
|
||||
{
|
||||
mainLayout = new QHBoxLayout;
|
||||
|
||||
currentFolder = new QLabel(this);
|
||||
//currentFolder->setAlignment(Qt::AlignCenter);
|
||||
currentFolder->setStyleSheet(" QLabel {color:#404040; font-size:22px; font-weight:bold;}");
|
||||
|
||||
QFont f=currentFolder->font();
|
||||
f.setStyleStrategy(QFont::PreferAntialias);
|
||||
currentFolder->setFont(f);
|
||||
|
||||
QString qToolButtonStyleSheet = "QToolButton {border:none;}";
|
||||
|
||||
backButton = new QToolButton();
|
||||
backButton->setStyleSheet(qToolButtonStyleSheet);
|
||||
|
||||
|
||||
forwardButton = new QToolButton();
|
||||
forwardButton->setStyleSheet(qToolButtonStyleSheet);
|
||||
forwardButton->setDisabled(true);
|
||||
|
||||
settingsButton = new QToolButton();
|
||||
settingsButton->setStyleSheet(qToolButtonStyleSheet);
|
||||
settingsButton->setIconSize(QSize(24,24));
|
||||
|
||||
serverButton = new QToolButton();
|
||||
serverButton->setStyleSheet(qToolButtonStyleSheet);
|
||||
serverButton->setIconSize(QSize(17,24));
|
||||
|
||||
|
||||
helpButton = new QToolButton();
|
||||
helpButton->setStyleSheet(qToolButtonStyleSheet);
|
||||
helpButton->setIconSize(QSize(14,25));
|
||||
|
||||
toggleComicsViewButton = new QToolButton;
|
||||
toggleComicsViewButton->setStyleSheet(qToolButtonStyleSheet);
|
||||
toggleComicsViewButton->setIconSize(QSize(24,24));
|
||||
|
||||
fullscreenButton = new QToolButton();
|
||||
fullscreenButton->setStyleSheet(qToolButtonStyleSheet);
|
||||
fullscreenButton->setIconSize(QSize(24,24));
|
||||
|
||||
mainLayout->setMargin(0);
|
||||
mainLayout->setSpacing(0);
|
||||
|
||||
mainLayout->addSpacing(12);
|
||||
mainLayout->addWidget(backButton,0,Qt::AlignVCenter);
|
||||
addDivider();
|
||||
mainLayout->addWidget(forwardButton,0,Qt::AlignVCenter);
|
||||
|
||||
mainLayout->addSpacing(34);
|
||||
mainLayout->addWidget(settingsButton,0,Qt::AlignVCenter);
|
||||
addWideDivider();
|
||||
mainLayout->addWidget(serverButton,0,Qt::AlignVCenter);
|
||||
addWideDivider();
|
||||
mainLayout->addWidget(helpButton,0,Qt::AlignVCenter);
|
||||
|
||||
mainLayout->addStretch();
|
||||
|
||||
mainLayout->addWidget(toggleComicsViewButton,0,Qt::AlignVCenter);
|
||||
addWideDivider();
|
||||
mainLayout->addWidget(fullscreenButton,0,Qt::AlignVCenter);
|
||||
|
||||
setLayout(mainLayout);
|
||||
|
||||
setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Fixed);
|
||||
}
|
||||
|
||||
|
||||
QSize YACReaderMainToolBar::sizeHint() const
|
||||
{
|
||||
return QSize(200,40);
|
||||
}
|
||||
|
||||
void YACReaderMainToolBar::setSearchWidget(QWidget *w)
|
||||
{
|
||||
addWideDivider();
|
||||
mainLayout->addWidget(w,0,Qt::AlignVCenter);
|
||||
}
|
||||
|
||||
void YACReaderMainToolBar::paintEvent(QPaintEvent * event)
|
||||
{
|
||||
Q_UNUSED(event);
|
||||
|
||||
QPainter painter (this);
|
||||
painter.fillRect(0,0,width(),height(),QColor("#F0F0F0"));
|
||||
}
|
||||
|
||||
void YACReaderMainToolBar::resizeEvent(QResizeEvent * event)
|
||||
{
|
||||
//210px x 2 = 420px
|
||||
int freeWidth = event->size().width() - 420;
|
||||
int maxLabelWidth = freeWidth>=0?freeWidth:0;
|
||||
currentFolder->setMaximumWidth(maxLabelWidth);
|
||||
currentFolder->adjustSize();
|
||||
|
||||
QFontMetrics metrix(currentFolder->font());
|
||||
QString clippedText = metrix.elidedText(currentFolderName, Qt::ElideRight, maxLabelWidth);
|
||||
|
||||
currentFolder->setText(clippedText);
|
||||
currentFolder->adjustSize();
|
||||
currentFolder->move((event->size().width()-currentFolder->width())/2,(event->size().height()-currentFolder->height())/2);
|
||||
}
|
||||
|
||||
void YACReaderMainToolBar::addDivider()
|
||||
{
|
||||
QPixmap img(":/images/main_toolbar/divider.png");
|
||||
QLabel * divider = new QLabel();
|
||||
divider->setPixmap(img);
|
||||
|
||||
mainLayout->addSpacing(5);
|
||||
mainLayout->addWidget(divider,0,Qt::AlignVCenter);
|
||||
mainLayout->addSpacing(5);
|
||||
}
|
||||
|
||||
void YACReaderMainToolBar::addWideDivider()
|
||||
{
|
||||
mainLayout->addSpacing(3);
|
||||
addDivider();
|
||||
mainLayout->addSpacing(3);
|
||||
}
|
||||
|
||||
void YACReaderMainToolBar::setCurrentFolderName(const QString & name)
|
||||
{
|
||||
currentFolder->setText(name);
|
||||
currentFolderName = name;
|
||||
currentFolder->adjustSize();
|
||||
|
||||
int freeWidth = size().width() - 420;
|
||||
int maxLabelWidth = freeWidth>=0?freeWidth:0;
|
||||
currentFolder->setMaximumWidth(maxLabelWidth);
|
||||
|
||||
QFontMetrics metrix(currentFolder->font());
|
||||
QString clippedText = metrix.elidedText(currentFolderName, Qt::ElideRight, maxLabelWidth);
|
||||
|
||||
currentFolder->setText(clippedText);
|
||||
currentFolder->adjustSize();
|
||||
currentFolder->move((width()-currentFolder->width())/2,(height()-currentFolder->height())/2);
|
||||
}
|
Reference in New Issue
Block a user