[ui][settings] supported types working

This commit is contained in:
Vinícius Moreira
2020-01-24 18:17:52 -03:00
parent f37e66a63c
commit b530cbe0fc
40 changed files with 379 additions and 80 deletions

View File

@@ -4,6 +4,7 @@ import re
import shutil
import subprocess
import time
import traceback
from pathlib import Path
from threading import Thread
from typing import List, Set, Type, Tuple, Dict
@@ -18,11 +19,13 @@ from bauh.api.abstract.model import PackageUpdate, PackageHistory, SoftwarePacka
from bauh.api.abstract.view import MessageType, FormComponent, InputOption, SingleSelectComponent, SelectViewType, \
ViewComponent, PanelComponent
from bauh.commons.category import CategoriesDownloader
from bauh.commons.config import save_config
from bauh.commons.html import bold
from bauh.commons.system import SystemProcess, ProcessHandler, new_subprocess, run_cmd, new_root_subprocess, \
SimpleProcess
from bauh.gems.arch import BUILD_DIR, aur, pacman, makepkg, pkgbuild, message, confirmation, disk, git, \
gpg, URL_CATEGORIES_FILE, CATEGORIES_CACHE_DIR, CATEGORIES_FILE_PATH, CUSTOM_MAKEPKG_FILE, SUGGESTIONS_FILE
gpg, URL_CATEGORIES_FILE, CATEGORIES_CACHE_DIR, CATEGORIES_FILE_PATH, CUSTOM_MAKEPKG_FILE, SUGGESTIONS_FILE, \
CONFIG_FILE
from bauh.gems.arch.aur import AURClient
from bauh.gems.arch.config import read_config
from bauh.gems.arch.depedencies import DependenciesAnalyser
@@ -888,22 +891,37 @@ class ArchManager(SoftwareManager):
def get_settings(self) -> ViewComponent:
config = read_config()
optz_opts = [InputOption(label='on'.capitalize(), value=True),
InputOption(label='off'.capitalize(), value=False)]
optz_opts = [InputOption(label=self.i18n['yes'].capitalize(), value=True, tooltip=self.i18n['arch.config.optimize.true.tip']),
InputOption(label=self.i18n['no'].capitalize(), value=False, tooltip=self.i18n['arch.config.optimize.false.tip'])]
trans_check_opts = [InputOption(label='on'.capitalize(), value=True),
InputOption(label='off'.capitalize(), value=False)]
trans_check_opts = [InputOption(label=self.i18n['yes'].capitalize(), value=True, tooltip=self.i18n['arch.config.trans_dep_check.true.tip']),
InputOption(label=self.i18n['no'].capitalize(), value=False, tooltip=self.i18n['arch.config.trans_dep_check.false.tip'])]
fields = [
SingleSelectComponent(label='Optimizations',
SingleSelectComponent(label=self.i18n['arch.config.optimize'].capitalize(),
options=optz_opts,
default_option=[o for o in optz_opts if o.value == config['optimize']][0],
max_per_line=len(optz_opts),
type_=SelectViewType.RADIO),
SingleSelectComponent(label='Transitive dependency checking',
type_=SelectViewType.RADIO,
id_='opts'),
SingleSelectComponent(label=self.i18n['arch.config.trans_dep_check'].capitalize(),
options=trans_check_opts,
default_option=[o for o in trans_check_opts if o.value == config['optimize']][0],
default_option=[o for o in trans_check_opts if o.value == config['transitive_checking']][0],
max_per_line=len(trans_check_opts),
type_=SelectViewType.RADIO)]
type_=SelectViewType.RADIO,
id_='dep_check')]
return PanelComponent([FormComponent(fields, label='Installation')])
return PanelComponent([FormComponent(fields, label=self.i18n['installation'].capitalize())])
def save_settings(self, component: PanelComponent) -> Tuple[bool, List[str]]:
config = read_config()
form_install = component.components[0]
config['optimize'] = form_install.get_component('opts').get_selected()
config['transitive_checking'] = form_install.get_component('dep_check').get_selected()
try:
save_config(config, CONFIG_FILE)
return True, None
except:
return False, [traceback.format_exc()]

View File

@@ -101,4 +101,10 @@ arch.aur.install.unknown_key.receive_error=No sha pogut rebre la clau públic
arch.install.aur.unknown_key.body=Per a continuar amb la instal·lació de {} cal confiar en la clau pública següent {}
arch.aur.install.validity_check.title=Problemes dintegritat
arch.aur.install.validity_check.body=Alguns dels fitxers font necessaris per a la instal·lació de {} són malmesos. La instal·lació es cancel·larà per a evitar danys al vostre sistema.
arch.makepkg.optimizing=Optimitzant la recopilació
arch.makepkg.optimizing=Optimitzant la recopilació
arch.config.optimize=optimitzar
arch.config.trans_dep_check=verificar dependències
arch.config.optimize.true.tip=La configuració optimitzada s'utilitzarà per fer més ràpida la instal·lació dels paquets
arch.config.optimize.false.tip=La configuració predeterminada del sistema s'utilitzarà per realitzar la instal·lació dels paquets
arch.config.trans_dep_check.true.tip=Si totes les dependències del paquet shan de verificar abans de la instal·lació.
arch.config.trans_dep_check.false.tip=Si s'han de destapar les dependències del paquet durant la seva instal·lació

View File

@@ -101,4 +101,10 @@ aur.info.validpgpkeys=gültige PGP Schlüssel
aur.info.options=Optionen
aur.info.provides=stellt bereit
aur.info.conflicts with=Konflikt mit
arch.makepkg.optimizing=Optimiert die Zusammenstellung
arch.makepkg.optimizing=Optimiert die Zusammenstellung
arch.config.optimize=optimieren
arch.config.trans_dep_check=Um Abhängigkeiten zu verifizieren
arch.config.optimize.true.tip=Optimierte Einstellungen werden verwendet, um die Paketinstallation zu beschleunigen
arch.config.optimize.false.tip=Für die Installation der Pakete werden die Standardsystemeinstellungen verwendet
arch.config.trans_dep_check.true.tip=Wenn alle Paketabhängigkeiten überprüft werden sollen, bevor die Installation beginnt
arch.config.trans_dep_check.false.tip=Wenn die Paketabhängigkeiten bei der Installation aufgedeckt werden sollen

View File

@@ -101,4 +101,10 @@ aur.info.validpgpkeys=valid PGP keys
aur.info.options=options
aur.info.provides=provides
aur.info.conflicts with=conflicts with
arch.makepkg.optimizing=Optimizing the compilation
arch.makepkg.optimizing=Optimizing the compilation
arch.config.optimize=optimize
arch.config.trans_dep_check=check dependencies
arch.config.optimize.true.tip=Optimized settings will be used in order to make the packages installation faster
arch.config.optimize.false.tip=The default system settings will be used to perform the packages installation
arch.config.trans_dep_check.true.tip=If all the package dependencies should be verified before the installation starts
arch.config.trans_dep_check.false.tip=If the package dependencies should be uncovered during its installation

View File

@@ -101,4 +101,10 @@ arch.aur.install.unknown_key.receive_error=No fue posible recibir la clave públ
arch.install.aur.unknown_key.body=Para continuar la instalación de {} es necesario confiar en la siguiente clave pública {}
arch.aur.install.validity_check.title=Problemas de integridad
arch.aur.install.validity_check.body=Algunos de los archivos fuente necesarios para la instalación de {} no están en buen estado. La instalación se cancelará para evitar daños a su sistema.
arch.makepkg.optimizing=Optimizando la compilación
arch.makepkg.optimizing=Optimizando la compilación
arch.config.optimize=optimizar
arch.config.trans_dep_check=verificar dependencias
arch.config.optimize.true.tip=Se utilizará una configuración optimizada para acelerar la instalación de los paquetes
arch.config.optimize.false.tip=Se utilizará la configuración predeterminada del sistema para realizar la instalación de paquetes
arch.config.trans_dep_check.true.tip=Si todas las dependencias del paquete deben ser verificadas antes de que comience la instalación
arch.config.trans_dep_check.false.tip=Si las dependencias del paquete deben ser descubiertas durante su instalación

View File

@@ -69,4 +69,10 @@ arch.aur.install.unknown_key.status=Ricezione della chiave pubblica {}
arch.aur.install.unknown_key.receive_error=Impossibile ricevere la chiave pubblica {}
arch.aur.install.validity_check.title=Problemi di integrità
arch.aur.install.validity_check.body=Alcuni dei file di origine necessari per l'installazione di {} non sono integri. L'installazione verrà annullata per evitare danni al sistema.
arch.makepkg.optimizing=Ottimizzando la compilazione
arch.makepkg.optimizing=Ottimizzando la compilazione
arch.config.optimize=ottimizzare
arch.config.trans_dep_check=verificare dipendenze
arch.config.optimize.true.tip=Le impostazioni ottimizzate verranno utilizzate per rendere l'installazione dei pacchetti più veloce
arch.config.optimize.false.tip=Le impostazioni di sistema predefinite verranno utilizzate per eseguire l'installazione dei pacchetti
arch.config.trans_dep_check.true.tip=Se tutte le dipendenze del pacchetto devono essere verificate prima dell'inizio dell'installazione
arch.config.trans_dep_check.false.tip=Se le dipendenze del pacchetto devono essere scoperte durante la sua installazione

View File

@@ -101,4 +101,10 @@ arch.aur.install.unknown_key.status=Recebendo a chave pública {}
arch.aur.install.unknown_key.receive_error=Não fui possível receber a chave pública {}
arch.aur.install.validity_check.title=Problemas de integridade
arch.aur.install.validity_check.body=Alguns dos arquivos-fonte necessários para instalação de {} não estão íntegros. A instalação será cancelada para evitar danos no seu sistema.
arch.makepkg.optimizing=Otimizando a compilação
arch.makepkg.optimizing=Otimizando a compilação
arch.config.optimize=otimizar
arch.config.trans_dep_check=verificar dependências
arch.config.optimize.true.tip=Utilizará configurações otimizadas para que a instalação de pacotes seja mais rápida
arch.config.optimize.false.tip=Utilizará as configurações padrões do sistema para realizar a instalação de pacotes
arch.config.trans_dep_check.true.tip=Se todas as dependências do pacote devem ser verificadas antes da instalação começar
arch.config.trans_dep_check.false.tip=Se as dependências do pacote devem ser descobertas durante a instalação