From 65a50fb6125f7883bca1494e658fd476100bdb81 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 12 May 2013 15:40:21 +0200 Subject: [PATCH] a?adidos 2 estados para importWidget (import y update) a?adido bot?n que muestra las opciones avanzadas de YACReaderFlowGL en los di?logos de opciones v6.2.0 rc1 --- YACReader/options_dialog.cpp | 2 +- YACReaderLibrary/images.qrc | 1 + YACReaderLibrary/import_widget.cpp | 20 ++++++++++++++++--- YACReaderLibrary/import_widget.h | 5 +++++ YACReaderLibrary/library_window.cpp | 2 ++ YACReaderLibrary/options_dialog.cpp | 2 ++ common/custom_widgets.cpp | 29 +++++++++++++++++++++++----- common/custom_widgets.h | 4 ++++ common/yacreader_global.h | 2 +- files/about.html | 2 +- files/about_es_ES.html | 2 +- images/importingIcon.png | Bin 5746 -> 3162 bytes images/updatingIcon.png | Bin 0 -> 5746 bytes 13 files changed, 59 insertions(+), 12 deletions(-) create mode 100644 images/updatingIcon.png diff --git a/YACReader/options_dialog.cpp b/YACReader/options_dialog.cpp index e3d6e782..2969ba1e 100644 --- a/YACReader/options_dialog.cpp +++ b/YACReader/options_dialog.cpp @@ -145,7 +145,7 @@ OptionsDialog::OptionsDialog(QWidget * parent) gl->vSyncCheck->hide(); //restoreOptions(); //load options - resize(400,0); + //resize(400,0); setModal (true); setWindowTitle(tr("Options")); diff --git a/YACReaderLibrary/images.qrc b/YACReaderLibrary/images.qrc index e032e785..f285426d 100644 --- a/YACReaderLibrary/images.qrc +++ b/YACReaderLibrary/images.qrc @@ -61,6 +61,7 @@ ../images/noLibrariesIcon.png ../images/noLibrariesLine.png ../images/importingIcon.png + ../images/updatingIcon.png ../images/importTopCoversDecoration.png ../images/importBottomCoversDecoration.png ../images/glowLine.png diff --git a/YACReaderLibrary/import_widget.cpp b/YACReaderLibrary/import_widget.cpp index b9f175bf..90945479 100644 --- a/YACReaderLibrary/import_widget.cpp +++ b/YACReaderLibrary/import_widget.cpp @@ -97,7 +97,7 @@ ImportWidget::ImportWidget(QWidget *parent) : setPalette(p); QPixmap icon(":/images/importingIcon.png"); - QLabel * iconLabel = new QLabel(); + iconLabel = new QLabel(); iconLabel->setPixmap(icon); /*QPixmap line(":/images/noLibrariesLine.png"); @@ -106,9 +106,9 @@ ImportWidget::ImportWidget(QWidget *parent) : YACReaderActivityIndicatorWidget * activityIndicator = new YACReaderActivityIndicatorWidget(); - QLabel * text = new QLabel(""+tr("Importing comics")+""); + text = new QLabel(""+tr("Importing comics")+""); text->setStyleSheet("QLabel {font-size:25px;font-weight:bold;}"); - QLabel * textDescription = new QLabel(""+tr("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.")+""); + textDescription = new QLabel(""+tr("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.")+""); textDescription->setWordWrap(true); textDescription->setMaximumWidth(330); currentComicLabel = new QLabel("..."); @@ -331,6 +331,20 @@ void ImportWidget::clear() i = 0; } +void ImportWidget::setImportLook() +{ + iconLabel->setPixmap(QPixmap(":/images/importingIcon.png")); + text->setText(""+tr("Importing comics")+""); + textDescription->setText(""+tr("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.")+""); +} + +void ImportWidget::setUpdateLook() +{ + iconLabel->setPixmap(QPixmap(":/images/updatingIcon.png")); + text->setText(""+tr("Updating the library")+""); + textDescription->setText(""+tr("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.")+""); +} + void ImportWidget::clearScene() { diff --git a/YACReaderLibrary/import_widget.h b/YACReaderLibrary/import_widget.h index c8927fd0..5597a1e3 100644 --- a/YACReaderLibrary/import_widget.h +++ b/YACReaderLibrary/import_widget.h @@ -23,9 +23,14 @@ public slots: void addCoverTest(); void finishedUpdatingCover(); void clearScene(); + void setImportLook(); + void setUpdateLook(); private: QLabel * currentComicLabel; QLabel * portadasLabel; + QLabel * iconLabel; + QLabel * text; + QLabel * textDescription; QGraphicsView * coversView; QGraphicsScene * coversScene; int previousWidth; diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index 08c7dc45..72e1f39b 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -1019,6 +1019,7 @@ void LibraryWindow::create(QString source, QString dest, QString name) _lastAdded = name; _sourceLastAdded = source; + importWidget->setImportLook(); showImportingWidget(); } @@ -1115,6 +1116,7 @@ void LibraryWindow::saveLibraries() void LibraryWindow::updateLibrary() { //updateLibraryDialog->show(); + importWidget->setUpdateLook(); showImportingWidget(); QString currentLibrary = selectedLibrary->currentText(); diff --git a/YACReaderLibrary/options_dialog.cpp b/YACReaderLibrary/options_dialog.cpp index 959f8550..05571f62 100644 --- a/YACReaderLibrary/options_dialog.cpp +++ b/YACReaderLibrary/options_dialog.cpp @@ -43,6 +43,8 @@ OptionsDialog::OptionsDialog(QWidget * parent) //resize(200,0); setModal (true); setWindowTitle(tr("Options")); + + this->layout()->setSizeConstraint(QLayout::SetFixedSize); } diff --git a/common/custom_widgets.cpp b/common/custom_widgets.cpp index e39f7d59..7e75d668 100644 --- a/common/custom_widgets.cpp +++ b/common/custom_widgets.cpp @@ -605,16 +605,19 @@ YACReaderOptionsDialog::YACReaderOptionsDialog(QWidget * parent) :QDialog(parent) { + sw = new YACReaderFlowConfigWidget(this); + gl = new YACReaderGLFlowConfigWidget(this); + accept = new QPushButton(tr("Save")); cancel = new QPushButton(tr("Cancel")); + + cancel->setDefault(true); + connect(accept,SIGNAL(clicked()),this,SLOT(saveOptions())); connect(cancel,SIGNAL(clicked()),this,SLOT(restoreOptions())); connect(cancel,SIGNAL(clicked()),this,SLOT(close())); - sw = new YACReaderFlowConfigWidget(this); - - gl = new YACReaderGLFlowConfigWidget(this); - useGL = useGL = new QCheckBox(tr("Use hardware acceleration (restart needed)")); + useGL = new QCheckBox(tr("Use hardware acceleration (restart needed)")); connect(useGL,SIGNAL(stateChanged(int)),this,SLOT(saveUseGL(int))); //sw CONNECTIONS @@ -1026,11 +1029,17 @@ YACReaderGLFlowConfigWidget::YACReaderGLFlowConfigWidget(QWidget * parent /* = 0 opt5->addStretch(); opt5->addWidget(lOpt5); vbox->addLayout(opt5); + + showAdvancedOptions = new QPushButton(tr("Show advanced settings")); + showAdvancedOptions->setCheckable(true); + connect(showAdvancedOptions,SIGNAL(toggled(bool)),this,SLOT(avancedOptionToogled(bool))); + + vbox->addWidget(showAdvancedOptions,0,Qt::AlignRight); groupBox->setLayout(vbox); //OPTIONS------------------------------------------------------------------ - QGroupBox *optionsGroupBox = new QGroupBox(tr("Custom:")); + optionsGroupBox = new QGroupBox(tr("Custom:")); xRotation = new YACReaderSpinSliderWidget(this); xRotation->setText(tr("View angle")); @@ -1122,6 +1131,8 @@ YACReaderGLFlowConfigWidget::YACReaderGLFlowConfigWidget(QWidget * parent /* = 0 groupBoxesLayout->addWidget(groupBox); groupBoxesLayout->addWidget(optionsGroupBox); + optionsGroupBox->hide(); + QHBoxLayout * performanceSliderLayout = new QHBoxLayout; performanceSliderLayout->addWidget(new QLabel(tr("Low Performance"))); performanceSliderLayout->addWidget(performanceSlider = new QSlider(Qt::Horizontal)); @@ -1161,6 +1172,14 @@ YACReaderGLFlowConfigWidget::YACReaderGLFlowConfigWidget(QWidget * parent /* = 0 } +void YACReaderGLFlowConfigWidget::avancedOptionToogled(bool show) +{ + if(show) + optionsGroupBox->show(); + else + optionsGroupBox->hide(); +} + void YACReaderGLFlowConfigWidget::setValues(Preset preset) { xRotation->setValue(preset.cfRX); diff --git a/common/custom_widgets.h b/common/custom_widgets.h index 7040f4b1..0e13fd2c 100644 --- a/common/custom_widgets.h +++ b/common/custom_widgets.h @@ -313,8 +313,12 @@ public: QSlider * performanceSlider; QCheckBox * vSyncCheck; + QPushButton * showAdvancedOptions; + QGroupBox *optionsGroupBox; + public slots: void setValues(Preset preset); + void avancedOptionToogled(bool show); }; ////////////////////////////////////////////////////////////////////////// diff --git a/common/yacreader_global.h b/common/yacreader_global.h index 228f736f..b13c8e00 100644 --- a/common/yacreader_global.h +++ b/common/yacreader_global.h @@ -1,7 +1,7 @@ #ifndef __YACREADER_GLOBAL_H #define __YACREADER_GLOBAL_H -#define VERSION "6.0.0" +#define VERSION "6.2.0" #define PATH "PATH" #define MAG_GLASS_SIZE "MAG_GLASS_SIZE" diff --git a/files/about.html b/files/about.html index 6aaa2acf..8cf89a2c 100644 --- a/files/about.html +++ b/files/about.html @@ -4,7 +4,7 @@


-YACReader - Yet Another Comic Reader - version 6.0.0
+YACReader - Yet Another Comic Reader - version 6.2.0
by Luis Ángel San Martín Rodríguez
e-mail: luisangelsm@gmail.com
web site: http://www.yacreader.com
diff --git a/files/about_es_ES.html b/files/about_es_ES.html index ff3f7d5f..b1e74210 100644 --- a/files/about_es_ES.html +++ b/files/about_es_ES.html @@ -4,7 +4,7 @@


-YACReader - Yet Another Comic Reader - versión 6.0.0
+YACReader - Yet Another Comic Reader - versión 6.2.0
por Luis Ángel San Martín Rodríguez
e-mail: luisangelsm@gmail.com
Página web: http://www.yacreader.com
diff --git a/images/importingIcon.png b/images/importingIcon.png index bb4f6afbd16ee5fe23f275702fe3a7051a6356f5..a53e768aa73cd187397361cbc34938a80afeb247 100644 GIT binary patch delta 3156 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