This repository has been archived by the owner on Oct 26, 2020. It is now read-only.
/
new_backup_window.py
117 lines (92 loc) · 4.06 KB
/
new_backup_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
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# -*- coding: utf-8 *-*
# This file is part of Minecraft Backup
# Minecraft Backup
from minecraft_backup.core.configuration import load_config
from minecraft_backup.gui.center_widget import center_widget
from minecraft_backup.core.make_backup import make_backup_thread
# PyQt4.QtGui
from PyQt4.QtGui import QDialog
from PyQt4.QtGui import QLabel
from PyQt4.QtGui import QLineEdit
from PyQt4.QtGui import QPushButton
from PyQt4.QtGui import QFileDialog
from PyQt4.QtGui import QProgressBar
from PyQt4.QtGui import QMessageBox
# PyQt4.QtCore
from PyQt4.QtCore import QRect
from PyQt4.QtCore import SIGNAL
from PyQt4.QtCore import QString
# os
from os import path
class new_backup_window(QDialog):
def __init__(self, parent=None):
QDialog.__init__(self, parent)
self.setGeometry(QRect(0, 0, 450, 200))
self.setMaximumSize(450, 200)
self.setMinimumSize(450, 200)
self.setWindowTitle('Create a new backup')
center_widget(self)
# STANNDARD BUTTONS
self.btn_cancel = QPushButton('Cancel', self)
self.btn_cancel.setGeometry(QRect(135, 160, 80, 28))
# btn_create_backup
self.btn_create_backup = QPushButton('Create backup', self)
self.btn_create_backup.setGeometry(QRect(235, 160, 200, 28))
# LABELS
self.generate_label('Name', 15, 20)
self.generate_label('Save folder', 15, 70)
# input_backup_name
self.input_backup_name = QLineEdit(self)
self.input_backup_name.setGeometry(QRect(100, 17, 335, 25))
self.input_backup_name.text().toUtf8()
self.input_backup_name.setToolTip('Name of backup')
self.input_backup_name.setFocus()
# btn_change_save_backup
self.btn_change_save_backup = QPushButton(
load_config('save_backup_folder'), self)
self.btn_change_save_backup.setGeometry(QRect(100, 64, 335, 30))
# progressbar
self.progressbar = QProgressBar(self)
self.progressbar.setGeometry(15, 120, 420, 15)
self.progressbar.setMaximum(0)
self.progressbar.setMinimum(0)
self.progressbar.hide()
# CONNECT SIGNALS
self.connect(self.btn_change_save_backup, SIGNAL('clicked()'),
self.change_save_backup)
self.connect(self.btn_cancel, SIGNAL('clicked()'), self.close)
self.connect(self.btn_create_backup, SIGNAL('clicked()'),
self.create_backup)
def generate_label(self, text, h, v):
self.label = QLabel(self)
self.label.setText(text)
self.label.adjustSize()
self.label.move(h, v)
def no_backup_name(self):
self.msg_no_backup_name = QMessageBox.information(self, 'Backup name',
'Enter a name for the backup')
self.input_backup_name.setFocus()
def dir_exists(self):
self.exists_msg = 'there is already a folder named "%s"' % (
self.input_backup_name.text())
self.msg_dir_exists = QMessageBox.warning(self,
'folder already exists',
self.exists_msg)
def change_save_backup(self):
self.file_dialog = QFileDialog.getExistingDirectory(self,
'Select folder saved for backup',
directory=self.btn_change_save_backup.text())
if self.file_dialog != '':
self.btn_change_save_backup.setText(self.file_dialog)
def create_backup(self):
if self.input_backup_name.text() == '':
self.no_backup_name()
else:
self.dst = path.join(str(self.btn_change_save_backup.text()),
str(self.input_backup_name.text().toUtf8()))
self.make_backup = make_backup_thread()
# CONNECT SIGNALS
self.connect(self.make_backup, SIGNAL('direxists()'),
self.dir_exists)
self.connect(self.make_backup, SIGNAL('makeend()'), self.close)
self.make_backup.run(self.dst)