Ignore:
Timestamp:
05/08/13 20:06:17 (11 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Added a popup menu class with widgets displayed in a list.

File:
1 edited

Legend:

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

    r11488 r11495  
    1414    QMainWindow, QWidget, QAction, QActionGroup, QMenu, QMenuBar, QDialog, 
    1515    QFileDialog, QMessageBox, QVBoxLayout, QSizePolicy, QColor, QKeySequence, 
    16     QIcon, QToolBar, QToolButton, QDockWidget, QDesktopServices, QApplication 
     16    QIcon, QToolBar, QToolButton, QDockWidget, QDesktopServices, QApplication, 
     17    QCursor 
    1718) 
    1819 
     
    3839from ..help import HelpManager 
    3940 
    40 from .canvastooldock import CanvasToolDock, QuickCategoryToolbar 
     41from .canvastooldock import CanvasToolDock, QuickCategoryToolbar, \ 
     42                            CategoryPopupMenu 
    4143from .aboutdialog import AboutDialog 
    4244from .schemeinfo import SchemeInfoDialog 
     
    749751        """ 
    750752        category = action.text() 
    751         for i in range(self.widgets_tool_box.count()): 
    752             cat_act = self.widgets_tool_box.tabAction(i) 
    753             if cat_act.text() == category: 
    754                 if not cat_act.isChecked(): 
    755                     # Trigger the action to expand the tool grid contained 
    756                     # within. 
    757                     cat_act.trigger() 
    758  
    759             else: 
    760                 if cat_act.isChecked(): 
    761                     # Trigger the action to hide the tool grid contained 
    762                     # within. 
    763                     cat_act.trigger() 
    764  
    765         self.dock_widget.expand() 
     753        if self.use_popover: 
     754            # Show a popup menu with the widgets in the category 
     755            m = CategoryPopupMenu(self.quick_category) 
     756            reg = self.widget_registry.model() 
     757            i = index(self.widget_registry.categories(), category, 
     758                      predicate=lambda name, cat: cat.name == name) 
     759            if i != -1: 
     760                m.setCategoryItem(reg.item(i)) 
     761                action = m.exec_(QCursor.pos()) 
     762                if action is not None: 
     763                    self.on_tool_box_widget_activated(action) 
     764 
     765        else: 
     766            for i in range(self.widgets_tool_box.count()): 
     767                cat_act = self.widgets_tool_box.tabAction(i) 
     768                cat_act.setChecked(cat_act.text() == category) 
     769 
     770            self.dock_widget.expand() 
    766771 
    767772    def set_scheme_margins_enabled(self, enabled): 
     
    17371742                           type=bool) 
    17381743 
     1744        self.use_popover = \ 
     1745            settings.value("toolbox-dock-use-popover-menu", defaultValue=True, 
     1746                           type=bool) 
     1747 
    17391748 
    17401749def updated_flags(flags, mask, state): 
Note: See TracChangeset for help on using the changeset viewer.