[arch] improvement -> 'keep' as the default button for 'no longer needed deps' dialog | [ui] adding missing 'pointing hand' cursors

This commit is contained in:
Vinicius Moreira
2020-09-05 23:52:26 -03:00
parent faa8cc4e0d
commit bf6361a6d1
11 changed files with 20 additions and 17 deletions

View File

@@ -1142,17 +1142,15 @@ class ArchManager(SoftwareManager):
def _request_unncessary_uninstall_confirmation(self, uninstalled: Iterable[str], unnecessary: Iterable[str], watcher: ProcessWatcher) -> Optional[List[str]]: def _request_unncessary_uninstall_confirmation(self, uninstalled: Iterable[str], unnecessary: Iterable[str], watcher: ProcessWatcher) -> Optional[List[str]]:
reqs = [InputOption(label=p, value=p, icon_path=get_icon_path(), read_only=False) for p in unnecessary] reqs = [InputOption(label=p, value=p, icon_path=get_icon_path(), read_only=False) for p in unnecessary]
reqs_select = MultipleSelectComponent(options=reqs, default_options=set(reqs), label="", max_per_line=3) reqs_select = MultipleSelectComponent(options=reqs, default_options=set(reqs), label="", max_per_line=3 if len(reqs) > 9 else 1)
if not watcher.request_confirmation(title=self.i18n['arch.uninstall.unnecessary.l1'].capitalize(), if not watcher.request_confirmation(title=self.i18n['arch.uninstall.unnecessary.l1'].capitalize(),
body='<p>{}</p>'.format(self.i18n['arch.uninstall.unnecessary.l2']), body='<p>{}</p>'.format(self.i18n['arch.uninstall.unnecessary.l2'] + ':'),
components=[reqs_select], components=[reqs_select],
confirmation_label=self.i18n['arch.uninstall.unnecessary.proceed'].capitalize(), deny_label=self.i18n['arch.uninstall.unnecessary.proceed'].capitalize(),
deny_label=self.i18n['arch.uninstall.unnecessary.cancel'].capitalize(), confirmation_label=self.i18n['arch.uninstall.unnecessary.cancel'].capitalize(),
window_cancel=False): window_cancel=False):
return return reqs_select.get_selected_values()
return reqs_select.get_selected_values()
def _request_all_unncessary_uninstall_confirmation(self, pkgs: Iterable[str], context: TransactionContext): def _request_all_unncessary_uninstall_confirmation(self, pkgs: Iterable[str], context: TransactionContext):
reqs = [InputOption(label=p, value=p, icon_path=get_icon_path(), read_only=True) for p in pkgs] reqs = [InputOption(label=p, value=p, icon_path=get_icon_path(), read_only=True) for p in pkgs]

View File

@@ -218,7 +218,7 @@ arch.uninstall.required_by.advice=It is necessary to uninstall them as well to p
arch.uninstall.unnecessary.all=The following {} packages will be uninstalled arch.uninstall.unnecessary.all=The following {} packages will be uninstalled
arch.uninstall.unnecessary.cancel=Keep arch.uninstall.unnecessary.cancel=Keep
arch.uninstall.unnecessary.l1=Packages successfully uninstalled! arch.uninstall.unnecessary.l1=Packages successfully uninstalled!
arch.uninstall.unnecessary.l2=The packages below seem to be no longer necessary. Select those you want to uninstall arch.uninstall.unnecessary.l2=The packages below seem to be no longer necessary
arch.uninstall.unnecessary.proceed=Uninstall arch.uninstall.unnecessary.proceed=Uninstall
arch.uninstalling.conflict=Uninstalling conflicting packages arch.uninstalling.conflict=Uninstalling conflicting packages
arch.uninstalling.conflict.fail=It was not possible to uninstall the conflicting packages: {} arch.uninstalling.conflict.fail=It was not possible to uninstall the conflicting packages: {}

View File

