From eff04082602ca3ddc6c485bb2bc85c23a3373933 Mon Sep 17 00:00:00 2001 From: Olivier Keshavjee Date: Thu, 18 Jun 2015 15:03:16 +0200 Subject: [PATCH] Stuff with paths --- src/functions.py | 27 ++++++++++++++++++++++++++- src/mainWindow.py | 3 ++- src/settingsWindow.py | 18 ++++++++++-------- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/src/functions.py b/src/functions.py index fdc7678..512a2f5 100644 --- a/src/functions.py +++ b/src/functions.py @@ -4,6 +4,7 @@ from qt import * from random import * from enums import * +import os def wordCount(text): return len(text.strip().replace(" ", "\n").split("\n")) if text else 0 @@ -132,4 +133,28 @@ def colorifyPixmap(pixmap, color): p = QPainter(pixmap) p.setCompositionMode(p.CompositionMode_Overlay) p.fillRect(pixmap.rect(), color) - return pixmap \ No newline at end of file + return pixmap + +def appPath(): + return os.path.realpath(os.path.join(os.path.split(__file__)[0], "..")) + +def writablePath(): + return QStandardPaths.writableLocation(QStandardPaths.AppLocalDataLocation) + +def allPaths(suffix=None): + paths = [] + # src directory + paths.append(appPath()) + # user writable directory + paths.append(writablePath()) + + if suffix: + paths2 = [] + for p in paths: + p2 = os.path.join(p, suffix) + paths2.append(p2) + if not os.path.exists(p2): + os.makedirs(p2) + paths = paths2 + + return paths \ No newline at end of file diff --git a/src/mainWindow.py b/src/mainWindow.py index 4ac0935..4f11bc1 100644 --- a/src/mainWindow.py +++ b/src/mainWindow.py @@ -226,7 +226,8 @@ class MainWindow(QMainWindow, Ui_MainWindow): self.lstDebugLabels.setModel(self.mdlLabels) self.lstDebugStatus.setModel(self.mdlStatus) - self.loadProject("test_project.zip") + self.loadProject(os.path.join(appPath(), "test_project.zip")) + self.settingsWindow(tab="Fullscreen") #################################################################################################### diff --git a/src/settingsWindow.py b/src/settingsWindow.py index 26a214d..cc174d4 100644 --- a/src/settingsWindow.py +++ b/src/settingsWindow.py @@ -191,7 +191,7 @@ class settingsWindow(QWidget, Ui_Settings): def setCorkBackground(self, i): img = self.cmbCorkImage.itemData(i) if img: - settings.corkBackground["image"] = os.path.join("resources/backgrounds", img) + settings.corkBackground["image"] = img else: settings.corkBackground["image"] = "" # Update Cork view @@ -201,14 +201,16 @@ class settingsWindow(QWidget, Ui_Settings): #self.cmbDelegate = cmbPixmapDelegate() #self.cmbCorkImage.setItemDelegate(self.cmbDelegate) - path = "resources/backgrounds" - lst = os.listdir(path) + paths = allPaths("resources/backgrounds") + self.cmbCorkImage.addItem(QIcon.fromTheme("list-remove"), "", "") - for l in lst: - if l.lower()[-4:] in [".jpg", ".png"] or \ - l.lower()[-5:] in [".jpeg"]: - px = QPixmap(os.path.join(path, l)).scaled(128, 64, Qt.KeepAspectRatio) - self.cmbCorkImage.addItem(QIcon(px), "", l) + for p in paths: + lst = os.listdir(p) + for l in lst: + if l.lower()[-4:] in [".jpg", ".png"] or \ + l.lower()[-5:] in [".jpeg"]: + px = QPixmap(os.path.join(p, l)).scaled(128, 64, Qt.KeepAspectRatio) + self.cmbCorkImage.addItem(QIcon(px), "", os.path.join(p, l)) self.cmbCorkImage.setIconSize(QSize(128, 64))