Fix fullscreened widget not finding main window
This commit is contained in:
@@ -46,6 +46,7 @@ class Tab(QtWidgets.QWidget):
|
|||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.metadata = metadata # Save progress data into this dictionary
|
self.metadata = metadata # Save progress data into this dictionary
|
||||||
self.are_we_doing_images_only = self.metadata['images_only']
|
self.are_we_doing_images_only = self.metadata['images_only']
|
||||||
|
self.main_window = self.window()
|
||||||
|
|
||||||
self.masterLayout = QtWidgets.QHBoxLayout(self)
|
self.masterLayout = QtWidgets.QHBoxLayout(self)
|
||||||
self.horzLayout = QtWidgets.QSplitter(self)
|
self.horzLayout = QtWidgets.QSplitter(self)
|
||||||
@@ -71,13 +72,13 @@ class Tab(QtWidgets.QWidget):
|
|||||||
# instead of a QTextBrowser
|
# instead of a QTextBrowser
|
||||||
if self.are_we_doing_images_only: # Boolean
|
if self.are_we_doing_images_only: # Boolean
|
||||||
self.contentView = PliantQGraphicsView(
|
self.contentView = PliantQGraphicsView(
|
||||||
self.metadata['path'], self.window(), self)
|
self.metadata['path'], self.main_window, self)
|
||||||
self.contentView.loadImage(chapter_content)
|
self.contentView.loadImage(chapter_content)
|
||||||
else:
|
else:
|
||||||
self.contentView = PliantQTextBrowser(self.window(), self)
|
self.contentView = PliantQTextBrowser(self.main_window, self)
|
||||||
|
|
||||||
relative_path_root = os.path.join(
|
relative_path_root = os.path.join(
|
||||||
self.window().temp_dir.path(), self.metadata['hash'])
|
self.main_window.temp_dir.path(), self.metadata['hash'])
|
||||||
relative_paths = []
|
relative_paths = []
|
||||||
for i in os.walk(relative_path_root):
|
for i in os.walk(relative_path_root):
|
||||||
|
|
||||||
@@ -156,15 +157,15 @@ class Tab(QtWidgets.QWidget):
|
|||||||
def update_last_accessed_time(self):
|
def update_last_accessed_time(self):
|
||||||
self.metadata['last_accessed'] = QtCore.QDateTime().currentDateTime()
|
self.metadata['last_accessed'] = QtCore.QDateTime().currentDateTime()
|
||||||
|
|
||||||
start_index = self.window().lib_ref.view_model.index(0, 0)
|
start_index = self.main_window.lib_ref.view_model.index(0, 0)
|
||||||
matching_item = self.window().lib_ref.view_model.match(
|
matching_item = self.main_window.lib_ref.view_model.match(
|
||||||
start_index,
|
start_index,
|
||||||
QtCore.Qt.UserRole + 6,
|
QtCore.Qt.UserRole + 6,
|
||||||
self.metadata['hash'],
|
self.metadata['hash'],
|
||||||
1, QtCore.Qt.MatchExactly)
|
1, QtCore.Qt.MatchExactly)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
self.window().lib_ref.view_model.setData(
|
self.main_window.lib_ref.view_model.setData(
|
||||||
matching_item[0], self.metadata['last_accessed'], QtCore.Qt.UserRole + 12)
|
matching_item[0], self.metadata['last_accessed'], QtCore.Qt.UserRole + 12)
|
||||||
except IndexError: # The file has been deleted
|
except IndexError: # The file has been deleted
|
||||||
pass
|
pass
|
||||||
@@ -179,8 +180,8 @@ class Tab(QtWidgets.QWidget):
|
|||||||
return
|
return
|
||||||
|
|
||||||
if switch_widgets:
|
if switch_widgets:
|
||||||
previous_widget = self.window().tabWidget.currentWidget()
|
previous_widget = self.main_window.tabWidget.currentWidget()
|
||||||
self.window().tabWidget.setCurrentWidget(self)
|
self.main_window.tabWidget.setCurrentWidget(self)
|
||||||
|
|
||||||
scroll_value = self.metadata['position']['scroll_value']
|
scroll_value = self.metadata['position']['scroll_value']
|
||||||
if search_data:
|
if search_data:
|
||||||
@@ -217,7 +218,7 @@ class Tab(QtWidgets.QWidget):
|
|||||||
pass
|
pass
|
||||||
|
|
||||||
if switch_widgets:
|
if switch_widgets:
|
||||||
self.window().tabWidget.setCurrentWidget(previous_widget)
|
self.main_window.tabWidget.setCurrentWidget(previous_widget)
|
||||||
|
|
||||||
def generate_position(self, is_read=False):
|
def generate_position(self, is_read=False):
|
||||||
total_chapters = len(self.metadata['content'])
|
total_chapters = len(self.metadata['content'])
|
||||||
@@ -284,16 +285,16 @@ class Tab(QtWidgets.QWidget):
|
|||||||
self.contentView.setWindowFlags(QtCore.Qt.Window)
|
self.contentView.setWindowFlags(QtCore.Qt.Window)
|
||||||
self.contentView.setWindowState(QtCore.Qt.WindowFullScreen)
|
self.contentView.setWindowState(QtCore.Qt.WindowFullScreen)
|
||||||
self.contentView.show()
|
self.contentView.show()
|
||||||
self.window().hide()
|
self.main_window.hide()
|
||||||
|
|
||||||
def exit_fullscreen(self):
|
def exit_fullscreen(self):
|
||||||
self.window().show()
|
self.main_window.show()
|
||||||
self.contentView.setWindowFlags(QtCore.Qt.Widget)
|
self.contentView.setWindowFlags(QtCore.Qt.Widget)
|
||||||
self.contentView.setWindowState(QtCore.Qt.WindowNoState)
|
self.contentView.setWindowState(QtCore.Qt.WindowNoState)
|
||||||
self.contentView.show()
|
self.contentView.show()
|
||||||
|
|
||||||
def change_chapter_tocBox(self):
|
def change_chapter_tocBox(self):
|
||||||
chapter_number = self.window().bookToolBar.tocBox.currentIndex()
|
chapter_number = self.main_window.bookToolBar.tocBox.currentIndex()
|
||||||
required_content = self.metadata['content'][chapter_number][1]
|
required_content = self.metadata['content'][chapter_number][1]
|
||||||
|
|
||||||
if self.are_we_doing_images_only:
|
if self.are_we_doing_images_only:
|
||||||
@@ -336,7 +337,7 @@ class Tab(QtWidgets.QWidget):
|
|||||||
'center': QtCore.Qt.AlignCenter,
|
'center': QtCore.Qt.AlignCenter,
|
||||||
'justify': QtCore.Qt.AlignJustify}
|
'justify': QtCore.Qt.AlignJustify}
|
||||||
|
|
||||||
current_index = self.window().bookToolBar.tocBox.currentIndex()
|
current_index = self.main_window.bookToolBar.tocBox.currentIndex()
|
||||||
if current_index == 0:
|
if current_index == 0:
|
||||||
block_format.setAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter)
|
block_format.setAlignment(QtCore.Qt.AlignVCenter | QtCore.Qt.AlignHCenter)
|
||||||
else:
|
else:
|
||||||
@@ -407,7 +408,7 @@ class Tab(QtWidgets.QWidget):
|
|||||||
chapter = self.proxy_model.data(index, QtCore.Qt.UserRole)
|
chapter = self.proxy_model.data(index, QtCore.Qt.UserRole)
|
||||||
search_data = self.proxy_model.data(index, QtCore.Qt.UserRole + 1)
|
search_data = self.proxy_model.data(index, QtCore.Qt.UserRole + 1)
|
||||||
|
|
||||||
self.window().bookToolBar.tocBox.setCurrentIndex(chapter - 1)
|
self.main_window.bookToolBar.tocBox.setCurrentIndex(chapter - 1)
|
||||||
if not self.are_we_doing_images_only:
|
if not self.are_we_doing_images_only:
|
||||||
self.set_scroll_value(False, search_data)
|
self.set_scroll_value(False, search_data)
|
||||||
|
|
||||||
@@ -433,9 +434,9 @@ class Tab(QtWidgets.QWidget):
|
|||||||
def update_bookmark_proxy_model(self):
|
def update_bookmark_proxy_model(self):
|
||||||
self.proxy_model.invalidateFilter()
|
self.proxy_model.invalidateFilter()
|
||||||
self.proxy_model.setFilterParams(
|
self.proxy_model.setFilterParams(
|
||||||
self.window().bookToolBar.searchBar.text())
|
self.main_window.bookToolBar.searchBar.text())
|
||||||
self.proxy_model.setFilterFixedString(
|
self.proxy_model.setFilterFixedString(
|
||||||
self.window().bookToolBar.searchBar.text())
|
self.main_window.bookToolBar.searchBar.text())
|
||||||
|
|
||||||
def generate_bookmark_context_menu(self, position):
|
def generate_bookmark_context_menu(self, position):
|
||||||
index = self.dockListView.indexAt(position)
|
index = self.dockListView.indexAt(position)
|
||||||
@@ -444,9 +445,9 @@ class Tab(QtWidgets.QWidget):
|
|||||||
|
|
||||||
bookmark_menu = QtWidgets.QMenu()
|
bookmark_menu = QtWidgets.QMenu()
|
||||||
editAction = bookmark_menu.addAction(
|
editAction = bookmark_menu.addAction(
|
||||||
self.window().QImageFactory.get_image('edit-rename'), 'Edit')
|
self.main_window.QImageFactory.get_image('edit-rename'), 'Edit')
|
||||||
deleteAction = bookmark_menu.addAction(
|
deleteAction = bookmark_menu.addAction(
|
||||||
self.window().QImageFactory.get_image('trash-empty'), 'Delete')
|
self.main_window.QImageFactory.get_image('trash-empty'), 'Delete')
|
||||||
|
|
||||||
action = bookmark_menu.exec_(
|
action = bookmark_menu.exec_(
|
||||||
self.dockListView.mapToGlobal(position))
|
self.dockListView.mapToGlobal(position))
|
||||||
@@ -474,7 +475,7 @@ class Tab(QtWidgets.QWidget):
|
|||||||
|
|
||||||
def sneaky_exit(self):
|
def sneaky_exit(self):
|
||||||
self.contentView.hide()
|
self.contentView.hide()
|
||||||
self.window().closeEvent()
|
self.main_window.closeEvent()
|
||||||
|
|
||||||
|
|
||||||
class PliantQGraphicsView(QtWidgets.QGraphicsView):
|
class PliantQGraphicsView(QtWidgets.QGraphicsView):
|
||||||
@@ -567,7 +568,7 @@ class PliantQGraphicsView(QtWidgets.QGraphicsView):
|
|||||||
# No return happened so the image isn't in the cache
|
# No return happened so the image isn't in the cache
|
||||||
generate_image_cache(current_page)
|
generate_image_cache(current_page)
|
||||||
|
|
||||||
if self.window().settings['caching_enabled']:
|
if self.main_window.settings['caching_enabled']:
|
||||||
return_pixmap = None
|
return_pixmap = None
|
||||||
while not return_pixmap:
|
while not return_pixmap:
|
||||||
return_pixmap = check_cache(current_page)
|
return_pixmap = check_cache(current_page)
|
||||||
@@ -626,6 +627,11 @@ class PliantQGraphicsView(QtWidgets.QGraphicsView):
|
|||||||
def keyPressEvent(self, event):
|
def keyPressEvent(self, event):
|
||||||
# This function is sufficiently different to warrant
|
# This function is sufficiently different to warrant
|
||||||
# exclusion from the common functions class
|
# exclusion from the common functions class
|
||||||
|
|
||||||
|
# TODO
|
||||||
|
# Not working correctly
|
||||||
|
# Add other keys: Up and Down
|
||||||
|
|
||||||
if event.key() == 32: # Spacebar press
|
if event.key() == 32: # Spacebar press
|
||||||
vertical = self.verticalScrollBar().value()
|
vertical = self.verticalScrollBar().value()
|
||||||
maximum = self.verticalScrollBar().maximum()
|
maximum = self.verticalScrollBar().maximum()
|
||||||
@@ -714,19 +720,19 @@ class PliantQTextBrowser(QtWidgets.QTextBrowser):
|
|||||||
if selected_word and selected_word != '':
|
if selected_word and selected_word != '':
|
||||||
selected_word = selected_word.split()[0]
|
selected_word = selected_word.split()[0]
|
||||||
defineAction = context_menu.addAction(
|
defineAction = context_menu.addAction(
|
||||||
self.window().QImageFactory.get_image('view-readermode'),
|
self.main_window.QImageFactory.get_image('view-readermode'),
|
||||||
f'Define "{selected_word}"')
|
f'Define "{selected_word}"')
|
||||||
|
|
||||||
searchAction = context_menu.addAction(
|
searchAction = context_menu.addAction(
|
||||||
self.window().QImageFactory.get_image('search'),
|
self.main_window.QImageFactory.get_image('search'),
|
||||||
'Search')
|
'Search')
|
||||||
|
|
||||||
action = context_menu.exec_(self.sender().mapToGlobal(position))
|
action = context_menu.exec_(self.sender().mapToGlobal(position))
|
||||||
|
|
||||||
if action == defineAction:
|
if action == defineAction:
|
||||||
self.window().definitionDialog.find_definition(selected_word)
|
self.main_window.definitionDialog.find_definition(selected_word)
|
||||||
if action == searchAction:
|
if action == searchAction:
|
||||||
self.window().bookToolBar.searchBar.setFocus()
|
self.main_window.bookToolBar.searchBar.setFocus()
|
||||||
|
|
||||||
def closeEvent(self, *args):
|
def closeEvent(self, *args):
|
||||||
self.main_window.closeEvent()
|
self.main_window.closeEvent()
|
||||||
|
Reference in New Issue
Block a user