mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 03:34:15 +02:00
[themes] disabling percentage measures
This commit is contained in:
@@ -1,17 +1,14 @@
|
|||||||
import glob
|
import glob
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import traceback
|
|
||||||
from typing import Optional, Dict, Tuple, Set
|
from typing import Optional, Dict, Tuple, Set
|
||||||
|
|
||||||
from PyQt5.QtWidgets import QApplication
|
|
||||||
|
|
||||||
from bauh.api.constants import USER_THEMES_PATH
|
from bauh.api.constants import USER_THEMES_PATH
|
||||||
from bauh.view.util import resource
|
from bauh.view.util import resource
|
||||||
from bauh.view.util.translation import I18n
|
from bauh.view.util.translation import I18n
|
||||||
|
|
||||||
RE_WIDTH_PERCENT = re.compile(r'[\d\\.]+%w')
|
# RE_WIDTH_PERCENT = re.compile(r'[\d\\.]+%w') TODO percentage measures disabled for the moment (requires more testing)
|
||||||
RE_HEIGHT_PERCENT = re.compile(r'[\d\\.]+%h')
|
# RE_HEIGHT_PERCENT = re.compile(r'[\d\\.]+%h') TODO percentage measures disabled for the moment (requires more testing)
|
||||||
RE_META_I18N_FIELDS = re.compile(r'((name|description)(\[\w+])?)')
|
RE_META_I18N_FIELDS = re.compile(r'((name|description)(\[\w+])?)')
|
||||||
RE_VAR_PATTERN = re.compile(r'^@[\w.\-_]+')
|
RE_VAR_PATTERN = re.compile(r'^@[\w.\-_]+')
|
||||||
RE_QSS_EXT = re.compile(r'\.qss$')
|
RE_QSS_EXT = re.compile(r'\.qss$')
|
||||||
@@ -161,9 +158,10 @@ def process_theme(file_path: str, theme_str: str, metadata: ThemeMetadata,
|
|||||||
for var in var_list:
|
for var in var_list:
|
||||||
theme_str = theme_str.replace('@' + var, var_map[var])
|
theme_str = theme_str.replace('@' + var, var_map[var])
|
||||||
|
|
||||||
screen_size = QApplication.primaryScreen().size()
|
# TODO percentage measures disabled for the moment (requires more testing)
|
||||||
theme_str = process_width_percent_measures(theme_str, screen_size.width())
|
# screen_size = QApplication.primaryScreen().size()
|
||||||
theme_str = process_height_percent_measures(theme_str, screen_size.height())
|
# theme_str = process_width_percent_measures(theme_str, screen_size.width())
|
||||||
|
# theme_str = process_height_percent_measures(theme_str, screen_size.height())
|
||||||
|
|
||||||
return theme_str if not root_theme else '{}\n{}'.format(root_theme[0], theme_str), metadata
|
return theme_str if not root_theme else '{}\n{}'.format(root_theme[0], theme_str), metadata
|
||||||
|
|
||||||
@@ -172,36 +170,6 @@ def _by_str_len(string: str) -> int:
|
|||||||
return len(string)
|
return len(string)
|
||||||
|
|
||||||
|
|
||||||
def process_width_percent_measures(theme: str, screen_width: int) -> str:
|
|
||||||
width_measures = RE_WIDTH_PERCENT.findall(theme)
|
|
||||||
|
|
||||||
final_theme = theme
|
|
||||||
if width_measures:
|
|
||||||
for m in width_measures:
|
|
||||||
try:
|
|
||||||
percent = float(m.split('%')[0])
|
|
||||||
final_theme = final_theme.replace(m, '{}px'.format(round(screen_width * percent)))
|
|
||||||
except ValueError:
|
|
||||||
traceback.print_exc()
|
|
||||||
|
|
||||||
return final_theme
|
|
||||||
|
|
||||||
|
|
||||||
def process_height_percent_measures(theme: str, screen_height: int) -> str:
|
|
||||||
width_measures = RE_HEIGHT_PERCENT.findall(theme)
|
|
||||||
|
|
||||||
final_sheet = theme
|
|
||||||
if width_measures:
|
|
||||||
for m in width_measures:
|
|
||||||
try:
|
|
||||||
percent = float(m.split('%')[0])
|
|
||||||
final_sheet = final_sheet.replace(m, '{}px'.format(round(screen_height * percent)))
|
|
||||||
except ValueError:
|
|
||||||
traceback.print_exc()
|
|
||||||
|
|
||||||
return final_sheet
|
|
||||||
|
|
||||||
|
|
||||||
def _read_var_file(theme_file: str) -> dict:
|
def _read_var_file(theme_file: str) -> dict:
|
||||||
vars_file = theme_file.replace('.qss', '.vars')
|
vars_file = theme_file.replace('.qss', '.vars')
|
||||||
var_map = {}
|
var_map = {}
|
||||||
@@ -257,3 +225,34 @@ def process_var_of_vars(var_map: dict):
|
|||||||
|
|
||||||
if resolved == len(pending_vars):
|
if resolved == len(pending_vars):
|
||||||
break
|
break
|
||||||
|
|
||||||
|
|
||||||
|
# TODO percentage measures disabled for the moment (requires more testing)
|
||||||
|
# def process_width_percent_measures(theme: str, screen_width: int) -> str:
|
||||||
|
# width_measures = RE_WIDTH_PERCENT.findall(theme)
|
||||||
|
#
|
||||||
|
# final_theme = theme
|
||||||
|
# if width_measures:
|
||||||
|
# for m in width_measures:
|
||||||
|
# try:
|
||||||
|
# percent = float(m.split('%')[0])
|
||||||
|
# final_theme = final_theme.replace(m, '{}px'.format(round(screen_width * percent)))
|
||||||
|
# except ValueError:
|
||||||
|
# traceback.print_exc()
|
||||||
|
#
|
||||||
|
# return final_theme
|
||||||
|
|
||||||
|
|
||||||
|
# def process_height_percent_measures(theme: str, screen_height: int) -> str:
|
||||||
|
# width_measures = RE_HEIGHT_PERCENT.findall(theme)
|
||||||
|
#
|
||||||
|
# final_sheet = theme
|
||||||
|
# if width_measures:
|
||||||
|
# for m in width_measures:
|
||||||
|
# try:
|
||||||
|
# percent = float(m.split('%')[0])
|
||||||
|
# final_sheet = final_sheet.replace(m, '{}px'.format(round(screen_height * percent)))
|
||||||
|
# except ValueError:
|
||||||
|
# traceback.print_exc()
|
||||||
|
#
|
||||||
|
# return final_sheet
|
||||||
|
|||||||
@@ -286,39 +286,39 @@ AboutDialog QLabel {
|
|||||||
AboutDialog QLabel#logo {
|
AboutDialog QLabel#logo {
|
||||||
qproperty-pixmap: url("@images/logo.svg");
|
qproperty-pixmap: url("@images/logo.svg");
|
||||||
qproperty-scaledContents: true;
|
qproperty-scaledContents: true;
|
||||||
min-height: 0.071041667%h;
|
min-height: 55px;
|
||||||
max-height: 0.071041667%h;
|
max-height: 55px;
|
||||||
min-width: 0.046852123%w;
|
min-width: 64px;
|
||||||
max-width: 0.046852123%w;
|
max-width: 64px;
|
||||||
}
|
}
|
||||||
|
|
||||||
AboutDialog QLabel#app_name {
|
AboutDialog QLabel#app_name {
|
||||||
font-size: 0.018229167%h;
|
font-size: 14px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
AboutDialog QLabel#app_version {
|
AboutDialog QLabel#app_version {
|
||||||
font-size: 0.014322917%h;
|
font-size: 11px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
AboutDialog QLabel#app_description {
|
AboutDialog QLabel#app_description {
|
||||||
min-width: 0.292397661%w;
|
min-width: 400px;
|
||||||
font-size: 0.015625%h;
|
font-size: 12px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
AboutDialog QLabel#app_more_information, AboutDialog QLabel#app_license {
|
AboutDialog QLabel#app_more_information, AboutDialog QLabel#app_license {
|
||||||
font-size: 0.014322917%h;
|
font-size: 11px;
|
||||||
}
|
}
|
||||||
|
|
||||||
AboutDialog > QLabel#app_trouble_question, AboutDialog > QLabel#app_rate_question {
|
AboutDialog > QLabel#app_trouble_question, AboutDialog > QLabel#app_rate_question {
|
||||||
font-size: 0.013020833%h;
|
font-size: 10px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
AboutDialog > QLabel#app_trouble_answer, AboutDialog > QLabel#app_rate_answer {
|
AboutDialog > QLabel#app_trouble_answer, AboutDialog > QLabel#app_rate_answer {
|
||||||
font-size: 0.013020833%h;
|
font-size: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
RootDialog QLineEdit#password {
|
RootDialog QLineEdit#password {
|
||||||
|
|||||||
Reference in New Issue
Block a user