1 from camelot.view.controls.exception import model_thread_exception_message_box
2 from camelot.view.model_thread import post
3 from camelot.core.utils import ugettext as _
4
5 from PyQt4 import QtGui, QtCore
6
8
10 QtGui.QProgressDialog.__init__(self, _('Please wait'), QtCore.QString(), 0, 0)
11 self.setWindowTitle(_('Open file'))
12 self.setRange(0, 0)
13
15 import os
16 if not os.path.exists(path):
17 QtGui.QMessageBox.critical (self, _('Could not open file'), _('%s does not exist')%path)
18
19
20
21 if not path.startswith(r'\\'):
22 url = QtCore.QUrl.fromLocalFile(path)
23 else:
24 url = QtCore.QUrl(path, QtCore.QUrl.TolerantMode)
25 QtGui.QDesktopServices.openUrl(url)
26 self.close()
27
29
31 QtGui.QProgressDialog.__init__(self, _('Please wait'), QtCore.QString(), 0, 0)
32 self.setWindowTitle(_('Save file'))
33 self.setRange(0, 0)
34
36 on_finish()
37 self.close()
38
40 """Open the stored file with the default system editor for this file type"""
41
42 progress = OpenFileProgressDialog()
43
44 def get_path():
45 return stored_file.storage.checkout(stored_file)
46
47 post(get_path, progress.open_path, model_thread_exception_message_box)
48 progress.exec_()
49
51 """Popup a QFileDialog, put the selected file in the storage and return the
52 call on_finish with the StoredFile when done"""
53 filename = QtGui.QFileDialog.getOpenFileName(parent, 'Open file',
54 QtCore.QDir.currentPath(),
55 filter)
56 if filename:
57 progress = SaveFileProgressDialog()
58
59 def checkin():
60 new_path = storage.checkin(str(filename))
61 return lambda:on_finish(new_path)
62
63 post(checkin, progress.finish, model_thread_exception_message_box)
64 progress.exec_()
65