forked from nexusriot/s3duck
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathproperties_window.py
55 lines (48 loc) · 1.82 KB
/
properties_window.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
import botocore.exceptions
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class PropertiesWindow(QDialog):
def __init__(self, *args, **kwargs):
settings = kwargs.pop("settings")
super().__init__(*args, **kwargs)
model, key = settings
self.setWindowTitle("Object properties")
self.setGeometry(140, 140, 600, 200)
qtRectangle = self.frameGeometry()
centerPoint = QDesktopWidget().availableGeometry().center()
qtRectangle.moveCenter(centerPoint)
self.move(qtRectangle.topLeft())
self.setWindowModality(Qt.ApplicationModal)
self.key = key
self.model = model
self.formGroupBox = QGroupBox("Properties")
self.keyName = QLabel()
self.size = QLabel()
self.eTag = QLabel()
self.createForm()
self.buttonBox = QDialogButtonBox(QDialogButtonBox.Ok)
mainLayout = QVBoxLayout()
mainLayout.addWidget(self.formGroupBox)
mainLayout.addWidget(self.buttonBox)
self.setLayout(mainLayout)
btn_apply = self.buttonBox.button(QDialogButtonBox.Ok)
btn_apply.clicked.connect(self.exit)
self.keyName.setText(key)
self.e_tag = ""
try:
resp = self.model.object_properties(key)
self.e_tag = resp.get("ETag", "").replace('"', "")
except botocore.exceptions.ClientError:
pass
self.size.setText(str(self.model.get_size(key)) + " Bytes")
self.eTag.setText(self.e_tag)
def exit(self):
self.close()
def exec_(self):
super().exec_()
def createForm(self):
layout = QFormLayout()
layout.addRow(QLabel("Key"), self.keyName)
layout.addRow(QLabel("Size"), self.size)
layout.addRow(QLabel("ETag"), self.eTag)
self.formGroupBox.setLayout(layout)