a?adido widget de presentaci?n cuando el usuario no tiene ninguna biblioteca

This commit is contained in:
Luis Ángel San Martín 2013-05-05 10:54:15 +02:00
parent 31bd2a3c1b
commit add44dddfb
10 changed files with 130 additions and 7 deletions

View File

@ -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()));

View File

@ -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)

View File

@ -4,6 +4,7 @@
<file>../images/folder.png</file>
<file>../images/help.png</file>
<file>../images/icon.png</file>
<file>../images/iconLibrary.png</file>
<file>../images/new.png</file>
<file>../images/openLibrary.png</file>
<file>../images/removeLibrary.png</file>
@ -57,5 +58,7 @@
<file>../images/comicTar.png</file>
<file>../images/comic7z.png</file>
<file>../images/serverConfigBackground.png</file>
<file>../images/noLibrariesIcon.png</file>
<file>../images/noLibrariesLine.png</file>
</qresource>
</RCC>

View File

@ -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);
}

View File

@ -11,6 +11,7 @@
#include <QComboBox>
#include <QThread>
#include <QFileInfoList>
#include <QStackedWidget>
#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<QString,QString> getLibraries(){return libraries;};

View File

@ -0,0 +1,57 @@
#include "no_libraries_widget.h"
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QPushButton>
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("<font color=\"#565959\">You don't have any library yet</font>"));
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()));
}

View File

@ -0,0 +1,19 @@
#ifndef NO_LIBRARIES_WIDGET_H
#define NO_LIBRARIES_WIDGET_H
#include <QWidget>
class NoLibrariesWidget : public QWidget
{
Q_OBJECT
public:
explicit NoLibrariesWidget(QWidget *parent = 0);
signals:
void createNewLibrary();
void addExistingLibrary();
public slots:
};
#endif // NO_LIBRARIES_WIDGET_H

View File

@ -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"

BIN
images/noLibrariesIcon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
images/noLibrariesLine.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 B