Changeset 11496:28c3d24e59ec in orange


Ignore:
Timestamp:
05/09/13 11:20:53 (11 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Children:
11497:8bf64455aa84, 11498:373539640304
Parents:
11484:180ff4d9e42e (diff), 11495:12e60f527869 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge

Location:
Orange/OrangeCanvas
Files:
4 edited

Legend:

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

    r11479 r11496  
    1616    QMainWindow, QWidget, QAction, QActionGroup, QMenu, QMenuBar, QDialog, 
    1717    QFileDialog, QMessageBox, QVBoxLayout, QSizePolicy, QColor, QKeySequence, 
    18     QIcon, QToolBar, QToolButton, QDockWidget, QDesktopServices, QApplication 
     18    QIcon, QToolBar, QToolButton, QDockWidget, QDesktopServices, QApplication, 
     19    QCursor 
    1920) 
    2021 
     
    4041from ..help import HelpManager 
    4142 
    42 from .canvastooldock import CanvasToolDock, QuickCategoryToolbar 
     43from .canvastooldock import CanvasToolDock, QuickCategoryToolbar, \ 
     44                            CategoryPopupMenu 
    4345from .aboutdialog import AboutDialog 
    4446from .schemeinfo import SchemeInfoDialog 
     
    769771        """ 
    770772        category = action.text() 
    771         for i in range(self.widgets_tool_box.count()): 
    772             cat_act = self.widgets_tool_box.tabAction(i) 
    773             if cat_act.text() == category: 
    774                 if not cat_act.isChecked(): 
    775                     # Trigger the action to expand the tool grid contained 
    776                     # within. 
    777                     cat_act.trigger() 
    778  
    779             else: 
    780                 if cat_act.isChecked(): 
    781                     # Trigger the action to hide the tool grid contained 
    782                     # within. 
    783                     cat_act.trigger() 
    784  
    785         self.dock_widget.expand() 
     773        if self.use_popover: 
     774            # Show a popup menu with the widgets in the category 
     775            m = CategoryPopupMenu(self.quick_category) 
     776            reg = self.widget_registry.model() 
     777            i = index(self.widget_registry.categories(), category, 
     778                      predicate=lambda name, cat: cat.name == name) 
     779            if i != -1: 
     780                m.setCategoryItem(reg.item(i)) 
     781                action = m.exec_(QCursor.pos()) 
     782                if action is not None: 
     783                    self.on_tool_box_widget_activated(action) 
     784 
     785        else: 
     786            for i in range(self.widgets_tool_box.count()): 
     787                cat_act = self.widgets_tool_box.tabAction(i) 
     788                cat_act.setChecked(cat_act.text() == category) 
     789 
     790            self.dock_widget.expand() 
    786791 
    787792    def set_scheme_margins_enabled(self, enabled): 
     
    964969        scheme_doc.setScheme(new_scheme) 
    965970 
    966         old_scheme.save_widget_settings() 
    967         old_scheme.close_all_open_widgets() 
    968         old_scheme.signal_manager.stop() 
     971        # Send a close event to the Scheme, it is responsible for 
     972        # closing/clearing all resources (widgets). 
     973        QApplication.sendEvent(old_scheme, QEvent(QEvent.Close)) 
     974 
    969975        old_scheme.deleteLater() 
    970976 
     
    15341540                return 
    15351541 
     1542        old_scheme = document.scheme() 
     1543 
    15361544        # Set an empty scheme to clear the document 
    15371545        document.setScheme(widgetsscheme.WidgetsScheme()) 
    15381546 
    1539         scheme = document.scheme() 
    1540         scheme.save_widget_settings() 
    1541         scheme.close_all_open_widgets() 
    1542         scheme.signal_manager.stop() 
    1543         scheme.deleteLater() 
     1547        QApplication.sendEvent(old_scheme, QEvent(QEvent.Close)) 
     1548 
     1549        old_scheme.deleteLater() 
    15441550 
    15451551        config.save_config() 
     
    17091715            triggers |= SchemeEditWidget.DoubleClicked 
    17101716 
    1711         left_click = settings.value("trigger-on-left-click", 
     1717        right_click = settings.value("trigger-on-right-click", 
    17121718                                    defaultValue=False, 
    17131719                                    type=bool) 
    1714         if left_click: 
    1715             triggers |= SchemeEditWidget.Clicked 
     1720        if right_click: 
     1721            triggers |= SchemeEditWidget.RightClicked 
    17161722 
    17171723        space_press = settings.value("trigger-on-space-key", 
     
    17771783        self.open_in_external_browser = \ 
    17781784            settings.value("open-in-external-browser", defaultValue=False, 
     1785                           type=bool) 
     1786 
     1787        self.use_popover = \ 
     1788            settings.value("toolbox-dock-use-popover-menu", defaultValue=True, 
    17791789                           type=bool) 
    17801790 
  • Orange/OrangeCanvas/application/canvasmain.py

    r11495 r11496  
    1111import pkg_resources 
    1212 
     13import Orange.utils.addons 
     14 
    1315from PyQt4.QtGui import ( 
    1416    QMainWindow, QWidget, QAction, QActionGroup, QMenu, QMenuBar, QDialog, 
     
    4547from .outputview import OutputView 
    4648from .settings import UserSettingsDialog 
     49from .addons import AddOnManagerDialog 
     50 
    4751from ..document.schemeedit import SchemeEditWidget 
    4852 
     
    312316                       [self.freeze_action, 
    313317                        self.dock_help_action] 
     318 
     319 
     320        def addOnRefreshCallback(): 
     321            pass #TODO add new category 
     322 
     323        Orange.utils.addons.addon_refresh_callback.append(addOnRefreshCallback) 
    314324 
    315325        # Tool bar in the collapsed dock state (has the same actions as 
     
    504514                    ) 
    505515 
     516        self.canvas_addons_action = \ 
     517            QAction(self.tr("&Add-ons..."), self, 
     518                    objectName="canvas-addons-action", 
     519                    toolTip=self.tr("Manage add-ons."), 
     520                    triggered=self.open_addons, 
     521                    menuRole=QAction.PreferencesRole 
     522                    ) 
     523 
     524 
    506525        self.show_output_action = \ 
    507526            QAction(self.tr("Show Output View"), self, 
     
    625644        self.options_menu.addSeparator() 
    626645        self.options_menu.addAction(self.canvas_settings_action) 
     646        self.options_menu.addAction(self.canvas_addons_action) 
    627647 
    628648        # Widget menu 
     
    13751395            self.__update_from_settings() 
    13761396 
     1397    def open_addons(self): 
     1398 
     1399        def getlr(): 
     1400            settings = QSettings() 
     1401            settings.beginGroup("addons") 
     1402            lastRefresh = settings.value("addons-last-refresh", 
     1403                          defaultValue=0, type=int) 
     1404            settings.endGroup() 
     1405            return lastRefresh 
     1406         
     1407        def setlr(v): 
     1408            settings = QSettings() 
     1409            settings.beginGroup("addons") 
     1410            lastRefresh = settings.setValue("addons-last-refresh", int(v)) 
     1411            settings.endGroup() 
     1412             
     1413        dlg = AddOnManagerDialog(self, self) 
     1414        dlg.loadtimefn = getlr 
     1415        dlg.savetimefn = setlr 
     1416        dlg.show() 
     1417        dlg.reloadQ() 
     1418        status = dlg.exec_() 
     1419 
    13771420    def show_output_view(self): 
    13781421        """Show a window with application output. 
  • Orange/OrangeCanvas/config.py

    r11476 r11496  
    7171      "Is the canvas toolbox movable (between left and right edge)"), 
    7272 
     73     ("mainwindow/toolbox-dock-use-popover-menu", bool, True, 
     74      "Use a popover menu to select a widget when clicking on a category " 
     75      "button"), 
     76 
    7377     ("mainwindow/number-of-recent-schemes", int, 7, 
    7478      "Number of recent schemes to keep in history"), 
     
    8993      "Show quick menu on double click."), 
    9094 
    91      ("quickmenu/trigger-on-left-click", bool, False, 
    92       "Show quick menu on left click."), 
     95     ("quickmenu/trigger-on-right-click", bool, True, 
     96      "Show quick menu on right click."), 
    9397 
    9498     ("quickmenu/trigger-on-space-key", bool, True, 
  • Orange/OrangeCanvas/config.py

    r11495 r11496  
    6262      "Show shadow around the scheme view"), 
    6363 
    64      ("mainwindow/toolbox-dock-exclusive", bool, False, 
     64     ("mainwindow/toolbox-dock-exclusive", bool, True, 
    6565      "Should the toolbox show only one expanded category at the time"), 
    6666 
Note: See TracChangeset for help on using the changeset viewer.