From add44dddfb7b2a06fa45d45a8f1df2db2ef00d73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sun, 5 May 2013 10:54:15 +0200 Subject: [PATCH] a?adido widget de presentaci?n cuando el usuario no tiene ninguna biblioteca --- YACReader/main_window_viewer.cpp | 2 + YACReaderLibrary/YACReaderLibrary.pro | 6 ++- YACReaderLibrary/images.qrc | 3 ++ YACReaderLibrary/library_window.cpp | 35 +++++++++++++- YACReaderLibrary/library_window.h | 7 +++ YACReaderLibrary/no_libraries_widget.cpp | 57 +++++++++++++++++++++++ YACReaderLibrary/no_libraries_widget.h | 19 ++++++++ generateVS2010Projects.bat | 8 ++-- images/noLibrariesIcon.png | Bin 0 -> 3840 bytes images/noLibrariesLine.png | Bin 0 -> 238 bytes 10 files changed, 130 insertions(+), 7 deletions(-) create mode 100644 YACReaderLibrary/no_libraries_widget.cpp create mode 100644 YACReaderLibrary/no_libraries_widget.h create mode 100644 images/noLibrariesIcon.png create mode 100644 images/noLibrariesLine.png diff --git a/YACReader/main_window_viewer.cpp b/YACReader/main_window_viewer.cpp index 939b9e66..0a68295b 100644 --- a/YACReader/main_window_viewer.cpp +++ b/YACReader/main_window_viewer.cpp @@ -35,6 +35,8 @@ void MainWindowViewer::setupUI() { setWindowIcon(QIcon(":/images/icon.png")); + setUnifiedTitleAndToolBarOnMac(true); + viewer = new Viewer(this); connect(viewer,SIGNAL(reset()),this,SLOT(disableActions())); diff --git a/YACReaderLibrary/YACReaderLibrary.pro b/YACReaderLibrary/YACReaderLibrary.pro index 4b5039e9..d7d643e9 100644 --- a/YACReaderLibrary/YACReaderLibrary.pro +++ b/YACReaderLibrary/YACReaderLibrary.pro @@ -72,7 +72,8 @@ HEADERS += comic_flow.h \ ../common/qnaturalsorting.h \ ../common/yacreader_flow_gl.h \ ../common/yacreader_global.h \ - ../common/onstart_flow_selection_dialog.h + ../common/onstart_flow_selection_dialog.h \ + no_libraries_widget.h SOURCES += comic_flow.cpp \ create_library_dialog.cpp \ @@ -106,7 +107,8 @@ SOURCES += comic_flow.cpp \ ../common/custom_widgets.cpp \ ../common/qnaturalsorting.cpp \ ../common/yacreader_flow_gl.cpp \ - ../common/onstart_flow_selection_dialog.cpp + ../common/onstart_flow_selection_dialog.cpp \ + no_libraries_widget.cpp include(./server/server.pri) diff --git a/YACReaderLibrary/images.qrc b/YACReaderLibrary/images.qrc index 74f3e540..f01ea5aa 100644 --- a/YACReaderLibrary/images.qrc +++ b/YACReaderLibrary/images.qrc @@ -4,6 +4,7 @@ ../images/folder.png ../images/help.png ../images/icon.png + ../images/iconLibrary.png ../images/new.png ../images/openLibrary.png ../images/removeLibrary.png @@ -57,5 +58,7 @@ ../images/comicTar.png ../images/comic7z.png ../images/serverConfigBackground.png + ../images/noLibrariesIcon.png + ../images/noLibrariesLine.png \ No newline at end of file diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index 196ea82d..82ce9445 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -21,6 +21,7 @@ #include "data_base_management.h" #include "yacreader_global.h" #include "onstart_flow_selection_dialog.h" +#include "no_libraries_widget.h" // @@ -29,10 +30,23 @@ LibraryWindow::LibraryWindow() { setupUI(); loadLibraries(); + + if(libraries.size()==0) + { + showNoLibrariesWidget(); + } + else + { + hideNoLibrariesWidget(); + } } void LibraryWindow::setupUI() { + setWindowIcon(QIcon(":/images/iconLibrary.png")); + + setUnifiedTitleAndToolBarOnMac(true); + libraryCreator = new LibraryCreator(); packageManager = new PackageManager(); @@ -195,7 +209,9 @@ void LibraryWindow::doLayout() sHorizontal->addWidget(sVertical); sHorizontal->setStretchFactor(0,0); sHorizontal->setStretchFactor(1,1); - setCentralWidget(sHorizontal); + mainWidget = new QStackedWidget(this); + mainWidget->addWidget(sHorizontal); + setCentralWidget(mainWidget); //FINAL LAYOUT------------------------------------------------------------- fullScreenToolTip = new QLabel(comicFlow); @@ -207,6 +223,12 @@ void LibraryWindow::doLayout() fullScreenToolTip->adjustSize(); comicFlow->setFocus(Qt::OtherFocusReason); + + noLibrariesWidget = new NoLibrariesWidget(); + mainWidget->addWidget(noLibrariesWidget); + + connect(noLibrariesWidget,SIGNAL(createNewLibrary()),this,SLOT(createLibrary())); + connect(noLibrariesWidget,SIGNAL(addExistingLibrary()),this,SLOT(showAddLibrary())); } void LibraryWindow::doDialogs() @@ -668,6 +690,7 @@ void LibraryWindow::loadLibrary(const QString & name) { if(libraries.size()>0) //si hay bibliotecas... { + hideNoLibrariesWidget(); QString path=libraries.value(name)+"/.yacreaderlibrary"; QDir d; //TODO change this by static methods (utils class?? with delTree for example) QString dbVersion; @@ -768,6 +791,7 @@ void LibraryWindow::loadLibrary(const QString & name) else //en caso de que no exista ninguna biblioteca se desactivan los botones pertinentes { disableAllActions(); + showNoLibrariesWidget(); } } @@ -1497,4 +1521,13 @@ QString LibraryWindow::getFolderName(const QString & libraryName, qulonglong id) void LibraryWindow::closeEvent ( QCloseEvent * event ) { settings->setValue(MAIN_WINDOW_GEOMETRY, saveGeometry()); +} + +void LibraryWindow::showNoLibrariesWidget() +{ + mainWidget->setCurrentIndex(1); +} +void LibraryWindow::hideNoLibrariesWidget() +{ + mainWidget->setCurrentIndex(0); } \ No newline at end of file diff --git a/YACReaderLibrary/library_window.h b/YACReaderLibrary/library_window.h index 55e267c8..2d8005eb 100644 --- a/YACReaderLibrary/library_window.h +++ b/YACReaderLibrary/library_window.h @@ -11,6 +11,7 @@ #include #include #include +#include #include "create_library_dialog.h" #include "add_library_dialog.h" @@ -30,6 +31,7 @@ #include "tablemodel.h" #include "treeitem.h" #include "server_config_dialog.h" +#include "no_libraries_widget.h" class LibraryWindow : public QMainWindow { @@ -79,6 +81,9 @@ private: QLabel * fullScreenToolTip; YACReaderIconProvider fip; + QStackedWidget * mainWidget; + NoLibrariesWidget * noLibrariesWidget; + bool fetching; int i; @@ -211,6 +216,8 @@ public: void showExportComicsInfo(); void showImportComicsInfo(); void asignNumbers(); + void showNoLibrariesWidget(); + void hideNoLibrariesWidget(); //server interface QMap getLibraries(){return libraries;}; diff --git a/YACReaderLibrary/no_libraries_widget.cpp b/YACReaderLibrary/no_libraries_widget.cpp new file mode 100644 index 00000000..e40b4b47 --- /dev/null +++ b/YACReaderLibrary/no_libraries_widget.cpp @@ -0,0 +1,57 @@ +#include "no_libraries_widget.h" +#include + +#include +#include +#include + +NoLibrariesWidget::NoLibrariesWidget(QWidget *parent) : + QWidget(parent) +{ + setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding); + + setStyleSheet("{color:FFFFFF;}"); + + QPixmap icon(":/images/noLibrariesIcon.png"); + QLabel * iconLabel = new QLabel(); + iconLabel->setPixmap(icon); + + QPixmap line(":/images/noLibrariesLine.png"); + QLabel * lineLabel = new QLabel(); + lineLabel->setPixmap(line); + + QLabel * text = new QLabel(tr("You don't have any library yet")); + text->setStyleSheet("QLabel {font-size:25px;font-weight:bold;}"); + + QPushButton * createButton = new QPushButton(tr("create your first library")); + createButton->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); + QPushButton * addButton = new QPushButton(tr("add an existing one")); + addButton->setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Preferred); + + QVBoxLayout * layout = new QVBoxLayout(this); + QHBoxLayout * buttonLayout = new QHBoxLayout(); + + layout->setAlignment(Qt::AlignHCenter); + + buttonLayout->addSpacing(100); + buttonLayout->addWidget(createButton); + layout->addSpacing(25); + buttonLayout->addWidget(addButton); + buttonLayout->addSpacing(100); + + layout->addStretch(); + layout->addWidget(iconLabel,0,Qt::AlignHCenter); + layout->addSpacing(10); + layout->addWidget(text,0,Qt::AlignHCenter); + layout->addSpacing(8); + layout->addWidget(lineLabel,0,Qt::AlignHCenter); + layout->addSpacing(12); + layout->addLayout(buttonLayout,0); + layout->addSpacing(150); + layout->addStretch(); + + connect(createButton,SIGNAL(clicked()),this,SIGNAL(createNewLibrary())); + connect(addButton,SIGNAL(clicked()),this,SIGNAL(addExistingLibrary())); + + +} diff --git a/YACReaderLibrary/no_libraries_widget.h b/YACReaderLibrary/no_libraries_widget.h new file mode 100644 index 00000000..0727f968 --- /dev/null +++ b/YACReaderLibrary/no_libraries_widget.h @@ -0,0 +1,19 @@ +#ifndef NO_LIBRARIES_WIDGET_H +#define NO_LIBRARIES_WIDGET_H + +#include + +class NoLibrariesWidget : public QWidget +{ + Q_OBJECT +public: + explicit NoLibrariesWidget(QWidget *parent = 0); + +signals: + void createNewLibrary(); + void addExistingLibrary(); +public slots: + +}; + +#endif // NO_LIBRARIES_WIDGET_H diff --git a/generateVS2010Projects.bat b/generateVS2010Projects.bat index b0e748cf..b815ee74 100644 --- a/generateVS2010Projects.bat +++ b/generateVS2010Projects.bat @@ -1,10 +1,10 @@ echo Setting up a Qt environment... -set QTDIR=D:\Desarrollo\Qt\4.8.3 -echo -- QTDIR set to D:\Desarrollo\Qt\4.8.3 -set PATH=D:\Desarrollo\Qt\4.8.3\bin;%PATH% -echo -- Added D:\Desarrollo\Qt\4.8.3\bin to PATH +set QTDIR=D:\Desarrollo\Qt\4.8.4 +echo -- QTDIR set to D:\Desarrollo\Qt\4.8.4 +set PATH=D:\Desarrollo\Qt\4.8.4\bin;%PATH% +echo -- Added D:\Desarrollo\Qt\4.8.4\bin to PATH set QMAKESPEC=win32-msvc2010 echo -- QMAKESPEC set to "win32-msvc2010" diff --git a/images/noLibrariesIcon.png b/images/noLibrariesIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..5f15c2c71b20a40b15c78010caae852c9bd1506e GIT binary patch literal 3840 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 literal 0 HcmV?d00001