Skip to content
This repository has been archived by the owner on Oct 26, 2020. It is now read-only.

Commit

Permalink
Make a Minecraft backup
Browse files Browse the repository at this point in the history
  • Loading branch information
LuqueDaniel committed Sep 26, 2012
1 parent aa58b6a commit 8947464
Show file tree
Hide file tree
Showing 3 changed files with 76 additions and 26 deletions.
45 changes: 32 additions & 13 deletions minecraft_backup/core/make_backup.py
Expand Up @@ -5,6 +5,10 @@
from minecraft_backup.resources import GAME_PATH
from minecraft_backup.core.configuration import get_os

# PyQt4.QtCore
from PyQt4.QtCore import QThread
from PyQt4.QtCore import SIGNAL

# OS
from os import listdir
from os import mkdir
Expand All @@ -16,21 +20,36 @@
from shutil import copystat


def make_backup(dst):
"""This function make a Minecraft backup"""
class make_backup_thread(QThread):

def __init__(self, parent=None):
QThread.__init__(self, parent)

os = get_os()
def run(self, dst):
if path.exists(dst):
self.emit(SIGNAL('direxists()'))
else:
self.make_backup(dst)

names = listdir(GAME_PATH[os])
mkdir(dst)
self.exit()

for name in names:
src_name = path.join(GAME_PATH[os], name)
dst_name = path.join(dst, name)
def make_backup(self, dst):
"""This function make a Minecraft backup"""

if path.isdir(src_name):
copytree(src_name, dst_name)
else:
copy2(src_name, dst_name)
os = get_os()

names = listdir(GAME_PATH[os])
mkdir(dst)

for name in names:
src_name = path.join(GAME_PATH[os], name)
dst_name = path.join(dst, name)

if path.isdir(src_name):
copytree(src_name, dst_name)
else:
copy2(src_name, dst_name)

copystat(GAME_PATH[os], dst)

copystat(GAME_PATH[os], dst)
self.emit(SIGNAL('makeend()'))
54 changes: 44 additions & 10 deletions minecraft_backup/gui/dialogs/new_backup_window.py
Expand Up @@ -4,18 +4,21 @@
# 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
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
Expand All @@ -25,19 +28,19 @@ class new_backup_window(QDialog):

def __init__(self, parent=None):
QDialog.__init__(self, parent)
self.setGeometry(QRect(0, 0, 450, 150))
self.setMaximumSize(450, 150)
self.setMinimumSize(450, 150)
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, 110, 80, 28))
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, 110, 200, 28))
self.btn_create_backup.setGeometry(QRect(235, 160, 200, 28))

# LABELS
self.generate_label('Name', 15, 20)
Expand All @@ -46,6 +49,7 @@ def __init__(self, parent=None):
# 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()

Expand All @@ -54,6 +58,13 @@ def __init__(self, parent=None):
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)
Expand All @@ -67,6 +78,19 @@ def generate_label(self, text, h, v):
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',
Expand All @@ -76,8 +100,18 @@ def change_save_backup(self):
self.btn_change_save_backup.setText(self.file_dialog)

def create_backup(self):
self.dst = path.join(str(self.btn_change_save_backup.text().toUtf8()),
str(self.input_backup_name.text().toUtf8()))
make_backup(self.dst)
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.close()
self.make_backup.run(self.dst)
3 changes: 0 additions & 3 deletions minecraft_backup/gui/main.py
Expand Up @@ -89,6 +89,3 @@ def start():
minebackup.show()

sys.exit(app.exec_())

if __name__ != '__main__':
start()

0 comments on commit 8947464

Please sign in to comment.