diff --git a/src/mcedit2/dialogs/error_dialog.py b/src/mcedit2/dialogs/error_dialog.py index f162e05..6322330 100644 --- a/src/mcedit2/dialogs/error_dialog.py +++ b/src/mcedit2/dialogs/error_dialog.py @@ -12,6 +12,7 @@ from mcedit2.util import qglcontext from mcedit2.util.load_ui import load_ui from mcedit2.util.screen import centerWidgetInScreen +from mcedit2.util.showprogress import MCEProgressDialog log = logging.getLogger(__name__) @@ -86,8 +87,8 @@ class ErrorDialog(QtGui.QDialog): url = None progressText = self.tr("Uploading to pastebin...") - dialog = QtGui.QProgressDialog(progressText, - None, 0, 0, self) + dialog = MCEProgressDialog(progressText, + None, 0, 0, self) dialog.setLabelText(progressText) dialog.setWindowTitle(progressText) dialog.setStatusTip(progressText) diff --git a/src/mcedit2/editorapp.py b/src/mcedit2/editorapp.py index f591842..50d16d4 100644 --- a/src/mcedit2/editorapp.py +++ b/src/mcedit2/editorapp.py @@ -23,6 +23,7 @@ from mcedit2.util.load_ui import load_ui from mcedit2.util.objgraphwidget import ObjGraphWidget from mcedit2.util.qglcontext import setDefaultFormat from mcedit2.util.resources import resourcePath +from mcedit2.util.showprogress import MCEProgressDialog from mcedit2.util.worldloader import LoaderTimer from mcedit2.widgets import prefsdialog, configureblocksdialog from mcedit2.widgets.blocktype_list import BlockListWidget @@ -684,11 +685,11 @@ class MCEditApp(QtGui.QApplication): def loadFile(self, filename, readonly=False): self.hideWorldList() - fileLoadingDialog = QtGui.QProgressDialog(self.tr("Loading world..."), - None, - 0, - 1, - self.mainWindow) + fileLoadingDialog = MCEProgressDialog(self.tr("Loading world..."), + None, + 0, + 1, + self.mainWindow) fileLoadingDialog.setAutoReset(False) fileLoadingDialog.setWindowModality(Qt.WindowModal) fileLoadingDialog.setMinimumDuration(0) diff --git a/src/mcedit2/editorsession.py b/src/mcedit2/editorsession.py index 54032cd..abf29c5 100644 --- a/src/mcedit2/editorsession.py +++ b/src/mcedit2/editorsession.py @@ -27,7 +27,7 @@ from mceditlib.transform import DimensionTransform, SelectionTransform from mceditlib.util import exhaust from mceditlib.util.lazyprop import weakrefprop from mcedit2.util.raycast import rayCastInBounds -from mcedit2.util.showprogress import showProgress +from mcedit2.util.showprogress import showProgress, MCEProgressDialog from mcedit2.util.undostack import MCEUndoStack from mcedit2.widgets.inspector import InspectorWidget from mcedit2.worldview.viewaction import UseToolMouseAction, TrackingMouseAction @@ -617,7 +617,7 @@ class EditorSession(QtCore.QObject): def changeResourcePack(self, packName): packDisplayName = packName or "(default)" log.info("Changing to resource pack %s", packName) - dialog = QtGui.QProgressDialog(QtGui.qApp.mainWindow) + dialog = MCEProgressDialog(QtGui.qApp.mainWindow) dialog.setRange(0, 0) dialog.setValue(0) dialog.setWindowTitle(self.tr("Changing resource pack...")) @@ -634,7 +634,7 @@ class EditorSession(QtCore.QObject): def changeMCVersion(self, version): versionDisplayName = version or "(current)" - dialog = QtGui.QProgressDialog(QtGui.qApp.mainWindow) + dialog = MCEProgressDialog(QtGui.qApp.mainWindow) dialog.setRange(0, 0) dialog.setValue(0) dialog.setWindowTitle(self.tr("Changing Minecraft version...")) diff --git a/src/mcedit2/util/showprogress.py b/src/mcedit2/util/showprogress.py index 62bee24..af005db 100644 --- a/src/mcedit2/util/showprogress.py +++ b/src/mcedit2/util/showprogress.py @@ -14,6 +14,24 @@ log = logging.getLogger(__name__) timeBeforeDialog = 0.2 + +class MCEProgressDialog(QtGui.QProgressDialog): + + def __init__(self, *a): + flags = Qt.Dialog | Qt.CustomizeWindowHint | Qt.WindowTitleHint | Qt.WindowSystemMenuHint + a = a + (flags,) + super(MCEProgressDialog, self).__init__(*a) + + def close(self): + pass + + def reject(self): + pass + + def closeEvent(self, event): + event.ignore() + + def showProgress(text, *tasks, **kwargs): """ Show a progress dialog for the given task(s). Each task should be an iterable, @@ -35,7 +53,9 @@ def showProgress(text, *tasks, **kwargs): shown = False with LoaderTimer.stopCtx(): - dialog = QtGui.QProgressDialog(QtGui.qApp.mainWindow) + dialog = MCEProgressDialog(QtGui.qApp.mainWindow) + if not cancel: + dialog.setCancelButtonText(None) dialog.setWindowTitle(text) dialog.setWindowModality(Qt.WindowModal) log.info("Starting progress: %d tasks." % len(tasks))