[improvement][ui] widgets visibility settings

This commit is contained in:
Vinícius Moreira
2020-01-10 11:46:16 -03:00
parent d8d603b73c
commit bbd5c1b877
3 changed files with 18 additions and 13 deletions

View File

@@ -11,6 +11,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Web:
- not using HTTP sessions anymore to perform the searches. It seems to avoid URLs not being found after an internet drop event.
- supporting JPEG images as custom icons
- UI:
- widgets visibility settings ( the main widgets now should always be visible ( e.g: toolbar buttons )
- only centralizing the panel for the first refresh
### Fixes
- missing categories i18n [48](https://github.com/vinifmor/bauh/issues/48)
@@ -21,7 +24,6 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
### UI
- Default **Type** icon removed from the Type filter to make the design more consistent with the Category filter.
- Only centralizing the panel for the first refresh
## [0.8.0] 2019-12-24
### Features

View File

@@ -456,3 +456,9 @@ class AppsTable(QTableWidget):
header_horizontal = self.horizontalHeader()
for i in range(self.columnCount()):
header_horizontal.setSectionResizeMode(i, policy)
def get_width(self):
w = self.verticalHeader().width() + 4 # +4 seems to be needed
for i in range(self.columnCount()):
w += self.columnWidth(i) # seems to include gridline (on my machine)
return w

View File

@@ -6,9 +6,10 @@ from pathlib import Path
from typing import List, Type, Set
from PyQt5.QtCore import QEvent, Qt, QSize, pyqtSignal
from PyQt5.QtGui import QIcon, QWindowStateChangeEvent, QPixmap, QCursor
from PyQt5.QtGui import QIcon, QWindowStateChangeEvent, QCursor
from PyQt5.QtWidgets import QWidget, QVBoxLayout, QCheckBox, QHeaderView, QToolBar, \
QLabel, QPlainTextEdit, QLineEdit, QProgressBar, QPushButton, QComboBox, QMenu, QAction, QApplication, QListView
QLabel, QPlainTextEdit, QLineEdit, QProgressBar, QPushButton, QComboBox, QMenu, QAction, QApplication, QListView, \
QSizePolicy, QMainWindow
from bauh.api.abstract.cache import MemoryCache
from bauh.api.abstract.context import ApplicationContext
@@ -33,7 +34,7 @@ from bauh.view.qt.thread import UpdateSelectedApps, RefreshApps, UninstallApp, D
GetAppHistory, SearchPackages, InstallPackage, AnimateProgress, VerifyModels, FindSuggestions, ListWarnings, \
AsyncAction, LaunchApp, ApplyFilters, CustomAction, GetScreenshots
from bauh.view.qt.view_model import PackageView
from bauh.view.qt.view_utils import load_icon, load_resource_icon
from bauh.view.qt.view_utils import load_icon
from bauh.view.util import util, resource
from bauh.view.util.translation import I18n
@@ -135,6 +136,7 @@ class ManageWindow(QWidget):
self.layout.addWidget(self.toolbar_top)
self.toolbar = QToolBar()
self.toolbar.setSizePolicy(QSizePolicy.Minimum, QSizePolicy.Minimum)
self.toolbar.setStyleSheet('QToolBar {spacing: 4px; margin-top: 15px; margin-bottom: 5px}')
self.checkbox_updates = QCheckBox()
@@ -829,20 +831,15 @@ class ManageWindow(QWidget):
self.ref_combo_categories.setVisible(False)
def resize_and_center(self, accept_lower_width: bool = True):
if self.pkgs:
new_width = reduce(operator.add, [self.table_apps.columnWidth(i) for i in range(self.table_apps.columnCount())])
table_width = self.table_apps.get_width()
toolbar_width = self.toolbar.sizeHint().width()
topbar_width = self.toolbar_top.sizeHint().width()
if self.ref_bt_upgrade.isVisible() or self.ref_bt_settings.isVisible():
new_width *= 1.07
else:
new_width = self.toolbar_top.width()
new_width = max(table_width, toolbar_width, topbar_width)
if accept_lower_width or new_width > self.width():
self.resize(new_width, self.height())
if self.ref_bt_upgrade.isVisible() and self.bt_upgrade.visibleRegion().isEmpty():
self.adjustSize()
if self.first_refresh:
qt_utils.centralize(self)