@@ -218,7 +218,7 @@ arch.uninstall.required_by.advice=It is necessary to uninstall them as well to p
arch.uninstall.unnecessary.all=The following {} packages will be uninstalled arch.uninstall.unnecessary.all=The following {} packages will be uninstalled
arch.uninstall.unnecessary.cancel=Keep arch.uninstall.unnecessary.cancel=Keep
arch.uninstall.unnecessary.l1=Packages successfully uninstalled! arch.uninstall.unnecessary.l1=Packages successfully uninstalled!
arch.uninstall.unnecessary.l2=The packages below seem to be no longer necessary. Select those you want to uninstall arch.uninstall.unnecessary.l2=The packages below seem to be no longer necessary
arch.uninstall.unnecessary.proceed=Uninstall arch.uninstall.unnecessary.proceed=Uninstall
arch.uninstalling.conflict=Uninstalling conflicting packages arch.uninstalling.conflict=Uninstalling conflicting packages
arch.uninstalling.conflict.fail=It was not possible to uninstall the conflicting packages: {} arch.uninstalling.conflict.fail=It was not possible to uninstall the conflicting packages: {}

View File

@@ -219,7 +219,7 @@ arch.uninstall.required_by.advice=It is necessary to uninstall them as well to p
arch.uninstall.unnecessary.all=The following {} packages will be uninstalled arch.uninstall.unnecessary.all=The following {} packages will be uninstalled
arch.uninstall.unnecessary.cancel=Keep arch.uninstall.unnecessary.cancel=Keep
arch.uninstall.unnecessary.l1=Packages successfully uninstalled! arch.uninstall.unnecessary.l1=Packages successfully uninstalled!
arch.uninstall.unnecessary.l2=The packages below seem to be no longer necessary. Select those you want to uninstall arch.uninstall.unnecessary.l2=The packages below seem to be no longer necessary
arch.uninstall.unnecessary.proceed=Uninstall arch.uninstall.unnecessary.proceed=Uninstall
arch.uninstalling.conflict=Uninstalling conflicting packages arch.uninstalling.conflict=Uninstalling conflicting packages
arch.uninstalling.conflict.fail=It was not possible to uninstall the conflicting packages: {} arch.uninstalling.conflict.fail=It was not possible to uninstall the conflicting packages: {}

View File

@@ -218,7 +218,7 @@ arch.uninstall.required_by.advice=Es necesario desinstalarlos también para cont
arch.uninstall.unnecessary.all=Los {} seguintes paquetes serán desinstalados arch.uninstall.unnecessary.all=Los {} seguintes paquetes serán desinstalados
arch.uninstall.unnecessary.cancel=Mantener arch.uninstall.unnecessary.cancel=Mantener
arch.uninstall.unnecessary.l1=¡Paquetes desinstalados con éxito! arch.uninstall.unnecessary.l1=¡Paquetes desinstalados con éxito!
arch.uninstall.unnecessary.l2=Parece que los paquetes abajo ya no son necesarios. Seleccione los que desea desinstalar arch.uninstall.unnecessary.l2=Parece que los paquetes abajo ya no son necesarios
arch.uninstall.unnecessary.proceed=Desinstalar arch.uninstall.unnecessary.proceed=Desinstalar
arch.uninstalling.conflict=Eliminando paquetes conflictivos arch.uninstalling.conflict=Eliminando paquetes conflictivos
arch.uninstalling.conflict.fail=No fue posible desinstalar los paquetes conflictivos: {} arch.uninstalling.conflict.fail=No fue posible desinstalar los paquetes conflictivos: {}

View File

