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:
137
YACReader/goto_flow_toolbar.cpp
Normal file
137
YACReader/goto_flow_toolbar.cpp
Normal file
@ -0,0 +1,137 @@
|
||||
#include "goto_flow_toolbar.h"
|
||||
|
||||
#include <QtWidgets>
|
||||
|
||||
#include "configuration.h"
|
||||
|
||||
GoToFlowToolBar::GoToFlowToolBar(QWidget * parent)
|
||||
:QStackedWidget(parent)
|
||||
{
|
||||
//elementos interactivos
|
||||
QWidget * normal = new QWidget(this); // container widget
|
||||
QWidget * quickNavi = new QWidget(this); // container widget
|
||||
addWidget(normal);
|
||||
addWidget(quickNavi);
|
||||
QHBoxLayout * normalLayout = new QHBoxLayout(normal);
|
||||
QHBoxLayout * naviLayout = new QHBoxLayout(quickNavi);
|
||||
normal->setLayout(normalLayout);
|
||||
quickNavi->setLayout(naviLayout);
|
||||
|
||||
slider = new QSlider(Qt::Horizontal,this);
|
||||
slider->setStyleSheet(
|
||||
"QSlider::groove:horizontal {"
|
||||
" border: 1px solid #22FFFFFF;"
|
||||
" border-radius: 1px;"
|
||||
" background: #77000000;"
|
||||
" margin: 2px 0;"
|
||||
" padding: 1px;"
|
||||
"}"
|
||||
"QSlider::handle:horizontal {"
|
||||
" background: #55FFFFFF;"
|
||||
" width: 48px;"
|
||||
" border-radius: 1px;"
|
||||
"}"
|
||||
);
|
||||
|
||||
connect(slider, &QSlider::valueChanged, this, [&](int v) { emit(setCenter(v)); });
|
||||
|
||||
pageHint = new QLabel("<b>" + tr("Page : ") + "</b>",this);
|
||||
v = new QIntValidator(this);
|
||||
v->setBottom(1);
|
||||
edit = new QLineEdit(this);
|
||||
edit->setValidator(v);
|
||||
edit->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
|
||||
edit->setStyleSheet("QLineEdit {border: 1px solid #77000000; background: #55000000; color: white; padding: 3px 5px 5px 5px; margin: 13px 5px 12px 5px; font-weight:bold}");
|
||||
QPixmap p(":/images/imgEdit.png");
|
||||
edit->setFixedSize(54,50);
|
||||
edit->setAttribute(Qt::WA_MacShowFocusRect,false);
|
||||
//edit->setAttribute(Qt::WA_LayoutUsesWidgetRect,true);
|
||||
//edit->resize(QSize(54,50));
|
||||
edit->setSizePolicy(QSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed));
|
||||
//edit->setAutoFillBackground(false);
|
||||
connect(edit,SIGNAL(returnPressed()),this,SLOT(goTo()));
|
||||
|
||||
QString centerButtonCSS = "QPushButton {background-image: url(:/images/imgCenterSlide.png); width: 100%; height:100%; background-repeat: none; border: none;} "
|
||||
"QPushButton:focus { border: none; outline: none;}"
|
||||
"QPushButton:pressed {background-image: url(:/images/imgCenterSlidePressed.png); width: 100%; height:100%; background-repeat: none; border: none;} ";
|
||||
centerButton = new QPushButton(this);
|
||||
//centerButton->setIcon(QIcon(":/images/center.png"));
|
||||
centerButton->setStyleSheet(centerButtonCSS);
|
||||
centerButton->setFixedSize(26,50);
|
||||
centerButton->setAttribute(Qt::WA_LayoutUsesWidgetRect,true);
|
||||
connect(centerButton,SIGNAL(clicked()),this,SLOT(centerSlide()));
|
||||
|
||||
QString goToButtonCSS = "QPushButton {background-image: url(:/images/imgGoToSlide.png); width: 100%; height:100%; background-repeat: none; border: none;} "
|
||||
"QPushButton:focus { border: none; outline: none;}"
|
||||
"QPushButton:pressed {background-image: url(:/images/imgGoToSlidePressed.png); width: 100%; height:100%; background-repeat: none; border: none;} ";
|
||||
goToButton = new QPushButton(this);
|
||||
//goToButton->setIcon(QIcon(":/images/goto.png"));
|
||||
goToButton->setStyleSheet(goToButtonCSS);
|
||||
goToButton->setFixedSize(32,50);
|
||||
goToButton->setAttribute(Qt::WA_LayoutUsesWidgetRect,true);
|
||||
|
||||
connect(goToButton,SIGNAL(clicked()),this,SLOT(goTo()));
|
||||
|
||||
normalLayout->setMargin(0);
|
||||
normalLayout->setSpacing(0);
|
||||
normalLayout->addStretch();
|
||||
normalLayout->addWidget(pageHint);
|
||||
normalLayout->addWidget(edit);
|
||||
normalLayout->addWidget(centerButton);
|
||||
normalLayout->addWidget(goToButton);
|
||||
normalLayout->addStretch();
|
||||
|
||||
naviLayout->setContentsMargins(5, 0, 0, 0);
|
||||
naviLayout->setSpacing(2);
|
||||
naviLayout->addWidget(slider);
|
||||
naviLayout->addWidget(goToButton);
|
||||
|
||||
updateOptions();
|
||||
|
||||
setFixedHeight(50);
|
||||
}
|
||||
|
||||
void GoToFlowToolBar::paintEvent(QPaintEvent *)
|
||||
{
|
||||
QPainter painter(this);
|
||||
|
||||
#ifdef YACREADER_LEGACY_FLOW_GL
|
||||
painter.fillRect(0,0,width(),height(),QColor("#FF000000"));
|
||||
#else
|
||||
painter.fillRect(0,0,width(),height(),QColor("#99000000"));
|
||||
#endif
|
||||
}
|
||||
|
||||
void GoToFlowToolBar::setPage(int pageNumber)
|
||||
{
|
||||
edit->setText(QString::number(pageNumber+1));
|
||||
slider->setValue(pageNumber);
|
||||
}
|
||||
|
||||
void GoToFlowToolBar::setTop(int numPages)
|
||||
{
|
||||
v->setTop(numPages);
|
||||
slider->setMaximum(numPages-1); // min is 0
|
||||
}
|
||||
|
||||
void GoToFlowToolBar::goTo()
|
||||
{
|
||||
if(edit->text().toInt()!=0)
|
||||
emit(goTo(edit->text().toInt()-1));
|
||||
}
|
||||
|
||||
void GoToFlowToolBar::centerSlide()
|
||||
{
|
||||
if(edit->text().toInt()!=0)
|
||||
emit(setCenter(edit->text().toInt()-1));
|
||||
}
|
||||
|
||||
void GoToFlowToolBar::updateOptions()
|
||||
{
|
||||
if (Configuration::getConfiguration().getQuickNaviMode())
|
||||
setCurrentIndex(1);
|
||||
else
|
||||
setCurrentIndex(0);
|
||||
|
||||
slider->setInvertedAppearance(Configuration::getConfiguration().getDoubleMangaPage());
|
||||
}
|
Reference in New Issue
Block a user