Fix comic properties dialog sizing

This commit is contained in:
Luis Ángel San Martín 2022-09-19 18:07:39 +02:00
parent cfc5b57213
commit 1596aa2347

View File

@ -5,7 +5,6 @@
#include "yacreader_field_edit.h" #include "yacreader_field_edit.h"
#include "yacreader_field_plain_text_edit.h" #include "yacreader_field_plain_text_edit.h"
#include "db_helper.h" #include "db_helper.h"
//#include "yacreader_busy_widget.h"
#include <QHBoxLayout> #include <QHBoxLayout>
#include <QApplication> #include <QApplication>
@ -26,7 +25,6 @@ using namespace YACReader;
PropertiesDialog::PropertiesDialog(QWidget *parent) PropertiesDialog::PropertiesDialog(QWidget *parent)
: QDialog(parent), updated(false) : QDialog(parent), updated(false)
{ {
createCoverBox(); createCoverBox();
createGeneralInfoBox(); createGeneralInfoBox();
createAuthorsBox(); createAuthorsBox();
@ -35,43 +33,47 @@ PropertiesDialog::PropertiesDialog(QWidget *parent)
createPlotBox(); createPlotBox();
createTabBar(); createTabBar();
auto rootLayout = new QGridLayout;
cover = new QLabel();
mainLayout = new QGridLayout; mainLayout = new QGridLayout;
// mainLayout->addWidget(coverBox,0,0); mainLayout->addWidget(tabBar, 0, 0);
mainLayout->addWidget(tabBar, 0, 1); mainLayout->addWidget(buttonBox, 1, 0, Qt::AlignBottom);
mainLayout->setColumnStretch(1, 1);
/*mainLayout->addWidget(authorsBox,1,1);
mainLayout->addWidget(publishingBox,2,1);*/
mainLayout->addWidget(buttonBox, 1, 1, Qt::AlignBottom);
mainWidget = new QWidget(this); mainWidget = new QWidget(this);
mainWidget->setAutoFillBackground(true); mainWidget->setAutoFillBackground(true);
mainWidget->setFixedSize(470, 444);
mainWidget->setLayout(mainLayout); mainWidget->setLayout(mainLayout);
mainLayout->setSizeConstraint(QLayout::SetMinimumSize);
rootLayout->setHorizontalSpacing(0);
rootLayout->setVerticalSpacing(0);
rootLayout->addWidget(cover, 0, 0, Qt::AlignTop);
rootLayout->addWidget(mainWidget, 0, 1);
rootLayout->setColumnStretch(0, 0);
rootLayout->setColumnStretch(1, 1);
QScreen *screen = parent != nullptr ? parent->window()->screen() : nullptr; QScreen *screen = parent != nullptr ? parent->window()->screen() : nullptr;
if (screen == nullptr) { if (screen == nullptr) {
screen = QApplication::screens().constFirst(); screen = QApplication::screens().constFirst();
} }
int heightDesktopResolution = screen->geometry().height(); this->setLayout(rootLayout);
int widthDesktopResolution = screen->geometry().width();
int sHeight, sWidth; this->setContentsMargins(0, 0, 0, 0);
sHeight = static_cast<int>(heightDesktopResolution * 0.65); rootLayout->setContentsMargins(0, 0, 0, 0);
sWidth = static_cast<int>(sHeight * 1.4);
// setCover(QPixmap(":/images/notCover.png")); rootLayout->addWidget(coverBox, 0, 0, Qt::AlignBottom);
this->move(QPoint((widthDesktopResolution - sWidth) / 2, ((heightDesktopResolution - sHeight) - 40) / 2));
setModal(true); setModal(true);
setFixedSize(sizeHint()); setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
mainWidget->move(280, 0);
} }
QSize PropertiesDialog::sizeHint() const QSize PropertiesDialog::sizeHint() const
{ {
return QSize(750, 444); return QSize(800, 444);
} }
void PropertiesDialog::createTabBar() void PropertiesDialog::createTabBar()
@ -85,13 +87,13 @@ void PropertiesDialog::createTabBar()
void PropertiesDialog::createCoverBox() void PropertiesDialog::createCoverBox()
{ {
coverBox = new QWidget(this); coverBox = new QWidget;
auto layout = new QHBoxLayout; auto layout = new QHBoxLayout;
QLabel *label = new QLabel(tr("Cover page")); QLabel *label = new QLabel(tr("Cover page"));
label->setStyleSheet("QLabel {color: white; font-weight:bold; font-size:14px;}"); label->setStyleSheet("QLabel {color: white; font-weight:bold; font-size:14px;}");
layout->addWidget(label); layout->addWidget(label, 0, Qt::AlignVCenter);
layout->addStretch(); layout->addStretch();
coverPageEdit = new YACReaderFieldEdit(); coverPageEdit = new YACReaderFieldEdit();
@ -107,40 +109,29 @@ void PropertiesDialog::createCoverBox()
coverPageNumberLabel->setStyleSheet("QLabel {color: white; font-weight:bold; font-size:14px;}"); coverPageNumberLabel->setStyleSheet("QLabel {color: white; font-weight:bold; font-size:14px;}");
layout->addWidget(showPreviousCoverPageButton); layout->addWidget(showPreviousCoverPageButton, 0, Qt::AlignVCenter);
layout->addSpacing(5); layout->addSpacing(5);
layout->addWidget(coverPageNumberLabel); layout->addWidget(coverPageNumberLabel, 0, Qt::AlignVCenter);
layout->addSpacing(5); layout->addSpacing(5);
layout->addWidget(showNextCoverPageButton); layout->addWidget(showNextCoverPageButton, 0, Qt::AlignVCenter);
coverPageEdit->setStyleSheet("QLineEdit {border:none;}"); coverPageEdit->setStyleSheet("QLineEdit {border:none;}");
layout->setSpacing(0); layout->setSpacing(0);
coverBox->setLayout(layout); coverBox->setLayout(layout);
coverBox->setFixedWidth(280); coverBox->setFixedHeight(28);
coverBox->move(0, 444 - 28); layout->setContentsMargins(5, 2, 5, 2);
layout->setContentsMargins(5, 4, 5, 0);
// busyIndicator = new YACReaderBusyWidget(this); QPalette p(palette());
// busyIndicator->move((280-busyIndicator->width())/2,(444-busyIndicator->height()-28)/2); p.setColor(QPalette::Window, QColor(0, 0, 0, 200));
// busyIndicator->hide(); coverBox->setAutoFillBackground(true);
coverBox->setPalette(p);
connect(showPreviousCoverPageButton, &QAbstractButton::clicked, this, &PropertiesDialog::loadPreviousCover); connect(showPreviousCoverPageButton, &QAbstractButton::clicked, this, &PropertiesDialog::loadPreviousCover);
connect(showNextCoverPageButton, &QAbstractButton::clicked, this, &PropertiesDialog::loadNextCover); connect(showNextCoverPageButton, &QAbstractButton::clicked, this, &PropertiesDialog::loadNextCover);
} }
QFrame *createLine()
{
QFrame *line = new QFrame();
line->setObjectName(QString::fromUtf8("line"));
// line->setGeometry(QRect(320, 150, 118, 3));
line->setFrameShape(QFrame::HLine);
line->setFrameShadow(QFrame::Sunken);
return line;
}
void PropertiesDialog::createGeneralInfoBox() void PropertiesDialog::createGeneralInfoBox()
{ {
generalInfoBox = new QWidget; generalInfoBox = new QWidget;
@ -148,7 +139,7 @@ void PropertiesDialog::createGeneralInfoBox()
auto generalInfoLayout = new QFormLayout; auto generalInfoLayout = new QFormLayout;
generalInfoLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow); generalInfoLayout->setFieldGrowthPolicy(QFormLayout::ExpandingFieldsGrow);
// generalInfoLayout->setRowWrapPolicy(QFormLayout::WrapAllRows); generalInfoLayout->setRowWrapPolicy(QFormLayout::WrapAllRows);
generalInfoLayout->addRow(tr("Title:"), title = new YACReaderFieldEdit()); generalInfoLayout->addRow(tr("Title:"), title = new YACReaderFieldEdit());
auto number = new QHBoxLayout; auto number = new QHBoxLayout;
@ -185,9 +176,6 @@ void PropertiesDialog::createGeneralInfoBox()
generalInfoLayout->addRow(tr("Size:"), size = new QLabel("size")); generalInfoLayout->addRow(tr("Size:"), size = new QLabel("size"));
// generalInfoLayout->addRow(tr("Comic Vine link:"), comicVineLink = new QLabel("..."));
// generalInfoLayout->addRow(bottom);
auto main = new QVBoxLayout; auto main = new QVBoxLayout;
main->addLayout(generalInfoLayout); main->addLayout(generalInfoLayout);
main->addStretch(); main->addStretch();
@ -203,7 +191,6 @@ void PropertiesDialog::createAuthorsBox()
auto authorsLayout = new QVBoxLayout; auto authorsLayout = new QVBoxLayout;
// authorsLayout->setRowWrapPolicy(QFormLayout::WrapAllRows);
auto h1 = new QHBoxLayout; auto h1 = new QHBoxLayout;
auto vl1 = new QVBoxLayout; auto vl1 = new QVBoxLayout;
auto vr1 = new QVBoxLayout; auto vr1 = new QVBoxLayout;
@ -213,8 +200,7 @@ void PropertiesDialog::createAuthorsBox()
vr1->addWidget(new QLabel(tr("Penciller(s):"))); vr1->addWidget(new QLabel(tr("Penciller(s):")));
vr1->addWidget(penciller = new YACReaderFieldPlainTextEdit()); vr1->addWidget(penciller = new YACReaderFieldPlainTextEdit());
h1->addLayout(vr1); h1->addLayout(vr1);
// authorsLayout->addRow(tr("Writer(s):"), new YACReaderFieldPlainTextEdit());
// authorsLayout->addRow(tr("Penciller(s):"), new YACReaderFieldPlainTextEdit());
auto h2 = new QHBoxLayout; auto h2 = new QHBoxLayout;
auto vl2 = new QVBoxLayout; auto vl2 = new QVBoxLayout;
auto vr2 = new QVBoxLayout; auto vr2 = new QVBoxLayout;
@ -225,9 +211,6 @@ void PropertiesDialog::createAuthorsBox()
vr2->addWidget(colorist = new YACReaderFieldPlainTextEdit()); vr2->addWidget(colorist = new YACReaderFieldPlainTextEdit());
h2->addLayout(vr2); h2->addLayout(vr2);
// authorsLayout->addRow(tr("Inker(s):"), new YACReaderFieldPlainTextEdit());
// authorsLayout->addRow(tr("Colorist(s):"), new YACReaderFieldPlainTextEdit());
auto h3 = new QHBoxLayout; auto h3 = new QHBoxLayout;
auto vl3 = new QVBoxLayout; auto vl3 = new QVBoxLayout;
auto vr3 = new QVBoxLayout; auto vr3 = new QVBoxLayout;
@ -237,8 +220,6 @@ void PropertiesDialog::createAuthorsBox()
vr3->addWidget(new QLabel(tr("Cover Artist(s):"))); vr3->addWidget(new QLabel(tr("Cover Artist(s):")));
vr3->addWidget(coverArtist = new YACReaderFieldPlainTextEdit()); vr3->addWidget(coverArtist = new YACReaderFieldPlainTextEdit());
h3->addLayout(vr3); h3->addLayout(vr3);
// authorsLayout->addRow(tr("Letterer(es):"), new YACReaderFieldPlainTextEdit());
// authorsLayout->addRow(tr("Cover Artist(s):"), new YACReaderFieldPlainTextEdit());
authorsLayout->addLayout(h1); authorsLayout->addLayout(h1);
authorsLayout->addLayout(h2); authorsLayout->addLayout(h2);
@ -628,11 +609,15 @@ void PropertiesDialog::setMultipleCover()
last = last.scaledToHeight(444, Qt::SmoothTransformation); last = last.scaledToHeight(444, Qt::SmoothTransformation);
coverImage = QPixmap::fromImage(blurred(last.toImage(), QRect(0, 0, last.width(), last.height()), 15)); coverImage = QPixmap::fromImage(blurred(last.toImage(), QRect(0, 0, last.width(), last.height()), 15));
cover->setPixmap(coverImage);
} }
void PropertiesDialog::setCover(const QPixmap &coverI) void PropertiesDialog::setCover(const QPixmap &coverI)
{ {
coverImage = coverI.scaledToHeight(444, Qt::SmoothTransformation); coverImage = coverI.scaledToHeight(444, Qt::SmoothTransformation);
cover->setPixmap(coverImage);
} }
void PropertiesDialog::setFilename(const QString &nameString) void PropertiesDialog::setFilename(const QString &nameString)
@ -895,16 +880,6 @@ void PropertiesDialog::closeEvent(QCloseEvent *e)
void PropertiesDialog::paintEvent(QPaintEvent *event) void PropertiesDialog::paintEvent(QPaintEvent *event)
{ {
QDialog::paintEvent(event); QDialog::paintEvent(event);
QPainter p(this);
p.drawPixmap(0, 0, coverImage);
// QPixmap shadow(":/images/social_dialog/shadow.png");
// p.drawPixmap(280-shadow.width(),0,shadow.width(),444,shadow);
p.drawLine(279, 0, 279, 444);
if (sequentialEditing)
p.fillRect(0, 444 - 28, 280, 28, QColor(0, 0, 0, 153));
} }
void PropertiesDialog::updateCoverPageNumberLabel(int n) void PropertiesDialog::updateCoverPageNumberLabel(int n)
@ -929,7 +904,6 @@ void PropertiesDialog::loadNextCover()
} }
showPreviousCoverPageButton->setEnabled(true); showPreviousCoverPageButton->setEnabled(true);
// busyIndicator->show();
if (current + 1 != comics[currentComicIndex].info.coverPage) if (current + 1 != comics[currentComicIndex].info.coverPage)
coverChanged = true; coverChanged = true;
else else
@ -952,7 +926,6 @@ void PropertiesDialog::loadPreviousCover()
} }
showNextCoverPageButton->setEnabled(true); showNextCoverPageButton->setEnabled(true);
// busyIndicator->show();
if (current - 1 != comics[currentComicIndex].info.coverPage.toInt()) if (current - 1 != comics[currentComicIndex].info.coverPage.toInt())
coverChanged = true; coverChanged = true;
else else