Added config option legacy_gl_widget for using QGLWidget, it fixed most of the issues in fullscreen mode. CONFIG+=legacy_gl_widget should be used in Windows until QTBUG-41883 will be fixed

This commit is contained in:
Luis Ángel San Martín
2015-02-21 10:29:26 +01:00
parent 17d9d268eb
commit 28f6329c92
8 changed files with 2014 additions and 123 deletions

View File

@ -16,9 +16,15 @@ INCLUDEPATH += ../common \
DEFINES += SERVER_RELEASE NOMINMAX YACREADER_LIBRARY
CONFIG(no_opengl) {
DEFINES += NO_OPENGL
DEFINES += NO_OPENGL
}
CONFIG(legacy_gl_widget) {
INCLUDEPATH += ../common/gl_legacy \
} else {
INCLUDEPATH += ../common/gl \
}
win32 {
LIBS += -L../dependencies/poppler/lib -loleaut32 -lole32 -lshell32
@ -135,8 +141,13 @@ HEADERS += comic_flow.h \
../common/scroll_management.h
!CONFIG(no_opengl) {
HEADERS += ../common/yacreader_flow_gl.h
}
CONFIG(legacy_gl_widget) {
message("using legacy YACReaderFlowGL (QGLWidget) header")
HEADERS += ../common/gl_legacy/yacreader_flow_gl.h
} else {
HEADERS += ../common/gl/yacreader_flow_gl.h
}
}
SOURCES += comic_flow.cpp \
create_library_dialog.cpp \
@ -198,7 +209,12 @@ SOURCES += comic_flow.cpp \
../common/scroll_management.cpp
!CONFIG(no_opengl) {
SOURCES += ../common/yacreader_flow_gl.cpp
CONFIG(legacy_gl_widget) {
message("using legacy YACReaderFlowGL (QGLWidget) source code")
SOURCES += ../common/gl_legacy/yacreader_flow_gl.cpp
} else {
SOURCES += ../common/gl/yacreader_flow_gl.cpp
}
}

View File

@ -2085,64 +2085,6 @@ void LibraryWindow::toggleFullScreen()
fullscreen = !fullscreen;
}
#ifdef Q_OS_WIN
//QTBUG-41883
void LibraryWindow::toFullScreen()
{
_size = size();
_pos = pos();
hide();
fromMaximized = this->isMaximized();
sideBar->hide();
libraryToolBar->hide();
comicsView->toFullScreen();
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
showNormal();
#ifdef Q_OS_MAC
QTimer * timer = new QTimer();
timer->setSingleShot(true);
timer->start();
connect(timer,SIGNAL(timeout()),libraryToolBar,SLOT(show()));
connect(timer,SIGNAL(timeout()),timer,SLOT(deleteLater()));
#else
libraryToolBar->show();
#endif
show();
}
#else
void LibraryWindow::toFullScreen()
{
fromMaximized = this->isMaximized();
@ -2178,8 +2120,6 @@ void LibraryWindow::toNormal()
}
#endif
void LibraryWindow::setSearchFilter(const YACReader::SearchModifiers modifier, QString filter)
{
if(!filter.isEmpty())