fixed fullscreen mode (QTBUG-41883)

This commit is contained in:
Luis Ángel San Martín 2015-01-24 18:23:29 +01:00
parent 92b58f70b6
commit f65a59090b
6 changed files with 59 additions and 10 deletions

View File

@ -888,35 +888,53 @@ void MainWindowViewer::toggleFullScreen()
Configuration::getConfiguration().setFullScreen(fullscreen = !fullscreen); Configuration::getConfiguration().setFullScreen(fullscreen = !fullscreen);
} }
//QTBUG-41883
void MainWindowViewer::toFullScreen() void MainWindowViewer::toFullScreen()
{ {
_size = size();
_pos = pos();
hide();
fromMaximized = this->isMaximized(); fromMaximized = this->isMaximized();
hideToolBars(); hideToolBars();
viewer->hide(); viewer->hide();
viewer->fullscreen = true;//TODO, change by the right use of windowState(); viewer->fullscreen = true;//TODO, change by the right use of windowState();
showFullScreen();
setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
setWindowState(windowState() | Qt::WindowFullScreen);
resize(windowHandle()->screen()->size()-QSize(0,1));
viewer->show(); viewer->show();
if(viewer->magnifyingGlassIsVisible()) if(viewer->magnifyingGlassIsVisible())
viewer->showMagnifyingGlass(); viewer->showMagnifyingGlass();
show();
} }
//QTBUG-41883
void MainWindowViewer::toNormal() void MainWindowViewer::toNormal()
{ {
hide();
//show all //show all
viewer->hide(); viewer->hide();
viewer->fullscreen = false;//TODO, change by the right use of windowState(); viewer->fullscreen = false;//TODO, change by the right use of windowState();
//viewer->hideMagnifyingGlass(); //viewer->hideMagnifyingGlass();
if(fromMaximized) setWindowFlags(windowFlags() & ~Qt::WindowStaysOnTopHint);
showMaximized(); setWindowState(windowState() & ~Qt::WindowFullScreen);
else resize(_size);
showNormal(); move(_pos);
if(fromMaximized)
showMaximized();
else
showNormal();
if(Configuration::getConfiguration().getShowToolbars()) if(Configuration::getConfiguration().getShowToolbars())
showToolBars(); showToolBars();
viewer->show(); viewer->show();
if(viewer->magnifyingGlassIsVisible()) if(viewer->magnifyingGlassIsVisible())
viewer->showMagnifyingGlass(); viewer->showMagnifyingGlass();
show();
} }
void MainWindowViewer::toggleToolBars() void MainWindowViewer::toggleToolBars()
{ {

View File

@ -74,6 +74,10 @@ class EditShortcutsDialog;
bool toolbars; bool toolbars;
bool alwaysOnTop; bool alwaysOnTop;
bool fromMaximized; bool fromMaximized;
//QTBUG-41883
QSize _size;
QPoint _pos;
QString currentDirectory; QString currentDirectory;
QString currentDirectoryImgDest; QString currentDirectoryImgDest;

View File

@ -37,8 +37,9 @@ GridComicsView::~GridComicsView()
void GridComicsView::setToolBar(QToolBar *toolBar) void GridComicsView::setToolBar(QToolBar *toolBar)
{ {
QLOG_INFO() << "setToolBar"; QLOG_INFO() << "setToolBar";
static_cast<QVBoxLayout *>(this->layout())->insertWidget(1,toolBar); static_cast<QVBoxLayout *>(this->layout())->insertWidget(1,toolBar);
this->toolbar = toolBar;
} }
void GridComicsView::setModel(ComicModel *model) void GridComicsView::setModel(ComicModel *model)
@ -136,11 +137,13 @@ void GridComicsView::scrollTo(const QModelIndex &mi, QAbstractItemView::ScrollHi
void GridComicsView::toFullScreen() void GridComicsView::toFullScreen()
{ {
QLOG_INFO() << "toFullScreen"; QLOG_INFO() << "toFullScreen";
toolbar->hide();
} }
void GridComicsView::toNormal() void GridComicsView::toNormal()
{ {
QLOG_INFO() << "toNormal"; QLOG_INFO() << "toNormal";
toolbar->show();
} }
void GridComicsView::updateConfig(QSettings *settings) void GridComicsView::updateConfig(QSettings *settings)

View File

@ -60,6 +60,7 @@ protected slots:
void requestedContextMenu(const QPoint & point); void requestedContextMenu(const QPoint & point);
private: private:
QToolBar * toolbar;
QItemSelectionModel * _selectionModel; QItemSelectionModel * _selectionModel;
QQuickView *view; QQuickView *view;
QWidget *container; QWidget *container;

View File

@ -2083,8 +2083,13 @@ void LibraryWindow::toggleFullScreen()
fullscreen = !fullscreen; fullscreen = !fullscreen;
} }
//QTBUG-41883
void LibraryWindow::toFullScreen() void LibraryWindow::toFullScreen()
{ {
_size = size();
_pos = pos();
hide();
fromMaximized = this->isMaximized(); fromMaximized = this->isMaximized();
sideBar->hide(); sideBar->hide();
@ -2092,15 +2097,27 @@ void LibraryWindow::toFullScreen()
comicsView->toFullScreen(); comicsView->toFullScreen();
showFullScreen(); setWindowFlags(windowFlags() | Qt::WindowStaysOnTopHint);
setWindowState(windowState() | Qt::WindowFullScreen);
resize(windowHandle()->screen()->size()-QSize(0,1));
show();
} }
//QTBUG-41883
void LibraryWindow::toNormal() void LibraryWindow::toNormal()
{ {
hide();
sideBar->show(); sideBar->show();
comicsView->toNormal(); comicsView->toNormal();
setWindowFlags(windowFlags() & ~Qt::WindowStaysOnTopHint);
setWindowState(windowState() & ~Qt::WindowFullScreen);
resize(_size);
move(_pos);
if(fromMaximized) if(fromMaximized)
showMaximized(); showMaximized();
else else
@ -2116,6 +2133,8 @@ void LibraryWindow::toNormal()
libraryToolBar->show(); libraryToolBar->show();
#endif #endif
show();
} }
void LibraryWindow::setSearchFilter(const YACReader::SearchModifiers modifier, QString filter) void LibraryWindow::setSearchFilter(const YACReader::SearchModifiers modifier, QString filter)

View File

@ -290,6 +290,10 @@ private:
ComicsViewStatus comicsViewStatus; ComicsViewStatus comicsViewStatus;
//QTBUG-41883
QSize _size;
QPoint _pos;
protected: protected:
virtual void closeEvent ( QCloseEvent * event ); virtual void closeEvent ( QCloseEvent * event );
public: public: