Changeset 249:d055e454a7ea for src


Ignore:
Timestamp:
06/19/12 14:52:44 (12 years ago)
Author:
István Váradi <ivaradi@…>
Branch:
default
Phase:
public
Message:

Implemented option to control whether to quit or hide when the window close button is pressed

Location:
src/mlx
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • src/mlx/config.py

    r197 r249  
    121121        self._language = ""
    122122        self._hideMinimizedWindow = True
     123        self._quitOnClose = False
    123124        self._onlineGateSystem = True
    124125        self._onlineACARS = True
     
    211212        if hideMinimizedWindow!=self._hideMinimizedWindow:
    212213            self._hideMinimizedWindow = hideMinimizedWindow
     214            self._modified = True
     215   
     216    @property
     217    def quitOnClose(self):
     218        """Get whether the application should quit when the close button is
     219        clicked."""
     220        return self._quitOnClose
     221
     222    @quitOnClose.setter
     223    def quitOnClose(self, quitOnClose):
     224        """Set whether the application should quit when the close button is
     225        clicked."""
     226        if quitOnClose!=self._quitOnClose:
     227            self._quitOnClose = quitOnClose
    213228            self._modified = True
    214229   
     
    482497
    483498        self._language = self._get(config, "general", "language", "")
     499
    484500        self._hideMinimizedWindow = self._getBoolean(config, "general",
    485501                                                     "hideMinimizedWindow",
    486502                                                     True)
     503        self._quitOnClose = self._getBoolean(config, "general",
     504                                             "quitOnClose", False)
     505       
    487506        self._onlineGateSystem = self._getBoolean(config, "general",
    488507                                                  "onlineGateSystem",
     
    557576        config.set("general", "hideMinimizedWindow",
    558577                   "yes" if self._hideMinimizedWindow else "no")
     578        config.set("general", "quitOnClose",
     579                   "yes" if self._quitOnClose else "no")
    559580        config.set("general", "onlineGateSystem",
    560581                   "yes" if self._onlineGateSystem else "no")
  • src/mlx/gui/gui.py

    r246 r249  
    8383        window.set_icon_from_file(os.path.join(iconDirectory, "logo.ico"))
    8484        window.set_resizable(False)
    85         window.connect("delete-event",
    86                        lambda a, b: self.hideMainWindow())
     85        window.connect("delete-event", self.deleteMainWindow)
    8786        window.connect("window-state-event", self._handleMainWindowState)
    8887        accelGroup = gtk.AccelGroup()
     
    568567            self.showMainWindow()
    569568        self._mainWindow.present()
     569
     570    def deleteMainWindow(self, window, event):
     571        """Handle the delete event for the main window."""
     572        if self.config.quitOnClose:
     573            self._quit()
     574        else:
     575            self.hideMainWindow()
     576        return True
    570577
    571578    def hideMainWindow(self, savePosition = True):
  • src/mlx/gui/prefs.py

    r233 r249  
    225225        self._setLanguage(config.language)
    226226        self._hideMinimizedWindow.set_active(config.hideMinimizedWindow)
     227        self._quitOnClose.set_active(config.quitOnClose)
    227228        self._onlineGateSystem.set_active(config.onlineGateSystem)
    228229        self._onlineACARS.set_active(config.onlineACARS)
     
    270271        config.language = self._getLanguage()
    271272        config.hideMinimizedWindow = self._hideMinimizedWindow.get_active()
     273        config.quitOnClose = self._quitOnClose.get_active()
    272274        config.onlineGateSystem = self._onlineGateSystem.get_active()
    273275        config.onlineACARS = self._onlineACARS.get_active()
     
    347349        self._hideMinimizedWindow.set_tooltip_text(xstr("prefs_hideMinimizedWindow_tooltip"))
    348350        guiBox.pack_start(self._hideMinimizedWindow, False, False, 4)
     351
     352        self._quitOnClose = gtk.CheckButton(xstr("prefs_quitOnClose"))
     353        self._quitOnClose.set_use_underline(True)
     354        self._quitOnClose.set_tooltip_text(xstr("prefs_quitOnClose_tooltip"))
     355        guiBox.pack_start(self._quitOnClose, False, False, 4)
    349356
    350357        onlineBox = self._createFrame(mainBox, xstr("prefs_frame_online"))       
  • src/mlx/i18n.py

    r241 r249  
    702702                 "when minimized. You can still make it appear by "
    703703                 "clicking on the status icon or using its popup menu.")
     704        self.add("prefs_quitOnClose",
     705                 "_Quit when the window close button is clicked")
     706        self.add("prefs_quitOnClose_tooltip",
     707                 "If checked, the application will quit when the window close "
     708                 "button is clicked. Before quitting, the confirmation "
     709                 "will be asked. If not checked, the window will be hidden "
     710                 "to the tray.")
    704711        self.add("prefs_onlineGateSystem",
    705712                 "_Use the Online Gate System")
     
    15721579                 "ha minimalizálod. A státuszikonra kattintással vagy annak "
    15731580                 "menüje segítségével újra meg tudod jeleníteni.")
     1581        self.add("prefs_quitOnClose",
     1582                 "_Kilépés az ablakzáró gomb megnyomásakor")
     1583        self.add("prefs_quitOnClose_tooltip",
     1584                 "Ha ezt kijelölöd, a program az ablakzáró gomb megnyomására "
     1585                 "kilép, ha ebbéli szándékát megerősíted. Ha nem jelölöd "
     1586                 "ki, a főablak eltűnik, de a tálcaikon a helyén marad.")
    15741587        self.add("prefs_onlineGateSystem",
    15751588                 "Az Online _Gate System használata")
Note: See TracChangeset for help on using the changeset viewer.