-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathv005_2_layouts_compressao.py
87 lines (65 loc) · 4.48 KB
/
v005_2_layouts_compressao.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
import os
import sys
from PySide6.QtWidgets import QHBoxLayout, QVBoxLayout, QLabel, QListWidget
from PySide6.QtGui import QIcon
from PySide6.QtCore import Qt
class LayoutsCompressao:
def __init__(self, gerenciador_interface, create_button):
self.gerenciador_interface = gerenciador_interface
self.create_button = create_button
self.base_path = getattr(sys, "_MEIPASS", os.path.dirname(os.path.abspath(__file__)))
self.icon_path = os.path.join(self.base_path, "icones")
def create_compression_method_layouts(self):
methods = ['rar', 'zip', '7z', 'tar.bz2', 'zipx', 'tar.xz', 'tgz', 'tar.gz', 'lzh', 'iso', 'tar', 'wim', 'extracao']
return {method: getattr(self, f'create_{method.replace(".", "_")}_layout') for method in methods}
def create_layout(self, method, icon_name, store_callback, clear_callback):
layout = QHBoxLayout()
layout_1 = QVBoxLayout()
layout_2 = QVBoxLayout()
output_button = self.create_button(f"Especificar Saída .{method.upper()}")
output_button.clicked.connect(getattr(self.gerenciador_interface, f'output_button_output_{method.upper()}_clicked'))
layout_1.addWidget(output_button)
store_button = self.create_button(f"Armazenar .{method.upper()}")
store_button.setIcon(QIcon(os.path.join(self.icon_path, icon_name)))
store_button.clicked.connect(store_callback)
layout_1.addWidget(store_button)
clear_button = self.create_button("Limpar Saída")
clear_button.setIcon(QIcon(os.path.join(self.icon_path, "clear_button2.png")))
clear_button.clicked.connect(clear_callback)
layout_1.addWidget(clear_button)
layout.addLayout(layout_1)
layout.setAlignment(layout_1, Qt.AlignmentFlag.AlignBottom)
output_label = QLabel(f"Diretório(s) de saída .{method.upper()}:")
layout_2.addWidget(output_label)
listbox = QListWidget()
listbox.setMinimumHeight(82)
layout_2.addWidget(listbox)
layout.addLayout(layout_2)
setattr(self.gerenciador_interface, f'output_listbox_{method}', listbox)
return layout
def create_rar_layout(self):
return self.create_layout('rar', 'winrar3.png', self.gerenciador_interface.store_as_rar, self.gerenciador_interface.clear_output_listbox_rar)
def create_zip_layout(self):
return self.create_layout('zip', 'winzip4.png', self.gerenciador_interface.store_as_zip, self.gerenciador_interface.clear_output_listbox_zip)
def create_7z_layout(self):
return self.create_layout('7z', 'sevenzip4.png', self.gerenciador_interface.store_as_7z, self.gerenciador_interface.clear_output_listbox_7z)
def create_tar_bz2_layout(self):
return self.create_layout('tar_bz2', 'bz2.png', self.gerenciador_interface.store_as_bzip2, self.gerenciador_interface.clear_output_listbox_bzip2)
def create_zipx_layout(self):
return self.create_layout('zipx', 'zipx.ico', self.gerenciador_interface.store_as_zipx, self.gerenciador_interface.clear_output_listbox_zipx)
def create_tar_xz_layout(self):
return self.create_layout('tar_xz', 'txz.ico', self.gerenciador_interface.store_as_tarxz, self.gerenciador_interface.clear_output_listbox_tarxz)
def create_tgz_layout(self):
return self.create_layout('tgz', 'tgz.ico', self.gerenciador_interface.store_as_tgz, self.gerenciador_interface.clear_output_listbox_tgz)
def create_tar_gz_layout(self):
return self.create_layout('tar_gz', 'gzip1.png', self.gerenciador_interface.store_as_targz, self.gerenciador_interface.clear_output_listbox_targz)
def create_lzh_layout(self):
return self.create_layout('lzh', 'lzh.ico', self.gerenciador_interface.store_as_lzh, self.gerenciador_interface.clear_output_listbox_lzh)
def create_iso_layout(self):
return self.create_layout('iso', 'iso.ico', self.gerenciador_interface.store_as_iso, self.gerenciador_interface.clear_output_listbox_iso)
def create_tar_layout(self):
return self.create_layout('tar', 'tar1.png', self.gerenciador_interface.store_as_tar, self.gerenciador_interface.clear_output_listbox_tar)
def create_wim_layout(self):
return self.create_layout('wim', 'wim.png', self.gerenciador_interface.store_as_wim, self.gerenciador_interface.clear_output_listbox_wim)
def create_extracao_layout(self):
return self.create_layout('extracao', 'extracao4.png', self.gerenciador_interface.extract_files, self.gerenciador_interface.clear_output_listbox_extracao)