@@ -218,7 +218,7 @@ arch.uninstall.required_by.advice=It is necessary to uninstall them as well to p
arch.uninstall.unnecessary.all=The following {} packages will be uninstalled arch.uninstall.unnecessary.all=The following {} packages will be uninstalled
arch.uninstall.unnecessary.cancel=Keep arch.uninstall.unnecessary.cancel=Keep
arch.uninstall.unnecessary.l1=Packages successfully uninstalled! arch.uninstall.unnecessary.l1=Packages successfully uninstalled!
arch.uninstall.unnecessary.l2=The packages below seem to be no longer necessary. Select those you want to uninstall arch.uninstall.unnecessary.l2=The packages below seem to be no longer necessary
arch.uninstall.unnecessary.proceed=Uninstall arch.uninstall.unnecessary.proceed=Uninstall
arch.uninstalling.conflict=Uninstalling conflicting packages arch.uninstalling.conflict=Uninstalling conflicting packages
arch.uninstalling.conflict.fail=It was not possible to uninstall the conflicting packages: {} arch.uninstalling.conflict.fail=It was not possible to uninstall the conflicting packages: {}

View File

@@ -218,7 +218,7 @@ arch.uninstall.required_by.advice=Para prosseguir será necessário desinstá-lo
arch.uninstall.unnecessary.all=Os seguintes {} pacotes serão desinstalados arch.uninstall.unnecessary.all=Os seguintes {} pacotes serão desinstalados
arch.uninstall.unnecessary.cancel=Manter arch.uninstall.unnecessary.cancel=Manter
arch.uninstall.unnecessary.l1=Pacotes desinstalados com sucesso! arch.uninstall.unnecessary.l1=Pacotes desinstalados com sucesso!
arch.uninstall.unnecessary.l2=Os pacotes abaixo parecem não ser mais necessários. Selecione os desejados para desinstalação arch.uninstall.unnecessary.l2=Os pacotes abaixo parecem não ser mais necessários
arch.uninstall.unnecessary.proceed=Desinstalar arch.uninstall.unnecessary.proceed=Desinstalar
arch.uninstalling.conflict=Desinstalando pacotes conflitante arch.uninstalling.conflict=Desinstalando pacotes conflitante
arch.uninstalling.conflict.fail=Não foi possível desinstalar os pacotes conflitantes: {} arch.uninstalling.conflict.fail=Não foi possível desinstalar os pacotes conflitantes: {}

View File

@@ -218,7 +218,7 @@ arch.uninstall.required_by.advice=It is necessary to uninstall them as well to p
arch.uninstall.unnecessary.all=The following {} packages will be uninstalled arch.uninstall.unnecessary.all=The following {} packages will be uninstalled
arch.uninstall.unnecessary.cancel=Keep arch.uninstall.unnecessary.cancel=Keep
arch.uninstall.unnecessary.l1=Packages successfully uninstalled! arch.uninstall.unnecessary.l1=Packages successfully uninstalled!
arch.uninstall.unnecessary.l2=The packages below seem to be no longer necessary. Select those you want to uninstall arch.uninstall.unnecessary.l2=The packages below seem to be no longer necessary
arch.uninstall.unnecessary.proceed=Uninstall arch.uninstall.unnecessary.proceed=Uninstall
arch.uninstalling.conflict=Uninstalling conflicting packages arch.uninstalling.conflict=Uninstalling conflicting packages
arch.uninstalling.conflict.fail=It was not possible to uninstall the conflicting packages: {} arch.uninstalling.conflict.fail=It was not possible to uninstall the conflicting packages: {}

View File

@@ -218,7 +218,7 @@ arch.uninstall.required_by.advice=Devam etmek için bunları da kaldırmak gerek
arch.uninstall.unnecessary.all=Aşağıdaki {} paketler kaldırılacak arch.uninstall.unnecessary.all=Aşağıdaki {} paketler kaldırılacak
arch.uninstall.unnecessary.cancel=Tut arch.uninstall.unnecessary.cancel=Tut
arch.uninstall.unnecessary.l1=Packages successfully uninstalled! arch.uninstall.unnecessary.l1=Packages successfully uninstalled!
arch.uninstall.unnecessary.l2=The packages below seem to be no longer necessary. Select those you want to uninstall arch.uninstall.unnecessary.l2=The packages below seem to be no longer necessary
arch.uninstall.unnecessary.proceed=Kaldır arch.uninstall.unnecessary.proceed=Kaldır
arch.uninstalling.conflict=Uninstalling conflicting packages arch.uninstalling.conflict=Uninstalling conflicting packages
arch.uninstalling.conflict.fail=It was not possible to uninstall the conflicting packages: {} arch.uninstalling.conflict.fail=It was not possible to uninstall the conflicting packages: {}

