fixed searching icon layout in flow view

This commit is contained in:
Luis Ángel San Martín
2014-10-05 21:17:07 +02:00
parent 06411a1130
commit 01cf4e40bb
3 changed files with 30 additions and 14 deletions

View File

@ -5,6 +5,8 @@
#include "comic_flow_widget.h" #include "comic_flow_widget.h"
#include "QsLog.h" #include "QsLog.h"
#include "QStackedWidget"
ClassicComicsView::ClassicComicsView(QWidget *parent) ClassicComicsView::ClassicComicsView(QWidget *parent)
:ComicsView(parent),searching(false) :ComicsView(parent),searching(false)
{ {
@ -39,7 +41,13 @@ ClassicComicsView::ClassicComicsView(QWidget *parent)
//layout----------------------------------------------- //layout-----------------------------------------------
sVertical = new QSplitter(Qt::Vertical); //spliter derecha sVertical = new QSplitter(Qt::Vertical); //spliter derecha
sVertical->addWidget(comicFlow); stack = new QStackedWidget;
stack->addWidget(comicFlow);
setupSearchingIcon();
stack->addWidget(searchingIcon);
sVertical->addWidget(stack);
comics = new QWidget; comics = new QWidget;
QVBoxLayout * comicsLayout = new QVBoxLayout; QVBoxLayout * comicsLayout = new QVBoxLayout;
comicsLayout->setSpacing(0); comicsLayout->setSpacing(0);
@ -63,7 +71,6 @@ ClassicComicsView::ClassicComicsView(QWidget *parent)
connect(tableView, SIGNAL(comicRated(int,QModelIndex)), this, SIGNAL(comicRated(int,QModelIndex))); connect(tableView, SIGNAL(comicRated(int,QModelIndex)), this, SIGNAL(comicRated(int,QModelIndex)));
connect(comicFlow, SIGNAL(selected(uint)), this, SIGNAL(selected(uint))); connect(comicFlow, SIGNAL(selected(uint)), this, SIGNAL(selected(uint)));
connect(tableView->horizontalHeader(), SIGNAL(sectionMoved(int,int,int)), this, SLOT(saveTableHeadersStatus())); connect(tableView->horizontalHeader(), SIGNAL(sectionMoved(int,int,int)), this, SLOT(saveTableHeadersStatus()));
layout->addWidget(sVertical); layout->addWidget(sVertical);
setLayout(layout); setLayout(layout);
@ -76,7 +83,7 @@ ClassicComicsView::ClassicComicsView(QWidget *parent)
if(settings->contains(COMICS_VIEW_FLOW_SPLITTER_STATUS)) if(settings->contains(COMICS_VIEW_FLOW_SPLITTER_STATUS))
sVertical->restoreState(settings->value(COMICS_VIEW_FLOW_SPLITTER_STATUS).toByteArray()); sVertical->restoreState(settings->value(COMICS_VIEW_FLOW_SPLITTER_STATUS).toByteArray());
setupSearchingIcon();
} }
void ClassicComicsView::setToolBar(QToolBar *toolBar) void ClassicComicsView::setToolBar(QToolBar *toolBar)
@ -199,16 +206,13 @@ void ClassicComicsView::enableFilterMode(bool enabled)
if(enabled) if(enabled)
{ {
comicFlow->clear(); comicFlow->clear();
comicFlow->setMinimumHeight(150);
if(previousSplitterStatus.isEmpty()) if(previousSplitterStatus.isEmpty())
previousSplitterStatus = sVertical->saveState(); previousSplitterStatus = sVertical->saveState();
sVertical->setSizes(QList<int> () << 150 << 10000000); sVertical->setSizes(QList<int> () << 100 << 10000000);
showSearchingIcon(); showSearchingIcon();
}else }else
{ {
searchingIcon->setHidden(true); hideSearchingIcon();
comicFlow->setMinimumHeight(0);
sVertical->restoreState(previousSplitterStatus); sVertical->restoreState(previousSplitterStatus);
previousSplitterStatus.clear(); previousSplitterStatus.clear();
} }
@ -280,24 +284,30 @@ void ClassicComicsView::setupSearchingIcon()
{ {
searchingIcon = new QWidget(comicFlow); searchingIcon = new QWidget(comicFlow);
QHBoxLayout * h = new QHBoxLayout;
QPixmap p(":/images/searching_icon.png"); QPixmap p(":/images/searching_icon.png");
QLabel * l = new QLabel(searchingIcon); QLabel * l = new QLabel(searchingIcon);
l->setPixmap(p); l->setPixmap(p);
l->setFixedSize(p.size());
h->addWidget(l,0,Qt::AlignCenter);
searchingIcon->setLayout(h);
searchingIcon->setFixedSize(p.size()); QPalette pal(searchingIcon->palette());
pal.setColor(QPalette::Background, Qt::black);
searchingIcon->setAutoFillBackground(true);
searchingIcon->setPalette(pal);
hideSearchingIcon(); hideSearchingIcon();
} }
void ClassicComicsView::showSearchingIcon() void ClassicComicsView::showSearchingIcon()
{ {
searchingIcon->move((comicFlow->width()-searchingIcon->width())/2,(comicFlow->height()-searchingIcon->height())/2); stack->setCurrentWidget(searchingIcon);
searchingIcon->setHidden(false);
} }
void ClassicComicsView::hideSearchingIcon() void ClassicComicsView::hideSearchingIcon()
{ {
searchingIcon->setHidden(true); stack->setCurrentWidget(comicFlow);
} }

View File

@ -11,6 +11,7 @@ class QSplitter;
class ComicFlowWidget; class ComicFlowWidget;
class QToolBar; class QToolBar;
class TableModel; class TableModel;
class QStackedWidget;
class ClassicComicsView : public ComicsView class ClassicComicsView : public ComicsView
{ {
@ -49,12 +50,15 @@ private:
QSettings * settings; QSettings * settings;
void closeEvent ( QCloseEvent * event ); void closeEvent ( QCloseEvent * event );
QStackedWidget * stack;
QByteArray previousSplitterStatus; QByteArray previousSplitterStatus;
QWidget * searchingIcon; QWidget * searchingIcon;
bool searching; bool searching;
void setupSearchingIcon(); void setupSearchingIcon();
void showSearchingIcon(); void showSearchingIcon();
void hideSearchingIcon(); void hideSearchingIcon();
void updateSearchingIconPosition();
}; };
#endif // CLASSIC_COMICS_VIEW_H #endif // CLASSIC_COMICS_VIEW_H

View File

@ -1277,7 +1277,8 @@ void LibraryWindow::reloadCovers()
if(!searchEdit->text().isEmpty()) if(!searchEdit->text().isEmpty())
{ {
loadCoversFromCurrentModel(); loadCoversFromCurrentModel();
return; comicsView->enableFilterMode(true);
return;
} }
if(foldersView->selectionModel()->selectedRows().length()>0) if(foldersView->selectionModel()->selectedRows().length()>0)
@ -1627,6 +1628,7 @@ void LibraryWindow::setSearchFilter(QString filter)
comicsModel->setupModelData(filter, foldersModel->getDatabase()); comicsModel->setupModelData(filter, foldersModel->getDatabase());
comicsView->enableFilterMode(true); comicsView->enableFilterMode(true);
foldersView->expandAll(); foldersView->expandAll();
//loadCoversFromCurrentModel();
} }
} }
} }