[themes] disabling percentage measures

This commit is contained in:
Vinicius Moreira
2020-11-27 17:46:29 -03:00
parent 60228eec97
commit 90085f08aa
2 changed files with 48 additions and 49 deletions

View File

@@ -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

View File

@@ -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 {