Create MCEProgressDialog, which cannot be closed by any means.

This commit is contained in:
David Vierra 2015-10-06 17:13:14 -10:00
parent 0b1f47c2b9
commit c2ff80a4b9
4 changed files with 33 additions and 11 deletions

View File

@ -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)

View File

@ -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)

View File

@ -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..."))

View File

@ -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))