mirror of
https://github.com/spalencsar/bearhub.git
synced 2026-07-07 03:34:15 +02:00
0.10.4
This commit is contained in:
@@ -86,7 +86,7 @@ class AdaptableFileDownloader(FileDownloader):
|
||||
return SimpleProcess(cmd=cmd, cwd=cwd, root_password=root_password)
|
||||
|
||||
def _get_wget_process(self, url: str, output_path: str, cwd: str, root_password: Optional[str]) -> SimpleProcess:
|
||||
cmd = ['wget', url, '-c', '--retry-connrefused', '-t', '10', '--no-config', '-nc']
|
||||
cmd = ['wget', url, '-c', '--retry-connrefused', '-t', '10', '-nc']
|
||||
|
||||
if not self.check_ssl:
|
||||
cmd.append('--no-check-certificate')
|
||||
|
||||
@@ -15,6 +15,7 @@ from bauh.api.abstract.model import PackageStatus, CustomSoftwareAction
|
||||
from bauh.commons.html import strip_html, bold
|
||||
from bauh.view.qt.components import IconButton, QCustomMenuAction, QCustomToolbar
|
||||
from bauh.view.qt.dialog import ConfirmationDialog
|
||||
from bauh.view.qt.qt_utils import get_current_screen_geometry
|
||||
from bauh.view.qt.view_model import PackageView
|
||||
from bauh.view.util.translation import I18n
|
||||
|
||||
@@ -68,9 +69,8 @@ class PackagesTable(QTableWidget):
|
||||
COL_NUMBER = 9
|
||||
DEFAULT_ICON_SIZE = QSize(16, 16)
|
||||
|
||||
def __init__(self, parent: QWidget, icon_cache: MemoryCache, download_icons: bool, screen_width: int):
|
||||
def __init__(self, parent: QWidget, icon_cache: MemoryCache, download_icons: bool):
|
||||
super(PackagesTable, self).__init__()
|
||||
self.screen_width = screen_width
|
||||
self.setObjectName('table_packages')
|
||||
self.setParent(parent)
|
||||
self.window = parent
|
||||
@@ -180,15 +180,16 @@ class PackagesTable(QTableWidget):
|
||||
action=custom_action)
|
||||
|
||||
def refresh(self, pkg: PackageView):
|
||||
self._update_row(pkg, update_check_enabled=False, change_update_col=False)
|
||||
screen_width = get_current_screen_geometry(self.parent()).width()
|
||||
self._update_row(pkg, screen_width, update_check_enabled=False, change_update_col=False)
|
||||
|
||||
def update_package(self, pkg: PackageView, change_update_col: bool = False):
|
||||
def update_package(self, pkg: PackageView, screen_width: int, change_update_col: bool = False):
|
||||
if self.download_icons and pkg.model.icon_url:
|
||||
icon_request = QNetworkRequest(QUrl(pkg.model.icon_url))
|
||||
icon_request.setAttribute(QNetworkRequest.FollowRedirectsAttribute, True)
|
||||
self.network_man.get(icon_request)
|
||||
|
||||
self._update_row(pkg, change_update_col=change_update_col)
|
||||
self._update_row(pkg, screen_width, change_update_col=change_update_col)
|
||||
|
||||
def _uninstall(self, pkg: PackageView):
|
||||
if ConfirmationDialog(title=self.i18n['manage_window.apps_table.row.actions.uninstall.popup.title'],
|
||||
@@ -255,6 +256,7 @@ class PackagesTable(QTableWidget):
|
||||
self.setEnabled(True)
|
||||
|
||||
if pkgs:
|
||||
screen_width = get_current_screen_geometry(self.parent()).width()
|
||||
self.setColumnCount(self.COL_NUMBER if update_check_enabled else self.COL_NUMBER - 1)
|
||||
self.setRowCount(len(pkgs))
|
||||
|
||||
@@ -266,16 +268,17 @@ class PackagesTable(QTableWidget):
|
||||
icon_request.setAttribute(QNetworkRequest.FollowRedirectsAttribute, True)
|
||||
self.network_man.get(icon_request)
|
||||
|
||||
self._update_row(pkg, update_check_enabled)
|
||||
self._update_row(pkg, screen_width, update_check_enabled)
|
||||
|
||||
self.scrollToTop()
|
||||
|
||||
def _update_row(self, pkg: PackageView, update_check_enabled: bool = True, change_update_col: bool = True):
|
||||
def _update_row(self, pkg: PackageView, screen_width: int,
|
||||
update_check_enabled: bool = True, change_update_col: bool = True):
|
||||
self._set_col_icon(0, pkg)
|
||||
self._set_col_name(1, pkg)
|
||||
self._set_col_version(2, pkg)
|
||||
self._set_col_description(3, pkg)
|
||||
self._set_col_publisher(4, pkg)
|
||||
self._set_col_name(1, pkg, screen_width)
|
||||
self._set_col_version(2, pkg, screen_width)
|
||||
self._set_col_description(3, pkg, screen_width)
|
||||
self._set_col_publisher(4, pkg, screen_width)
|
||||
self._set_col_type(5, pkg)
|
||||
self._set_col_installed(6, pkg)
|
||||
self._set_col_actions(7, pkg)
|
||||
@@ -355,7 +358,7 @@ class PackagesTable(QTableWidget):
|
||||
col_type_icon.setToolTip(icon_data['tip'])
|
||||
self.setCellWidget(pkg.table_index, col, col_type_icon)
|
||||
|
||||
def _set_col_version(self, col: int, pkg: PackageView):
|
||||
def _set_col_version(self, col: int, pkg: PackageView, screen_width: int):
|
||||
label_version = QLabel(str(pkg.model.version if pkg.model.version else '?'))
|
||||
label_version.setObjectName('app_version')
|
||||
label_version.setAlignment(Qt.AlignCenter)
|
||||
@@ -383,7 +386,7 @@ class PackagesTable(QTableWidget):
|
||||
f"{self.i18n['version.latest']}: {pkg.model.latest_version})"
|
||||
label_version.setText(f"{label_version.text()} > {pkg.model.latest_version}")
|
||||
|
||||
if label_version.sizeHint().width() / self.screen_width > 0.22:
|
||||
if label_version.sizeHint().width() / screen_width > 0.22:
|
||||
label_version.setText(pkg.model.latest_version)
|
||||
|
||||
item.setToolTip(tooltip)
|
||||
@@ -426,7 +429,7 @@ class PackagesTable(QTableWidget):
|
||||
self._update_icon(col_icon, icon)
|
||||
self.setCellWidget(pkg.table_index, col, col_icon)
|
||||
|
||||
def _set_col_name(self, col: int, pkg: PackageView):
|
||||
def _set_col_name(self, col: int, pkg: PackageView, screen_width: int):
|
||||
col_name = QLabel()
|
||||
col_name.setObjectName('app_name')
|
||||
col_name.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Preferred)
|
||||
@@ -439,7 +442,7 @@ class PackagesTable(QTableWidget):
|
||||
col_name.setToolTip(self.i18n['app.name'].lower())
|
||||
|
||||
col_name.setText(name)
|
||||
screen_perc = col_name.sizeHint().width() / self.screen_width
|
||||
screen_perc = col_name.sizeHint().width() / screen_width
|
||||
|
||||
if screen_perc > 0.15:
|
||||
max_chars = int(len(name) * 0.15 / screen_perc) - 3
|
||||
@@ -454,7 +457,7 @@ class PackagesTable(QTableWidget):
|
||||
sizes = icon.availableSizes()
|
||||
return sizes[-1] if sizes else self.DEFAULT_ICON_SIZE
|
||||
|
||||
def _set_col_description(self, col: int, pkg: PackageView):
|
||||
def _set_col_description(self, col: int, pkg: PackageView, screen_width: int):
|
||||
item = QLabel()
|
||||
item.setObjectName('app_description')
|
||||
|
||||
@@ -468,7 +471,7 @@ class PackagesTable(QTableWidget):
|
||||
|
||||
item.setText(desc)
|
||||
|
||||
current_width_perc = item.sizeHint().width() / self.screen_width
|
||||
current_width_perc = item.sizeHint().width() / screen_width
|
||||
if current_width_perc > 0.18:
|
||||
max_width = int(len(desc) * 0.18 / current_width_perc) - 3
|
||||
desc = desc[0:max_width] + '...'
|
||||
@@ -479,7 +482,7 @@ class PackagesTable(QTableWidget):
|
||||
|
||||
self.setCellWidget(pkg.table_index, col, item)
|
||||
|
||||
def _set_col_publisher(self, col: int, pkg: PackageView):
|
||||
def _set_col_publisher(self, col: int, pkg: PackageView, screen_width: int):
|
||||
item = QToolBar()
|
||||
|
||||
publisher = pkg.model.get_publisher()
|
||||
@@ -494,7 +497,7 @@ class PackagesTable(QTableWidget):
|
||||
|
||||
if publisher:
|
||||
lb_name.setText(publisher)
|
||||
screen_perc = lb_name.sizeHint().width() / self.screen_width
|
||||
screen_perc = lb_name.sizeHint().width() / screen_width
|
||||
|
||||
if screen_perc > 0.12:
|
||||
max_chars = int(len(publisher) * 0.12 / screen_perc) - 3
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from collections.abc import Iterable
|
||||
|
||||
from PyQt5.QtCore import QSize, Qt
|
||||
from PyQt5.QtCore import Qt
|
||||
from PyQt5.QtGui import QIcon, QCursor
|
||||
from PyQt5.QtWidgets import QDialog, QVBoxLayout, QGroupBox, \
|
||||
QLineEdit, QLabel, QGridLayout, QPushButton, QPlainTextEdit, QScrollArea, QFrame, QWidget, QSizePolicy, \
|
||||
@@ -8,6 +8,7 @@ from PyQt5.QtWidgets import QDialog, QVBoxLayout, QGroupBox, \
|
||||
|
||||
from bauh.api.abstract.cache import MemoryCache
|
||||
from bauh.view.qt.components import new_spacer
|
||||
from bauh.view.qt.qt_utils import get_current_screen_geometry
|
||||
from bauh.view.util.translation import I18n
|
||||
|
||||
IGNORED_ATTRS = {'name', '__app__'}
|
||||
@@ -15,10 +16,9 @@ IGNORED_ATTRS = {'name', '__app__'}
|
||||
|
||||
class InfoDialog(QDialog):
|
||||
|
||||
def __init__(self, pkg_info: dict, icon_cache: MemoryCache, i18n: I18n, screen_size: QSize):
|
||||
def __init__(self, pkg_info: dict, icon_cache: MemoryCache, i18n: I18n):
|
||||
super(InfoDialog, self).__init__()
|
||||
self.setWindowTitle(str(pkg_info['__app__']))
|
||||
self.screen_size = screen_size
|
||||
self.i18n = i18n
|
||||
layout = QVBoxLayout()
|
||||
self.setLayout(layout)
|
||||
@@ -108,7 +108,9 @@ class InfoDialog(QDialog):
|
||||
lower_container.layout().addWidget(self.bt_close)
|
||||
layout.addWidget(lower_container)
|
||||
self.setMinimumWidth(int(self.gbox_info.sizeHint().width() * 1.2))
|
||||
self.setMaximumHeight(int(screen_size.height() * 0.8))
|
||||
|
||||
screen_height = get_current_screen_geometry().height()
|
||||
self.setMaximumHeight(int(screen_height * 0.8))
|
||||
self.adjustSize()
|
||||
|
||||
def _gen_show_button(self, idx: int, val):
|
||||
|
||||
@@ -15,7 +15,7 @@ from bauh.api.abstract.controller import SoftwareManager, SoftwareAction
|
||||
from bauh.api.abstract.handler import TaskManager
|
||||
from bauh.api import user
|
||||
from bauh.view.qt.components import new_spacer, QCustomToolbar
|
||||
from bauh.view.qt.qt_utils import centralize
|
||||
from bauh.view.qt.qt_utils import centralize, get_current_screen_geometry
|
||||
from bauh.view.qt.root import RootDialog
|
||||
from bauh.view.qt.thread import AnimateProgress
|
||||
from bauh.view.util.translation import I18n
|
||||
@@ -145,7 +145,7 @@ class PreparePanel(QWidget, TaskManager):
|
||||
signal_status = pyqtSignal(int)
|
||||
signal_password_response = pyqtSignal(bool, str)
|
||||
|
||||
def __init__(self, context: ApplicationContext, manager: SoftwareManager, screen_size: QSize,
|
||||
def __init__(self, context: ApplicationContext, manager: SoftwareManager,
|
||||
i18n: I18n, manage_window: QWidget, app_config: dict, force_suggestions: bool = False):
|
||||
super(PreparePanel, self).__init__(flags=Qt.CustomizeWindowHint | Qt.WindowTitleHint)
|
||||
self.i18n = i18n
|
||||
@@ -153,9 +153,7 @@ class PreparePanel(QWidget, TaskManager):
|
||||
self.app_config = app_config
|
||||
self.manage_window = manage_window
|
||||
self.setWindowTitle('{} ({})'.format(__app_name__, self.i18n['prepare_panel.title.start'].lower()))
|
||||
self.setMinimumWidth(int(screen_size.width() * 0.5))
|
||||
self.setMinimumHeight(int(screen_size.height() * 0.35))
|
||||
self.setMaximumHeight(int(screen_size.height() * 0.95))
|
||||
|
||||
self.setLayout(QVBoxLayout())
|
||||
self.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Preferred)
|
||||
self.manager = manager
|
||||
@@ -292,6 +290,10 @@ class PreparePanel(QWidget, TaskManager):
|
||||
super(PreparePanel, self).show()
|
||||
self.prepare_thread.start()
|
||||
centralize(self)
|
||||
screen_size = get_current_screen_geometry()
|
||||
self.setMinimumWidth(int(screen_size.width() * 0.5))
|
||||
self.setMinimumHeight(int(screen_size.height() * 0.35))
|
||||
self.setMaximumHeight(int(screen_size.height() * 0.95))
|
||||
|
||||
def start(self, tasks: int):
|
||||
self.started_at = time.time()
|
||||
|
||||
@@ -1,16 +1,18 @@
|
||||
from PyQt5.QtCore import Qt
|
||||
from typing import Optional, Union
|
||||
|
||||
from PyQt5.QtCore import Qt, QRect, QPoint
|
||||
from PyQt5.QtGui import QIcon, QPixmap
|
||||
from PyQt5.QtWidgets import QWidget, QApplication
|
||||
from PyQt5.QtWidgets import QWidget, QApplication, QDesktopWidget
|
||||
|
||||
from bauh.view.util import resource
|
||||
|
||||
desktop: Optional[QDesktopWidget] = None
|
||||
|
||||
|
||||
def centralize(widget: QWidget):
|
||||
geo = widget.frameGeometry()
|
||||
screen = QApplication.desktop().screenNumber(QApplication.desktop().cursor().pos())
|
||||
center_point = QApplication.desktop().screenGeometry(screen).center()
|
||||
geo.moveCenter(center_point)
|
||||
widget.move(geo.topLeft())
|
||||
screen_geometry = get_current_screen_geometry()
|
||||
widget.frameGeometry().moveCenter(screen_geometry.center())
|
||||
widget.move(widget.frameGeometry().topLeft())
|
||||
|
||||
|
||||
def load_icon(path: str, width: int, height: int = None) -> QIcon:
|
||||
@@ -27,3 +29,13 @@ def measure_based_on_width(percent: float) -> int:
|
||||
|
||||
def measure_based_on_height(percent: float) -> int:
|
||||
return round(percent * QApplication.primaryScreen().size().height())
|
||||
|
||||
|
||||
def get_current_screen_geometry(source_widget: Optional[Union[QWidget, QPoint]] = None) -> QRect:
|
||||
global desktop
|
||||
|
||||
if not desktop:
|
||||
desktop = QDesktopWidget()
|
||||
|
||||
current_screen_idx = desktop.screenNumber(source_widget if source_widget else desktop.cursor().pos())
|
||||
return desktop.screen(current_screen_idx).geometry()
|
||||
|
||||
@@ -29,6 +29,7 @@ from bauh.view.core import timeshift
|
||||
from bauh.view.core.config import CoreConfigManager, BACKUP_REMOVE_METHODS, BACKUP_DEFAULT_REMOVE_METHOD
|
||||
from bauh.view.qt import commons
|
||||
from bauh.view.qt.commons import sort_packages
|
||||
from bauh.view.qt.qt_utils import get_current_screen_geometry
|
||||
from bauh.view.qt.view_model import PackageView, PackageViewStatus
|
||||
from bauh.view.util.translation import I18n
|
||||
|
||||
@@ -231,12 +232,12 @@ class UpgradeSelected(AsyncAction):
|
||||
SUMMARY_FILE = UPGRADE_LOGS_DIR + '/{}_summary.txt'
|
||||
|
||||
def __init__(self, manager: SoftwareManager, internet_checker: InternetChecker, i18n: I18n,
|
||||
screen_width: int, pkgs: List[PackageView] = None):
|
||||
parent_widget: QWidget, pkgs: List[PackageView] = None):
|
||||
super(UpgradeSelected, self).__init__(i18n=i18n)
|
||||
self.pkgs = pkgs
|
||||
self.manager = manager
|
||||
self.internet_checker = internet_checker
|
||||
self.screen_width = screen_width
|
||||
self._parent_widget = parent_widget
|
||||
|
||||
def _req_as_option(self, req: UpgradeRequirement, tooltip: bool = True, custom_tooltip: str = None, required_size: bool = True, display_sizes: bool = True,
|
||||
positive_size_symbol: bool = False) -> InputOption:
|
||||
@@ -495,9 +496,10 @@ class UpgradeSelected(AsyncAction):
|
||||
comps.insert(0, TextComponent(f'{disc_size_text} ({download_size_text})', size=14))
|
||||
comps.insert(1, TextComponent(''))
|
||||
|
||||
screen_width = get_current_screen_geometry(self._parent_widget).width()
|
||||
if not self.request_confirmation(title=self.i18n['action.update.summary'].capitalize(), body='', components=comps,
|
||||
confirmation_label=self.i18n['proceed'].capitalize(), deny_label=self.i18n['cancel'].capitalize(),
|
||||
confirmation_button=can_upgrade, min_width=int(0.45 * self.screen_width)):
|
||||
confirmation_button=can_upgrade, min_width=int(0.45 * screen_width)):
|
||||
self.notify_finished({'success': success, 'updated': updated, 'types': updated_types, 'id': None})
|
||||
self.pkgs = None
|
||||
return
|
||||
|
||||
@@ -2,12 +2,11 @@ import logging
|
||||
import operator
|
||||
import os.path
|
||||
import time
|
||||
import traceback
|
||||
from pathlib import Path
|
||||
from typing import List, Type, Set, Tuple, Optional
|
||||
|
||||
from PyQt5.QtCore import QEvent, Qt, pyqtSignal, QSize
|
||||
from PyQt5.QtGui import QIcon, QWindowStateChangeEvent, QCursor
|
||||
from PyQt5.QtCore import QEvent, Qt, pyqtSignal, QRect
|
||||
from PyQt5.QtGui import QIcon, QWindowStateChangeEvent, QCursor, QMoveEvent
|
||||
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QCheckBox, QHeaderView, QToolBar, \
|
||||
QLabel, QPlainTextEdit, QProgressBar, QPushButton, QComboBox, QApplication, QListView, QSizePolicy, \
|
||||
QMenu, QHBoxLayout
|
||||
@@ -34,6 +33,7 @@ from bauh.view.qt.components import new_spacer, IconButton, QtComponentsManager,
|
||||
from bauh.view.qt.dialog import ConfirmationDialog
|
||||
from bauh.view.qt.history import HistoryDialog
|
||||
from bauh.view.qt.info import InfoDialog
|
||||
from bauh.view.qt.qt_utils import get_current_screen_geometry
|
||||
from bauh.view.qt.root import RootDialog
|
||||
from bauh.view.qt.screenshots import ScreenshotsDialog
|
||||
from bauh.view.qt.settings import SettingsWindow
|
||||
@@ -96,7 +96,7 @@ class ManageWindow(QWidget):
|
||||
signal_table_update = pyqtSignal()
|
||||
signal_stop_notifying = pyqtSignal()
|
||||
|
||||
def __init__(self, i18n: I18n, icon_cache: MemoryCache, manager: SoftwareManager, screen_size: QSize, config: dict,
|
||||
def __init__(self, i18n: I18n, icon_cache: MemoryCache, manager: SoftwareManager, config: dict,
|
||||
context: ApplicationContext, http_client: HttpClient, logger: logging.Logger, icon: QIcon,
|
||||
force_suggestions: bool = False):
|
||||
super(ManageWindow, self).__init__()
|
||||
@@ -112,7 +112,6 @@ class ManageWindow(QWidget):
|
||||
self.pkgs_installed = [] # cached installed packages
|
||||
self.display_limit = config['ui']['table']['max_displayed']
|
||||
self.icon_cache = icon_cache
|
||||
self.screen_size = screen_size
|
||||
self.config = config
|
||||
self.context = context
|
||||
self.http_client = http_client
|
||||
@@ -279,8 +278,7 @@ class ManageWindow(QWidget):
|
||||
self.table_container.layout().setContentsMargins(0, 0, 0, 0)
|
||||
|
||||
self.table_apps = PackagesTable(self, self.icon_cache,
|
||||
download_icons=bool(self.config['download']['icons']),
|
||||
screen_width=int(screen_size.width()))
|
||||
download_icons=bool(self.config['download']['icons']))
|
||||
self.table_apps.change_headers_policy()
|
||||
self.table_container.layout().addWidget(self.table_apps)
|
||||
|
||||
@@ -333,7 +331,7 @@ class ManageWindow(QWidget):
|
||||
|
||||
self.thread_update = self._bind_async_action(UpgradeSelected(manager=self.manager, i18n=self.i18n,
|
||||
internet_checker=context.internet_checker,
|
||||
screen_width=screen_size.width()),
|
||||
parent_widget=self),
|
||||
finished_call=self._finish_upgrade_selected)
|
||||
self.thread_refresh = self._bind_async_action(RefreshApps(i18n, self.manager), finished_call=self._finish_refresh_packages, only_finished=True)
|
||||
self.thread_uninstall = self._bind_async_action(UninstallPackage(self.manager, self.icon_cache, self.i18n), finished_call=self._finish_uninstall)
|
||||
@@ -433,8 +431,6 @@ class ManageWindow(QWidget):
|
||||
self.container_progress.add_space()
|
||||
self.layout.addWidget(self.container_progress)
|
||||
|
||||
qt_utils.centralize(self)
|
||||
|
||||
self.filter_only_apps = True
|
||||
self.type_filter = self.any_type_filter
|
||||
self.category_filter = self.any_category_filter
|
||||
@@ -457,11 +453,8 @@ class ManageWindow(QWidget):
|
||||
|
||||
self.thread_load_installed = NotifyInstalledLoaded()
|
||||
self.thread_load_installed.signal_loaded.connect(self._finish_loading_installed)
|
||||
self.setMinimumHeight(int(screen_size.height() * 0.5))
|
||||
self.setMaximumHeight(int(screen_size.height()))
|
||||
self.setMinimumWidth(int(screen_size.width() * 0.5))
|
||||
self.setMaximumWidth(int(screen_size.width() - screen_size.width() * 0.015))
|
||||
self._register_groups()
|
||||
self._screen_geometry: Optional[QRect] = None
|
||||
|
||||
def _register_groups(self):
|
||||
common_filters = (CHECK_APPS, CHECK_UPDATES, COMBO_CATEGORIES, COMBO_TYPES, INP_NAME)
|
||||
@@ -597,6 +590,8 @@ class ManageWindow(QWidget):
|
||||
self.thread_warnings.start()
|
||||
|
||||
qt_utils.centralize(self)
|
||||
self._screen_geometry = get_current_screen_geometry()
|
||||
self._update_size_limits()
|
||||
|
||||
def verify_warnings(self):
|
||||
self.thread_warnings.start()
|
||||
@@ -671,7 +666,8 @@ class ManageWindow(QWidget):
|
||||
if self.table_apps.isEnabled() and self.pkgs is not None and 0 <= idx < len(self.pkgs):
|
||||
pkg = self.pkgs[idx]
|
||||
pkg.status = PackageViewStatus.READY
|
||||
self.table_apps.update_package(pkg)
|
||||
screen_width = get_current_screen_geometry(self).width()
|
||||
self.table_apps.update_package(pkg, screen_width=screen_width)
|
||||
|
||||
def _reload_categories(self):
|
||||
categories = set()
|
||||
@@ -687,11 +683,33 @@ class ManageWindow(QWidget):
|
||||
if categories:
|
||||
self._update_categories(categories, keep_selected=True)
|
||||
|
||||
def _update_size_limits(self):
|
||||
self.setMinimumHeight(int(self._screen_geometry.height() * 0.5))
|
||||
self.setMinimumWidth(int(self._screen_geometry.width() * 0.5))
|
||||
self.setMaximumWidth(int(self._screen_geometry.width()))
|
||||
|
||||
def changeEvent(self, e: QEvent):
|
||||
if isinstance(e, QWindowStateChangeEvent):
|
||||
self._maximized = self.isMaximized()
|
||||
self.table_apps.change_headers_policy(maximized=self._maximized)
|
||||
|
||||
if not self._maximized:
|
||||
self._reorganize()
|
||||
self.adjustSize()
|
||||
|
||||
def event(self, e: QEvent) -> bool:
|
||||
res = super(ManageWindow, self).event(e)
|
||||
|
||||
if self.isVisible() and e.type() == 216: # drop event
|
||||
current_geometry = get_current_screen_geometry()
|
||||
if current_geometry != self._screen_geometry: # only if the display device has changed
|
||||
self._screen_geometry = current_geometry
|
||||
self._update_size_limits()
|
||||
self._reorganize()
|
||||
self.adjustSize()
|
||||
|
||||
return res
|
||||
|
||||
def _handle_console(self, checked: bool):
|
||||
if checked:
|
||||
self.textarea_details.show()
|
||||
@@ -780,6 +798,7 @@ class ManageWindow(QWidget):
|
||||
util.notify_user('{} ({}) {}'.format(src_pkg.model.name, src_pkg.model.get_type(), self.i18n['uninstalled']))
|
||||
|
||||
if res['removed']:
|
||||
screen_width = get_current_screen_geometry(self).width()
|
||||
for list_idx, pkg_list in enumerate((self.pkgs_available, self.pkgs, self.pkgs_installed)):
|
||||
if pkg_list:
|
||||
removed_idxs = []
|
||||
@@ -796,7 +815,9 @@ class ManageWindow(QWidget):
|
||||
removed_idxs.append(pkgv_idx)
|
||||
|
||||
if self.search_performed and list_idx == 1: # only for displayed
|
||||
self.table_apps.update_package(pkgv, change_update_col=True)
|
||||
self.table_apps.update_package(pkgv,
|
||||
screen_width=screen_width,
|
||||
change_update_col=True)
|
||||
|
||||
break # as the model has been found, stops the loop
|
||||
|
||||
@@ -1286,8 +1307,7 @@ class ManageWindow(QWidget):
|
||||
|
||||
if pkg_info:
|
||||
if len(pkg_info) > 1:
|
||||
dialog_info = InfoDialog(pkg_info=pkg_info, icon_cache=self.icon_cache,
|
||||
i18n=self.i18n, screen_size=self.screen_size)
|
||||
dialog_info = InfoDialog(pkg_info=pkg_info, icon_cache=self.icon_cache, i18n=self.i18n)
|
||||
dialog_info.exec_()
|
||||
else:
|
||||
dialog.show_message(title=self.i18n['warning'].capitalize(),
|
||||
@@ -1462,10 +1482,11 @@ class ManageWindow(QWidget):
|
||||
self.pkgs_available.insert(new_idx, data[2])
|
||||
|
||||
# updating the respective table rows:
|
||||
screen_width = get_current_screen_geometry(self).width()
|
||||
for displayed in self.pkgs:
|
||||
for model in models_updated:
|
||||
if displayed.model == model:
|
||||
self.table_apps.update_package(displayed, change_update_col=True)
|
||||
self.table_apps.update_package(displayed, screen_width=screen_width, change_update_col=True)
|
||||
|
||||
self.update_bt_upgrade()
|
||||
|
||||
@@ -1565,7 +1586,8 @@ class ManageWindow(QWidget):
|
||||
self.settings_window.handle_display()
|
||||
else:
|
||||
self.settings_window = SettingsWindow(manager=self.manager, i18n=self.i18n, window=self)
|
||||
self.settings_window.setMinimumWidth(int(self.screen_size.width() / 4))
|
||||
screen_width = get_current_screen_geometry(self).width()
|
||||
self.settings_window.setMinimumWidth(int(screen_width / 4))
|
||||
self.settings_window.resize(self.size())
|
||||
self.settings_window.adjustSize()
|
||||
qt_utils.centralize(self.settings_window)
|
||||
@@ -1628,10 +1650,11 @@ class ManageWindow(QWidget):
|
||||
self._update_table_indexes()
|
||||
self.update_bt_upgrade()
|
||||
else:
|
||||
screen_width = get_current_screen_geometry(self).width()
|
||||
for pkg in self.pkgs:
|
||||
if pkg == res['pkg']:
|
||||
pkg.update_model(res['pkg'].model)
|
||||
self.table_apps.update_package(pkg, change_update_col=not any([self.search_performed, self.suggestions_requested]))
|
||||
self.table_apps.update_package(pkg, screen_width=screen_width, change_update_col=not any([self.search_performed, self.suggestions_requested]))
|
||||
self.update_bt_upgrade()
|
||||
break
|
||||
|
||||
|
||||
Reference in New Issue
Block a user