From f65a59090b71d82d904acba1fcaa1fa4fef7d946 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luis=20=C3=81ngel=20San=20Mart=C3=ADn?= Date: Sat, 24 Jan 2015 18:23:29 +0100 Subject: [PATCH] fixed fullscreen mode (QTBUG-41883) --- YACReader/main_window_viewer.cpp | 32 +++++++++++++++++++++------ YACReader/main_window_viewer.h | 4 ++++ YACReaderLibrary/grid_comics_view.cpp | 7 ++++-- YACReaderLibrary/grid_comics_view.h | 1 + YACReaderLibrary/library_window.cpp | 21 +++++++++++++++++- YACReaderLibrary/library_window.h | 4 ++++ 6 files changed, 59 insertions(+), 10 deletions(-) diff --git a/YACReader/main_window_viewer.cpp b/YACReader/main_window_viewer.cpp index b38aa87f..782f4b33 100644 --- a/YACReader/main_window_viewer.cpp +++ b/YACReader/main_window_viewer.cpp @@ -888,35 +888,53 @@ void MainWindowViewer::toggleFullScreen() Configuration::getConfiguration().setFullScreen(fullscreen = !fullscreen); } +//QTBUG-41883 void MainWindowViewer::toFullScreen() { + _size = size(); + _pos = pos(); + hide(); fromMaximized = this->isMaximized(); hideToolBars(); viewer->hide(); 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(); if(viewer->magnifyingGlassIsVisible()) viewer->showMagnifyingGlass(); + + show(); } +//QTBUG-41883 void MainWindowViewer::toNormal() { + hide(); //show all viewer->hide(); viewer->fullscreen = false;//TODO, change by the right use of windowState(); //viewer->hideMagnifyingGlass(); - if(fromMaximized) - showMaximized(); - else - showNormal(); + setWindowFlags(windowFlags() & ~Qt::WindowStaysOnTopHint); + setWindowState(windowState() & ~Qt::WindowFullScreen); + resize(_size); + move(_pos); + if(fromMaximized) + showMaximized(); + else + showNormal(); if(Configuration::getConfiguration().getShowToolbars()) showToolBars(); - viewer->show(); + viewer->show(); if(viewer->magnifyingGlassIsVisible()) - viewer->showMagnifyingGlass(); + viewer->showMagnifyingGlass(); + + show(); } void MainWindowViewer::toggleToolBars() { diff --git a/YACReader/main_window_viewer.h b/YACReader/main_window_viewer.h index 9ef481b7..255acadf 100644 --- a/YACReader/main_window_viewer.h +++ b/YACReader/main_window_viewer.h @@ -74,6 +74,10 @@ class EditShortcutsDialog; bool toolbars; bool alwaysOnTop; bool fromMaximized; + + //QTBUG-41883 + QSize _size; + QPoint _pos; QString currentDirectory; QString currentDirectoryImgDest; diff --git a/YACReaderLibrary/grid_comics_view.cpp b/YACReaderLibrary/grid_comics_view.cpp index cc6b30cf..fa7440e7 100644 --- a/YACReaderLibrary/grid_comics_view.cpp +++ b/YACReaderLibrary/grid_comics_view.cpp @@ -37,8 +37,9 @@ GridComicsView::~GridComicsView() void GridComicsView::setToolBar(QToolBar *toolBar) { -QLOG_INFO() << "setToolBar"; -static_cast(this->layout())->insertWidget(1,toolBar); + QLOG_INFO() << "setToolBar"; + static_cast(this->layout())->insertWidget(1,toolBar); + this->toolbar = toolBar; } void GridComicsView::setModel(ComicModel *model) @@ -136,11 +137,13 @@ void GridComicsView::scrollTo(const QModelIndex &mi, QAbstractItemView::ScrollHi void GridComicsView::toFullScreen() { QLOG_INFO() << "toFullScreen"; + toolbar->hide(); } void GridComicsView::toNormal() { QLOG_INFO() << "toNormal"; + toolbar->show(); } void GridComicsView::updateConfig(QSettings *settings) diff --git a/YACReaderLibrary/grid_comics_view.h b/YACReaderLibrary/grid_comics_view.h index 2153deab..6aa41938 100644 --- a/YACReaderLibrary/grid_comics_view.h +++ b/YACReaderLibrary/grid_comics_view.h @@ -60,6 +60,7 @@ protected slots: void requestedContextMenu(const QPoint & point); private: + QToolBar * toolbar; QItemSelectionModel * _selectionModel; QQuickView *view; QWidget *container; diff --git a/YACReaderLibrary/library_window.cpp b/YACReaderLibrary/library_window.cpp index b1ba4868..ca53121c 100644 --- a/YACReaderLibrary/library_window.cpp +++ b/YACReaderLibrary/library_window.cpp @@ -2083,8 +2083,13 @@ void LibraryWindow::toggleFullScreen() fullscreen = !fullscreen; } +//QTBUG-41883 void LibraryWindow::toFullScreen() { + _size = size(); + _pos = pos(); + hide(); + fromMaximized = this->isMaximized(); sideBar->hide(); @@ -2092,15 +2097,27 @@ void LibraryWindow::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() { + hide(); + sideBar->show(); comicsView->toNormal(); + setWindowFlags(windowFlags() & ~Qt::WindowStaysOnTopHint); + setWindowState(windowState() & ~Qt::WindowFullScreen); + resize(_size); + move(_pos); + if(fromMaximized) showMaximized(); else @@ -2116,6 +2133,8 @@ void LibraryWindow::toNormal() libraryToolBar->show(); #endif + show(); + } void LibraryWindow::setSearchFilter(const YACReader::SearchModifiers modifier, QString filter) diff --git a/YACReaderLibrary/library_window.h b/YACReaderLibrary/library_window.h index e1ffc928..69ae896c 100644 --- a/YACReaderLibrary/library_window.h +++ b/YACReaderLibrary/library_window.h @@ -290,6 +290,10 @@ private: ComicsViewStatus comicsViewStatus; + //QTBUG-41883 + QSize _size; + QPoint _pos; + protected: virtual void closeEvent ( QCloseEvent * event ); public: