Load all icons via the theme class
This commit is contained in:
@@ -113,6 +113,7 @@ class GuiConfigEditGeneral(QWidget):
|
||||
|
||||
self.mainConf = nw.CONFIG
|
||||
self.theParent = theParent
|
||||
self.theTheme = theParent.theTheme
|
||||
self.outerBox = QGridLayout()
|
||||
|
||||
# User Interface
|
||||
@@ -122,7 +123,7 @@ class GuiConfigEditGeneral(QWidget):
|
||||
|
||||
self.guiLookTheme = QComboBox()
|
||||
self.guiLookTheme.setMinimumWidth(200)
|
||||
self.theThemes = self.theParent.theTheme.listThemes()
|
||||
self.theThemes = self.theTheme.listThemes()
|
||||
for themeDir, themeName in self.theThemes:
|
||||
self.guiLookTheme.addItem(themeName, themeDir)
|
||||
themeIdx = self.guiLookTheme.findData(self.mainConf.guiTheme)
|
||||
@@ -131,7 +132,7 @@ class GuiConfigEditGeneral(QWidget):
|
||||
|
||||
self.guiLookSyntax = QComboBox()
|
||||
self.guiLookSyntax.setMinimumWidth(200)
|
||||
self.theSyntaxes = self.theParent.theTheme.listSyntax()
|
||||
self.theSyntaxes = self.theTheme.listSyntax()
|
||||
for syntaxFile, syntaxName in self.theSyntaxes:
|
||||
self.guiLookSyntax.addItem(syntaxName, syntaxFile)
|
||||
syntaxIdx = self.guiLookSyntax.findData(self.mainConf.guiSyntax)
|
||||
@@ -192,7 +193,7 @@ class GuiConfigEditGeneral(QWidget):
|
||||
if path.isdir(self.mainConf.backupPath):
|
||||
self.projBackupPath.setText(self.mainConf.backupPath)
|
||||
|
||||
self.projBackupGetPath = QPushButton(QIcon.fromTheme("folder"),"")
|
||||
self.projBackupGetPath = QPushButton(self.theTheme.getIcon("folder"),"")
|
||||
self.projBackupGetPath.clicked.connect(self._backupFolder)
|
||||
|
||||
self.projBackupClose = QCheckBox(self)
|
||||
|
||||
+6
-5
@@ -37,6 +37,7 @@ class GuiDocTree(QTreeWidget):
|
||||
self.mainConf = nw.CONFIG
|
||||
self.debugGUI = self.mainConf.debugGUI
|
||||
self.theParent = theParent
|
||||
self.theTheme = theParent.theTheme
|
||||
self.theProject = theProject
|
||||
|
||||
# Tree Settings
|
||||
@@ -382,13 +383,13 @@ class GuiDocTree(QTreeWidget):
|
||||
newItem.setExpanded(nwItem.isExpanded)
|
||||
|
||||
if nwItem.itemType == nwItemType.ROOT:
|
||||
newItem.setIcon(self.C_NAME, QIcon.fromTheme("drive-harddisk"))
|
||||
newItem.setIcon(self.C_NAME, self.theTheme.getIcon("root"))
|
||||
elif nwItem.itemType == nwItemType.FOLDER:
|
||||
newItem.setIcon(self.C_NAME, QIcon.fromTheme("folder"))
|
||||
newItem.setIcon(self.C_NAME, self.theTheme.getIcon("folder"))
|
||||
elif nwItem.itemType == nwItemType.FILE:
|
||||
newItem.setIcon(self.C_NAME, QIcon.fromTheme("x-office-document"))
|
||||
newItem.setIcon(self.C_NAME, self.theTheme.getIcon("document"))
|
||||
elif nwItem.itemType == nwItemType.TRASH:
|
||||
newItem.setIcon(self.C_NAME, QIcon.fromTheme("user-trash"))
|
||||
newItem.setIcon(self.C_NAME, self.theTheme.getIcon("trash"))
|
||||
|
||||
return newItem
|
||||
|
||||
@@ -413,7 +414,7 @@ class GuiDocTree(QTreeWidget):
|
||||
self.addTopLevelItem(newItem)
|
||||
self.orphRoot = newItem
|
||||
newItem.setExpanded(True)
|
||||
newItem.setIcon(self.C_NAME, QIcon.fromTheme("dialog-warning"))
|
||||
newItem.setIcon(self.C_NAME, self.theTheme.getIcon("orphan"))
|
||||
return
|
||||
|
||||
def _cleanOrphanedRoot(self):
|
||||
|
||||
@@ -322,6 +322,7 @@ class GuiProjectEditReplace(QWidget):
|
||||
QWidget.__init__(self, theParent)
|
||||
|
||||
self.theParent = theParent
|
||||
self.theTheme = theParent.theTheme
|
||||
self.theProject = theProject
|
||||
self.arChanged = False
|
||||
|
||||
@@ -341,9 +342,9 @@ class GuiProjectEditReplace(QWidget):
|
||||
|
||||
self.editKey = QLineEdit()
|
||||
self.editValue = QLineEdit()
|
||||
self.saveButton = QPushButton(QIcon.fromTheme("document-save"),"")
|
||||
self.addButton = QPushButton(QIcon.fromTheme("list-add"),"")
|
||||
self.delButton = QPushButton(QIcon.fromTheme("list-remove"),"")
|
||||
self.saveButton = QPushButton(self.theTheme.getIcon("save"),"")
|
||||
self.addButton = QPushButton(self.theTheme.getIcon("add"),"")
|
||||
self.delButton = QPushButton(self.theTheme.getIcon("remove"),"")
|
||||
|
||||
self.editKey.setEnabled(False)
|
||||
self.editValue.setEnabled(False)
|
||||
|
||||
+4
-3
@@ -30,6 +30,7 @@ class GuiSearchBar(QFrame):
|
||||
|
||||
self.mainConf = nw.CONFIG
|
||||
self.theParent = theParent
|
||||
self.theTheme = theParent.theTheme
|
||||
self.repVisible = False
|
||||
|
||||
self.setContentsMargins(0,0,0,0)
|
||||
@@ -41,9 +42,9 @@ class GuiSearchBar(QFrame):
|
||||
self.replaceBox = QLineEdit()
|
||||
self.searchLabel = QLabel("Search")
|
||||
self.replaceLabel = QLabel("Replace")
|
||||
self.closeButton = QPushButton(QIcon.fromTheme("edit-delete"),"")
|
||||
self.searchButton = QPushButton(QIcon.fromTheme("edit-find"),"")
|
||||
self.replaceButton = QPushButton(QIcon.fromTheme("edit-find-replace"),"")
|
||||
self.closeButton = QPushButton(self.theTheme.getIcon("close"),"")
|
||||
self.searchButton = QPushButton(self.theTheme.getIcon("search"),"")
|
||||
self.replaceButton = QPushButton(self.theTheme.getIcon("replace"),"")
|
||||
|
||||
self.closeButton.clicked.connect(self._doClose)
|
||||
self.searchButton.clicked.connect(self._doSearch)
|
||||
|
||||
+31
-2
@@ -17,7 +17,7 @@ import nw
|
||||
from os import path, listdir
|
||||
|
||||
from PyQt5.QtWidgets import qApp
|
||||
from PyQt5.QtGui import QPalette, QColor
|
||||
from PyQt5.QtGui import QPalette, QColor, QIcon
|
||||
|
||||
from nw.enum import nwAlert
|
||||
|
||||
@@ -25,12 +25,27 @@ logger = logging.getLogger(__name__)
|
||||
|
||||
class Theme:
|
||||
|
||||
ICON_MAP = {
|
||||
"root" : "drive-harddisk",
|
||||
"folder" : "folder",
|
||||
"document" : "x-office-document",
|
||||
"trash" : "user-trash",
|
||||
"orphan" : "dialog-warning",
|
||||
"save" : "document-save",
|
||||
"add" : "list-add",
|
||||
"remove" : "list-remove",
|
||||
"close" : "edit-delete",
|
||||
"search" : "edit-find",
|
||||
"replace" : "edit-find-replace",
|
||||
}
|
||||
|
||||
def __init__(self, theParent):
|
||||
|
||||
self.mainConf = nw.CONFIG
|
||||
self.theParent = theParent
|
||||
self.guiPalette = QPalette()
|
||||
self.guiPath = "gui"
|
||||
self.iconPath = "icons"
|
||||
self.syntaxPath = "syntax"
|
||||
self.cssName = "style.qss"
|
||||
self.confName = "theme.conf"
|
||||
@@ -76,10 +91,16 @@ class Theme:
|
||||
self.colTagErr = [ 0, 0, 0]
|
||||
self.colRepTag = [ 0, 0, 0]
|
||||
|
||||
## Icons
|
||||
self.themeIcons = {}
|
||||
|
||||
# Changeable Settings
|
||||
self.guiTheme = None
|
||||
self.guiSyntax = None
|
||||
self.themeRoot = None
|
||||
self.themePath = None
|
||||
self.syntaxFile = None
|
||||
self.confFile = None
|
||||
self.cssFile = None
|
||||
|
||||
self.updateTheme()
|
||||
@@ -95,11 +116,14 @@ class Theme:
|
||||
self.guiTheme = self.mainConf.guiTheme
|
||||
self.guiSyntax = self.mainConf.guiSyntax
|
||||
self.themeRoot = self.mainConf.themeRoot
|
||||
self.themePath = path.join(self.mainConf.themeRoot, self.guiPath, self.guiTheme)
|
||||
self.themePath = path.join(self.mainConf.themeRoot,self.guiPath,self.guiTheme)
|
||||
self.syntaxFile = path.join(self.themeRoot,self.syntaxPath,self.guiSyntax+".conf")
|
||||
self.confFile = path.join(self.themePath,self.confName)
|
||||
self.cssFile = path.join(self.themePath,self.cssName)
|
||||
|
||||
for iconName in self.ICON_MAP:
|
||||
self.themeIcons[iconName] = QIcon.fromTheme(self.ICON_MAP[iconName])
|
||||
|
||||
self.loadTheme()
|
||||
self.loadSyntax()
|
||||
|
||||
@@ -262,6 +286,11 @@ class Theme:
|
||||
|
||||
return self.syntaxList
|
||||
|
||||
def getIcon(self, iconName, iconSize=None):
|
||||
if iconName in self.themeIcons:
|
||||
return self.themeIcons[iconName]
|
||||
return QIcon()
|
||||
|
||||
##
|
||||
# Internal Functions
|
||||
##
|
||||
|
||||
Reference in New Issue
Block a user