View File

@@ -1,6 +1,7 @@
from typing import List from typing import List
from PyQt5.QtCore import QSize, Qt from PyQt5.QtCore import QSize, Qt
from PyQt5.QtGui import QCursor
from PyQt5.QtWidgets import QMessageBox, QVBoxLayout, QLabel, QWidget, QScrollArea, QFrame from PyQt5.QtWidgets import QMessageBox, QVBoxLayout, QLabel, QWidget, QScrollArea, QFrame
from bauh.api.abstract.view import ViewComponent from bauh.api.abstract.view import ViewComponent
@@ -25,11 +26,13 @@ class ConfirmationDialog(QMessageBox):
self.bt_yes = None self.bt_yes = None
if confirmation_button: if confirmation_button:
self.bt_yes = self.addButton(i18n['popup.button.yes'] if not confirmation_label else confirmation_label.capitalize(), QMessageBox.YesRole) self.bt_yes = self.addButton(i18n['popup.button.yes'] if not confirmation_label else confirmation_label.capitalize(), QMessageBox.YesRole)
self.bt_yes.setCursor(QCursor(Qt.PointingHandCursor))
self.bt_yes.setStyleSheet(css.OK_BUTTON) self.bt_yes.setStyleSheet(css.OK_BUTTON)
self.setDefaultButton(self.bt_yes) self.setDefaultButton(self.bt_yes)
if deny_button: if deny_button:
self.bt_no = self.addButton(i18n['popup.button.no'] if not deny_label else deny_label.capitalize(), QMessageBox.NoRole) self.bt_no = self.addButton(i18n['popup.button.no'] if not deny_label else deny_label.capitalize(), QMessageBox.NoRole)
self.bt_no.setCursor(QCursor(Qt.PointingHandCursor))
if not confirmation_button: if not confirmation_button:
self.bt_no.setStyleSheet(css.OK_BUTTON) self.bt_no.setStyleSheet(css.OK_BUTTON)

View File

@@ -1,7 +1,7 @@
from typing import List from typing import List
from PyQt5.QtCore import Qt from PyQt5.QtCore import Qt
from PyQt5.QtGui import QIcon from PyQt5.QtGui import QIcon, QCursor
from PyQt5.QtWidgets import QMessageBox, QLabel, QWidget, QHBoxLayout from PyQt5.QtWidgets import QMessageBox, QLabel, QWidget, QHBoxLayout
from bauh.api.abstract.view import MessageType from bauh.api.abstract.view import MessageType
@@ -47,9 +47,11 @@ def ask_confirmation(title: str, body: str, i18n: I18n, icon: QIcon = QIcon(reso
bt_yes = diag.addButton(i18n['popup.button.yes'], QMessageBox.YesRole) bt_yes = diag.addButton(i18n['popup.button.yes'], QMessageBox.YesRole)
bt_yes.setStyleSheet(css.OK_BUTTON) bt_yes.setStyleSheet(css.OK_BUTTON)
bt_yes.setCursor(QCursor(Qt.PointingHandCursor))
diag.setDefaultButton(bt_yes) diag.setDefaultButton(bt_yes)
diag.addButton(i18n['popup.button.no'], QMessageBox.NoRole) bt_no = diag.addButton(i18n['popup.button.no'], QMessageBox.NoRole)
bt_no.setCursor(QCursor(Qt.PointingHandCursor))
if icon: if icon:
diag.setWindowIcon(icon) diag.setWindowIcon(icon)