manuskript/manuskript/ui/views/corkView.py
Robert Barlow a266b1bfff
Fixed project not opening with missing background
This is the quick way to patch this. I'd recommend changing the findFirstFile function in functions/__init__.py for a more permanent solution, but this should suffice for now.
2021-04-04 13:48:54 -04:00

62 lines
2 KiB
Python

#!/usr/bin/env python
# --!-- coding: utf8 --!--
from PyQt5.QtWidgets import QListView
from manuskript import settings
from manuskript.functions import findBackground
from manuskript.ui.views.corkDelegate import corkDelegate
from manuskript.ui.views.dndView import dndView
from manuskript.ui.views.outlineBasics import outlineBasics
class corkView(QListView, dndView, outlineBasics):
def __init__(self, parent=None):
QListView.__init__(self, parent)
dndView.__init__(self, parent)
outlineBasics.__init__(self, parent)
self.setResizeMode(QListView.Adjust)
self.setWrapping(True)
self.setItemDelegate(corkDelegate())
self.setSpacing(5)
self.setVerticalScrollMode(self.ScrollPerPixel)
self.setFlow(self.LeftToRight)
self.setSelectionBehavior(self.SelectRows)
self.updateBackground()
def updateBackground(self):
if settings.corkBackground["image"] != "":
img = findBackground(settings.corkBackground["image"])
if img == None:
img = ""
else:
# No background image
img = ""
self.setStyleSheet("""QListView {{
background:{color};
background-image: url({url});
background-attachment: fixed;
}}""".format(
color=settings.corkBackground["color"],
url=img.replace("\\", "/")
))
def dragMoveEvent(self, event):
dndView.dragMoveEvent(self, event)
QListView.dragMoveEvent(self, event)
def mouseReleaseEvent(self, event):
QListView.mouseReleaseEvent(self, event)
outlineBasics.mouseReleaseEvent(self, event)
def mouseDoubleClickEvent(self, event):
if self.selectedIndexes() == []:
idx = self.rootIndex()
parent = idx.parent()
from manuskript.functions import MW
MW.openIndex(parent)
#self.setRootIndex(parent)
else:
r = QListView.mouseDoubleClickEvent(self, event)