Changeset 11256:26cf194aab3c in orange


Ignore:
Timestamp:
01/10/13 19:49:16 (16 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Update from the new settings after the settings dialog is closed.

Location:
Orange/OrangeCanvas
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Orange/OrangeCanvas/application/canvasmain.py

    r11253 r11256  
    122122        """Setup main canvas ui 
    123123        """ 
    124         QSettings.setDefaultFormat(QSettings.IniFormat) 
    125         settings = QSettings() 
    126         settings.beginGroup("mainwindow") 
    127124 
    128125        log.info("Setting up Canvas main window.") 
     
    563560        settings = QSettings() 
    564561        settings.beginGroup("mainwindow") 
    565  
    566         state = settings.value("state") 
    567         if state.isValid(): 
    568             self.restoreState(state.toByteArray(), 
    569                               version=self.SETTINGS_VERSION) 
    570562 
    571563        self.dock_widget.setExpanded( 
     
    12421234        dlg.show() 
    12431235        status = dlg.exec_() 
    1244  
    1245         if status == QDialog.Accepted: 
     1236        if status == 0: 
    12461237            self.__update_from_settings() 
    12471238 
     
    13921383    def showEvent(self, event): 
    13931384        settings = QSettings() 
    1394         geom_data = settings.value("mainwindow/geometry") 
     1385        settings.beginGroup("mainwindow") 
     1386 
     1387        # Restore geometry and dock/toolbar state 
     1388        state = settings.value("state") 
     1389        if state.isValid(): 
     1390            self.restoreState(state.toByteArray(), 
     1391                              version=self.SETTINGS_VERSION) 
     1392        geom_data = settings.value("geometry") 
    13951393        if geom_data.isValid(): 
    13961394            self.restoreGeometry(geom_data.toByteArray()) 
     
    14451443        return unicode(QMainWindow.tr(self, sourceText, disambiguation, n)) 
    14461444 
     1445    def __update_from_settings(self): 
     1446        settings = QSettings() 
     1447        settings.beginGroup("mainwindow") 
     1448        toolbox_floatable = settings.value("toolbox-dock-floatable", 
     1449                                           defaultValue=False) 
     1450 
     1451        features = self.dock_widget.features() 
     1452        features = updated_flags(features, QDockWidget.DockWidgetFloatable, 
     1453                                 toolbox_floatable.toBool()) 
     1454        self.dock_widget.setFeatures(features) 
     1455 
     1456        toolbox_exclusive = settings.value("toolbox-dock-exclusive", 
     1457                                           defaultValue=False) 
     1458        self.widgets_tool_box.setExclusive(toolbox_exclusive.toBool()) 
     1459 
     1460        settings.endGroup() 
     1461        settings.beginGroup("quickmenu") 
     1462 
     1463        triggers = 0 
     1464        dbl_click = settings.value("trigger-on-double-click", 
     1465                                   defaultValue=True) 
     1466        if dbl_click.toBool(): 
     1467            triggers |= SchemeEditWidget.DoubleClicked 
     1468 
     1469        left_click = settings.value("trigger-on-left-click", 
     1470                                    defaultValue=False) 
     1471        if left_click.toBool(): 
     1472            triggers |= SchemeEditWidget.Clicked 
     1473 
     1474        space_press = settings.value("trigger-on-space-key", 
     1475                                     defaultValue=True) 
     1476        if space_press.toBool(): 
     1477            triggers |= SchemeEditWidget.SpaceKey 
     1478 
     1479        any_press = settings.value("trigger-on-any-key", 
     1480                                   defaultValue=False) 
     1481        if any_press.toBool(): 
     1482            triggers |= SchemeEditWidget.AnyKey 
     1483 
     1484        self.scheme_widget.setQuickMenuTriggers(triggers) 
     1485 
     1486 
     1487def updated_flags(flags, mask, state): 
     1488    if state: 
     1489        flags |= mask 
     1490    else: 
     1491        flags &= ~mask 
     1492    return flags 
     1493 
    14471494 
    14481495def identity(item): 
  • Orange/OrangeCanvas/application/settings.py

    r11250 r11256  
    194194                                       submitPolicy=BindingManager.AutoSubmit) 
    195195 
     196        self.__loop = None 
     197 
    196198        self.__settings = config.settings() 
    197199        self.__setupUi() 
     
    280282        self.bind(cb2, "checked", "quickmenu/trigger-on-left-click") 
    281283        self.bind(cb3, "checked", "quickmenu/trigger-on-space-key") 
    282         self.bind(cb3, "checked", "quickmenu/trigger-on-any-key") 
     284        self.bind(cb4, "checked", "quickmenu/trigger-on-any-key") 
    283285 
    284286        quickmenu.layout().addWidget(cb1) 
     
    467469 
    468470    def exec_(self): 
    469         loop = QEventLoop() 
     471        self.__loop = QEventLoop() 
    470472        self.show() 
    471         status = loop.exec_() 
     473        status = self.__loop.exec_() 
     474        self.__loop = None 
     475        return status 
    472476 
    473477    def showEvent(self, event): 
     
    476480        return QMainWindow.showEvent(self, event) 
    477481 
     482    def hideEvent(self, event): 
     483        QMainWindow.hideEvent(self, event) 
     484        self.__loop.exit(0) 
     485 
    478486    def __macOnToolBarAction(self, action): 
    479487        index, _ = action.data().toInt() 
  • Orange/OrangeCanvas/main.py

    r11250 r11256  
    1616 
    1717from PyQt4.QtGui import QFont, QColor 
    18 from PyQt4.QtCore import QRect, QSettings, QDir 
     18from PyQt4.QtCore import Qt, QRect, QSettings, QDir 
    1919 
    2020from Orange import OrangeCanvas 
     
    3636def qt_logging_handle(msg_type, message): 
    3737    print msg_type, message 
     38 
     39 
     40def running_in_ipython(): 
     41    try: 
     42        __IPYTHON__ 
     43        return True 
     44    except NameError: 
     45        return False 
    3846 
    3947 
     
    115123 
    116124            pkg_name = OrangeCanvas.__name__ 
    117             resource = os.path.join("styles", stylesheet) 
     125            resource = "styles/" + stylesheet 
    118126 
    119127            if pkg_resources.resource_exists(pkg_name, resource): 
    120                 stylesheet_string = pkg_resources.resource_string( 
    121                                         pkg_name, resource) 
     128                stylesheet_string = \ 
     129                    pkg_resources.resource_string(pkg_name, resource) 
     130 
    122131                base = pkg_resources.resource_filename(pkg_name, "styles") 
    123132 
     
    220229        canvas_window.load_scheme(args[0]) 
    221230 
    222     disable_redirect = \ 
    223         settings.value("mainwindow/no-stdout-redirect", False).toBool() or \ 
    224         options.no_redirect 
    225  
    226     if not disable_redirect: 
    227         output = canvas_window.output_view() 
    228     else: 
    229         output = None 
    230  
    231     with nested(redirect_stdout(output), redirect_stderr(output)): 
     231    stdout_redirect = \ 
     232        settings.value("output/redirect-stdout", True).toBool() 
     233 
     234    stderr_redirect = \ 
     235        settings.value("output/redirect-stderr", True).toBool() 
     236 
     237    # cmd line option overrides settings, and not redirect possible 
     238    # under ipython 
     239    if options.no_redirect or running_in_ipython(): 
     240        stderr_redirect = stdout_redirect = False 
     241 
     242    output_view = canvas_window.output_view() 
     243 
     244    if stdout_redirect: 
     245        stdout = output_view 
     246    else: 
     247        stdout = sys.stdout 
     248 
     249    if stderr_redirect: 
     250        stderr = output_view 
     251    else: 
     252        stderr = sys.stderr 
     253 
     254    with nested(redirect_stdout(stdout), redirect_stderr(stderr)): 
    232255        log.info("Entering main event loop.") 
    233256        try: 
Note: See TracChangeset for help on using the changeset viewer.