WIP: Unfinished work
Signed-off-by: Juraj Oravec <jurajoravec@mailo.com>
This commit is contained in:
parent
7f71175511
commit
fa5930a213
199
readability/Config.py
Normal file
199
readability/Config.py
Normal file
@ -0,0 +1,199 @@
|
||||
# <one line to give the program's name and a brief idea of what it does.>
|
||||
# Copyright (C) 2019 Juraj Oravec <jurajoravec@netc.it>
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
from PySide2.QtCore import QObject, Signal, QSettings
|
||||
|
||||
|
||||
class Config(QObject):
|
||||
lineHeightChanged = Signal(int)
|
||||
marginChanged = Signal(int)
|
||||
fontSizeChanged = Signal(int)
|
||||
fontChanged = Signal(str)
|
||||
colorThemeChanged = Signal(str)
|
||||
contextMenuChanged = Signal(_bool)
|
||||
iconChanged = Signal(str)
|
||||
settingsFileChanged = Signal(str)
|
||||
|
||||
configLoaded = Signal()
|
||||
configSaved = Signal()
|
||||
|
||||
def __init__(self, lineHeight=None, margin=None, fontSize=None, font=None, colorTheme=None, contextMenu=None, icon=None, settingsFile=None):
|
||||
QObject.__init__()
|
||||
|
||||
self._lineHeight = lineHeight
|
||||
self._margin = margin
|
||||
self._fontSize = fontSize
|
||||
self._font = font
|
||||
self._colorTheme = colorTheme
|
||||
self._contextMenu = contextMenu
|
||||
self._icon = icon
|
||||
self._settingsFile = settingsFile
|
||||
|
||||
def load(self):
|
||||
if not self.settingsFile:
|
||||
return
|
||||
if os.path.exists(self.settingsFile):
|
||||
pass
|
||||
|
||||
settings = QSettings(self.settingsFile, QSettings.IniFormat)
|
||||
|
||||
settings.beginGroup("Readability")
|
||||
self.lineHeight = int(settings.value("lineHeight", self.lineHeight))
|
||||
self.margin = int(settings.value("margin", self.margin))
|
||||
self.fontSize = int(settings.value("fontSize", self.fontSize))
|
||||
self.font = str(settings.value("font", self.font))
|
||||
self.colorTheme = str(settings.value("colorTheme", self.colorTheme))
|
||||
self.contextMenu = _bool(settings.value("contextMenu", self.contextMenu))
|
||||
self.icon = str(settings.value("icon", self.icon))
|
||||
self.settingsFile = str(settings.value("settingsFile", self.settingsFile))
|
||||
settings.endGroup()
|
||||
|
||||
self.configLoaded.emit()
|
||||
|
||||
def save(self):
|
||||
if not self.settingsFile:
|
||||
return
|
||||
if os.path.exists(self.settingsFile):
|
||||
pass
|
||||
|
||||
settings=QSettings(self.settingsFile, QSettings.IniFormat)
|
||||
|
||||
settings.beginGroup("Readability")
|
||||
settings.setValue("lineHeight", self.lineHeight)
|
||||
settings.setValue("margin", self.margin)
|
||||
settings.setValue("fontSize", self.fontSize)
|
||||
settings.setValue("font", self.font)
|
||||
settings.setValue("colorTheme", self.colorTheme)
|
||||
settings.setValue("contextMenu", self.contextMenu)
|
||||
settings.setValue("icon", self.icon)
|
||||
settings.setValue("settingsFile", self.settingsFile)
|
||||
settings.endGroup()
|
||||
|
||||
settings.sync()
|
||||
|
||||
self.configSaved.emit()
|
||||
|
||||
@property
|
||||
def lineHeight(self):
|
||||
return self._lineHeight
|
||||
|
||||
@lineHeight.setter
|
||||
def lineHeight(self, lineHeight):
|
||||
if not lineHeight:
|
||||
return
|
||||
if self._lineHeight == lineHeight:
|
||||
return
|
||||
|
||||
self._lineHeight = lineHeight
|
||||
self.lineHeightChanged.emit(lineHeight)
|
||||
|
||||
@property
|
||||
def margin(self):
|
||||
return self._margin
|
||||
|
||||
@margin.setter
|
||||
def margin(self, margin):
|
||||
if not margin:
|
||||
return
|
||||
if self._margin == margin:
|
||||
return
|
||||
|
||||
self._margin = margin
|
||||
self.marginChanged.emit(margin)
|
||||
|
||||
@property
|
||||
def fontSize(self):
|
||||
return self._fontSize
|
||||
|
||||
@fontSize.setter
|
||||
def fontSize(self, fontSize):
|
||||
if not fontSize:
|
||||
return
|
||||
if self._fontSize == fontSize:
|
||||
return
|
||||
|
||||
self._fontSize = fontSize
|
||||
self.fontSizeChanged.emit(fontSize)
|
||||
|
||||
@property
|
||||
def font(self):
|
||||
return self._font
|
||||
|
||||
@font.setter
|
||||
def font(self, font):
|
||||
if not font:
|
||||
return
|
||||
if self._font == font:
|
||||
return
|
||||
|
||||
self._font = font
|
||||
self.fontChanged.emit(font)
|
||||
|
||||
@property
|
||||
def colorTheme(self):
|
||||
return self._colorTheme
|
||||
|
||||
@colorTheme.setter
|
||||
def colorTheme(self, colorTheme):
|
||||
if not colorTheme:
|
||||
return
|
||||
if self._colorTheme == colorTheme:
|
||||
return
|
||||
|
||||
self._colorTheme = colorTheme
|
||||
self.colorThemeChanged.emit(colorTheme)
|
||||
|
||||
@property
|
||||
def contextMenu(self):
|
||||
return self._contextMenu
|
||||
|
||||
@contextMenu.setter
|
||||
def contextMenu(self, contextMenu):
|
||||
if not contextMenu:
|
||||
return
|
||||
if self._contextMenu == contextMenu:
|
||||
return
|
||||
|
||||
self._contextMenu = contextMenu
|
||||
self.contextMenuChanged.emit(contextMenu)
|
||||
|
||||
@property
|
||||
def icon(self):
|
||||
return self._icon
|
||||
|
||||
@icon.setter
|
||||
def icon(self, icon):
|
||||
if not icon:
|
||||
return
|
||||
if self._icon == icon:
|
||||
return
|
||||
|
||||
self._icon = icon
|
||||
self.iconChanged.emit(icon)
|
||||
|
||||
@property
|
||||
def settingsFile(self):
|
||||
return self._settingsFile
|
||||
|
||||
@settingsFile.setter
|
||||
def settingsFile(self, settingsFile):
|
||||
if not settingsFile:
|
||||
return
|
||||
if self._settingsFile == settingsFile:
|
||||
return
|
||||
|
||||
self._settingsFile = settingsFile
|
||||
self.settingsFileChanged.emit(settingsFile)
|
8
readability/data/RM-Type-Controls-Arrow.svg
Normal file
8
readability/data/RM-Type-Controls-Arrow.svg
Normal file
@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
|
||||
<polygon opacity="0.15" points="16.583,0.015 16.569,0 4.583,12 16.569,24 16.583,23.985"/>
|
||||
<polygon fill="#fbfbfb" points="16.575,1.021 16.561,1.008 5.583,12 16.577,23.008 16.591,22.994 "/>
|
||||
</svg>
|
After Width: | Height: | Size: 511 B |
Loading…
Reference in New Issue
Block a user