- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/mlx/gui/gui.py
r450 r496 14 14 from mlx.gui.callouts import ApproachCalloutsEditor 15 15 from mlx.gui.pirep import PIREPViewer 16 from mlx.gui.bugreport import BugReportDialog 16 17 17 18 import mlx.const as const … … 85 86 86 87 self._sendPIREPCallback = None 88 self._sendBugReportCallback = None 87 89 88 90 self.webHandler = web.Handler() … … 109 111 self._checklistEditor = ChecklistEditor(self) 110 112 self._approachCalloutsEditor = ApproachCalloutsEditor(self) 113 self._bugReportDialog = BugReportDialog(self) 111 114 112 115 menuBar = self._buildMenuBar(accelGroup) … … 993 996 prefsMenuItem.connect("activate", self._editPreferences) 994 997 toolsMenu.append(prefsMenuItem) 998 999 toolsMenu.append(gtk.SeparatorMenuItem()) 1000 1001 bugReportMenuItem = gtk.ImageMenuItem(gtk.STOCK_PASTE) 1002 bugReportMenuItem.set_use_stock(True) 1003 bugReportMenuItem.set_label(xstr("menu_tools_bugreport")) 1004 bugReportMenuItem.add_accelerator("activate", accelGroup, 1005 ord(xstr("menu_tools_bugreport_key")), 1006 CONTROL_MASK, ACCEL_VISIBLE) 1007 bugReportMenuItem.connect("activate", self._reportBug) 1008 toolsMenu.append(bugReportMenuItem) 995 1009 996 1010 viewMenuItem = gtk.MenuItem(xstr("menu_view")) … … 1132 1146 self._setupTimeSync() 1133 1147 self._listenHotkeys() 1148 1149 def _reportBug(self, menuItem): 1150 """Callback for reporting a bug.""" 1151 self._bugReportDialog.run() 1134 1152 1135 1153 def _setupTimeSync(self): … … 1372 1390 callback(returned, result) 1373 1391 1392 def sendBugReport(self, summary, description, email, callback = None): 1393 """Send the bug report with the given data.""" 1394 description += "\n\n" + ("=" * 40) 1395 description += "\n\nThe contents of the log:\n\n" 1396 1397 for (timestampString, text) in self._logger.lines: 1398 description += unicode(formatFlightLogLine(timestampString, text)) 1399 1400 description += "\n\n" + ("=" * 40) 1401 description += "\n\nThe contents of the debug log:\n\n" 1402 1403 buffer = self._debugLogView.get_buffer() 1404 description += buffer.get_text(buffer.get_start_iter(), 1405 buffer.get_end_iter(), True) 1406 1407 self.beginBusy(xstr("sendBugReport_busy")) 1408 self._sendBugReportCallback = callback 1409 self.webHandler.sendBugReport(self._bugReportSentCallback, 1410 summary, description, email) 1411 1412 def _bugReportSentCallback(self, returned, result): 1413 """Callback function for the bug report sending result.""" 1414 gobject.idle_add(self._handleBugReportSent, returned, result) 1415 1416 def _handleBugReportSent(self, returned, result): 1417 """Callback for the bug report sending result.""" 1418 self.endBusy() 1419 secondaryMarkup = None 1420 type = MESSAGETYPE_ERROR 1421 if returned: 1422 if result.success: 1423 type = MESSAGETYPE_INFO 1424 messageFormat = xstr("sendBugReport_success") % (result.ticketID,) 1425 secondaryMarkup = xstr("sendBugReport_success_sec") 1426 else: 1427 messageFormat = xstr("sendBugReport_error") 1428 secondaryMarkup = xstr("sendBugReport_siteerror_sec") 1429 else: 1430 messageFormat = xstr("sendBugReport_error") 1431 secondaryMarkup = xstr("sendBugReport_error_sec") 1432 1433 dialog = gtk.MessageDialog(parent = self._wizard.gui._bugReportDialog, 1434 type = type, message_format = messageFormat) 1435 dialog.add_button(xstr("button_ok"), RESPONSETYPE_OK) 1436 dialog.set_title(WINDOW_TITLE_BASE) 1437 if secondaryMarkup is not None: 1438 dialog.format_secondary_markup(secondaryMarkup) 1439 1440 dialog.run() 1441 dialog.hide() 1442 1443 callback = self._sendBugReportCallback 1444 self._sendBugReportCallback = None 1445 if callback is not None: 1446 callback(returned, result) 1447 1374 1448 def _listenHotkeys(self): 1375 1449 """Setup the hotkeys based on the configuration."""
Note:
See TracChangeset
for help on using the changeset viewer.