Files
@ b168d439d9a0
Branch filter:
Location: linux-tools/kcdemu/gui/main_settings.py
b168d439d9a0
5.1 KiB
text/x-python
initial commit. Version 1.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | import os
from PyQt5 import QtCore
from PyQt5.QtCore import QSize
from PyQt5.QtWidgets import QWidget, QFileDialog
from .ui.main_settings import Ui_Form
class MainSettingsWidget(Ui_Form, QWidget):
def __init__(self, config):
"""
:type config: config.config.ConfigFile
"""
super().__init__()
self.config = config
self.last_directory = None
self.setupUi(self)
self.trayDefaultB.clicked.connect(self.on_tray_default_click)
self.emptyDefaultB.clicked.connect(self.on_empty_default_click)
self.fullDefaultB.clicked.connect(self.on_full_default_click)
self.trayCustomB.clicked.connect(self.on_tray_custom_click)
self.emptyCustomB.clicked.connect(self.on_empty_custom_click)
self.fullCustomB.clicked.connect(self.on_full_custom_click)
position = self.config.get_position()
if position == self.config.POSITION_TOP_LEFT:
self.topLeftRB.setChecked(True)
if position == self.config.POSITION_TOP_RIGHT:
self.topRightRB.setChecked(True)
if position == self.config.POSITION_BOTTOM_LEFT:
self.bottomLeftRB.setChecked(True)
if position == self.config.POSITION_BOTTOM_RIGHT:
self.bottomRightRB.setChecked(True)
offset = self.config.get_offset()
icon_size = self.config.get_icon_size()
self.hOffsetSB.setValue(offset[0])
self.vOffsetSB.setValue(offset[1])
self.iwidthSB.setValue(icon_size[0])
self.iheightSB.setValue(icon_size[1])
self.iwidthSB.editingFinished.connect(self.resize_icons)
self.iheightSB.editingFinished.connect(self.resize_icons)
self.resize_icons()
self.tray_icon = self.config.get_tray_icon()
self.empty_icon = self.config.get_empty_icon()
self.full_icon = self.config.get_full_icon()
self.update_icons()
def update_icons(self):
self.trayLabel.setText("<html><head/><body><p><img src=\"" + self.tray_icon + "\"/></p></body></html>")
self.emptyLabel.setText("<html><head/><body><p><img src=\"" + self.empty_icon + "\"/></p></body></html>")
self.fullLabel.setText("<html><head/><body><p><img src=\"" + self.full_icon + "\"/></p></body></html>")
def on_tray_default_click(self):
self.tray_icon = self.config.ICON_TRAY_DEFAULT
self.update_icons()
def on_empty_default_click(self):
self.empty_icon = self.config.ICON_DROPPER_EMPTY_DEFAULT
self.update_icons()
def on_full_default_click(self):
self.full_icon = self.config.ICON_DROPPER_FULL_DEFAULT
self.update_icons()
def on_tray_custom_click(self):
file = self.show_open_dialog()
if file:
self.tray_icon = file
self.update_icons()
def on_empty_custom_click(self):
file = self.show_open_dialog()
if file:
self.empty_icon = file
self.update_icons()
def on_full_custom_click(self):
file = self.show_open_dialog()
if file:
self.full_icon = file
self.update_icons()
def show_open_dialog(self):
open_dialog = QFileDialog()
if self.last_directory:
open_dialog.setDirectory(self.last_directory)
open_dialog.setAcceptMode(open_dialog.AcceptOpen)
if open_dialog.exec_() == QFileDialog.Accepted:
file = open_dialog.selectedFiles()[0]
self.last_directory = os.path.abspath(file)
return file
return None
def resize_icons(self):
icon_width = self.iwidthSB.value()
icon_height = self.iheightSB.value()
self.trayLabel.setMinimumSize(icon_width, icon_height)
self.trayLabel.setBaseSize(icon_width, icon_height)
self.trayLabel.setMaximumSize(icon_width, icon_height)
self.emptyLabel.setMinimumSize(icon_width, icon_height)
self.emptyLabel.setBaseSize(icon_width, icon_height)
self.emptyLabel.setMaximumSize(icon_width, icon_height)
self.fullLabel.setMinimumSize(icon_width, icon_height)
self.fullLabel.setBaseSize(icon_width, icon_height)
self.fullLabel.setMaximumSize(icon_width, icon_height)
self.trayDefaultB.setIconSize(QSize(icon_width, icon_height))
self.emptyDefaultB.setIconSize(QSize(icon_width, icon_height))
self.fullDefaultB.setIconSize(QSize(icon_width, icon_height))
def update_config(self):
position = None
if self.topLeftRB.isChecked():
position = self.config.POSITION_TOP_LEFT
if self.topRightRB.isChecked():
position = self.config.POSITION_TOP_RIGHT
if self.bottomLeftRB.isChecked():
position = self.config.POSITION_BOTTOM_LEFT
if self.bottomRightRB.isChecked():
position = self.config.POSITION_BOTTOM_RIGHT
self.config.set_position(position)
self.config.set_icon_size(self.iwidthSB.value(), self.iheightSB.value())
self.config.set_offset(self.hOffsetSB.value(), self.vOffsetSB.value())
self.config.set_tray_icon(self.tray_icon)
self.config.set_empty_icon(self.empty_icon)
self.config.set_full_icon(self.full_icon)
|