Changeset 11147:5ddec5f677c1 in orange


Ignore:
Timestamp:
10/22/12 14:55:23 (18 months ago)
Author:
Ales Erjavec <ales.erjavec@…>
Branch:
default
Message:

Fixed rejected open/browse actions in welcome dialog.

Location:
Orange/OrangeCanvas
Files:
3 edited

Legend:

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

    r11146 r11147  
    6060    """ 
    6161    return QIcon(widget.style().standardPixmap(standard_pixmap)) 
     62 
     63 
     64def canvas_icons(name): 
     65    """Return the named canvas icon. 
     66    """ 
     67    return QIcon(pkg_resources.resource_filename( 
     68                  OrangeCanvas.__name__, 
     69                  os.path.join("icons", name)) 
     70                 ) 
    6271 
    6372 
     
    231240        self.scheme_widget.title_changed.connect(self.setWindowTitle) 
    232241 
    233         icons = icon_loader() 
    234  
    235         if config.rc.get("show-window-title-icon", True): 
    236             self.setWindowIcon(icons.get("icons/Get Started.svg")) 
     242        self.setWindowIcon(canvas_icons("Get Started.svg")) 
    237243 
    238244        # QMainWindow's Dock widget 
     
    275281        self.dock_help_action = canvas_tool_dock.toogleQuickHelpAction() 
    276282        self.dock_help_action.setText(self.tr("Show Help")) 
    277         self.dock_help_action.setIcon(icons.get("icons/Info.svg")) 
     283        self.dock_help_action.setIcon(canvas_icons("Info.svg")) 
    278284 
    279285        self.canvas_tool_dock = canvas_tool_dock 
     
    353359        """Initialize main window actions. 
    354360        """ 
    355         icons = lambda name: \ 
    356                     QIcon(pkg_resources.resource_filename( 
    357                               OrangeCanvas.__name__, 
    358                               os.path.join("icons", name)) 
    359                           ) 
    360361 
    361362        self.new_action = \ 
     
    365366                    triggered=self.new_scheme, 
    366367                    shortcut=QKeySequence.New, 
    367                     icon=icons("New.svg") 
     368                    icon=canvas_icons("New.svg") 
    368369                    ) 
    369370 
     
    374375                    triggered=self.open_scheme, 
    375376                    shortcut=QKeySequence.Open, 
    376                     icon=icons("Open.svg") 
     377                    icon=canvas_icons("Open.svg") 
    377378                    ) 
    378379 
     
    407408                    toolTip=self.tr("View a 'Getting Started' video."), 
    408409                    triggered=self.get_started, 
    409                     icon=icons("Get Started.svg") 
     410                    icon=canvas_icons("Get Started.svg") 
    410411                    ) 
    411412 
     
    415416                    toolTip=self.tr("View tutorial."), 
    416417                    triggered=self.tutorial, 
    417                     icon=icons("Tutorials.svg") 
     418                    icon=canvas_icons("Tutorials.svg") 
    418419                    ) 
    419420 
     
    423424                    toolTip=self.tr("View reference documentation."), 
    424425                    triggered=self.documentation, 
    425                     icon=icons("Documentation.svg") 
     426                    icon=canvas_icons("Documentation.svg") 
    426427                    ) 
    427428 
     
    447448                    shortcut=QKeySequence(Qt.ControlModifier | \ 
    448449                                          (Qt.ShiftModifier | Qt.Key_R)), 
    449                     icon=icons("Recent.svg") 
     450                    icon=canvas_icons("Recent.svg") 
    450451                    ) 
    451452 
     
    471472                    triggered=self.show_scheme_properties, 
    472473                    shortcut=QKeySequence(Qt.ControlModifier | Qt.Key_I), 
    473                     icon=icons("Document Info.svg") 
     474                    icon=canvas_icons("Document Info.svg") 
    474475                    ) 
    475476 
     
    554555                    toolTip=self.tr("Zoom in the scheme."), 
    555556                    triggered=self.set_canvas_view_zoom, 
    556                     icon=icons("Search.svg") 
     557                    icon=canvas_icons("Search.svg") 
    557558                    ) 
    558559 
     
    562563                    toolTip=self.tr("Align widget to a grid."), 
    563564                    triggered=self.align_to_grid, 
    564                     icon=icons("Grid.svg") 
     565                    icon=canvas_icons("Grid.svg") 
    565566                    ) 
    566567 
     
    570571                    toolTip=self.tr("Add an arrow annotation to the scheme."), 
    571572                    triggered=self.new_arrow_annotation, 
    572                     icon=icons("Arrow.svg") 
     573                    icon=canvas_icons("Arrow.svg") 
    573574                    ) 
    574575 
     
    578579                    toolTip=self.tr("Add a text annotation to the scheme."), 
    579580                    triggered=self.new_text_annotation, 
    580                     icon=icons("Text Size.svg") 
     581                    icon=canvas_icons("Text Size.svg") 
    581582                    ) 
    582583 
     
    587588                    toolTip=self.tr("Freeze signal propagation."), 
    588589                    triggered=self.set_signal_freeze, 
    589 #                    icon=style_icons(self, QStyle.SP_MediaPlay), 
    590                     icon=icons("Pause.svg") 
     590                    icon=canvas_icons("Pause.svg") 
    591591                    ) 
    592592 
     
    805805    ################# 
    806806    def new_scheme(self): 
    807         """New scheme 
     807        """New scheme. Return QDialog.Rejected if the user canceled 
     808        the operation and QDialog.Accepted otherwise. 
     809 
    808810        """ 
    809811        document = self.current_document() 
     
    811813            # Ask for save changes 
    812814            if self.ask_save_changes() == QDialog.Rejected: 
    813                 return 
     815                return QDialog.Rejected 
    814816 
    815817        new_scheme = widgetsscheme.WidgetsScheme() 
    816818        scheme_doc_widget = self.current_document() 
    817819        scheme_doc_widget.set_scheme(new_scheme) 
     820 
    818821        if config.rc.get("mainwindow.show-properties-on-new-scheme", True): 
    819822            self.show_properties_action.trigger() 
    820823 
     824        return QDialog.Accepted 
     825 
    821826    def open_scheme(self): 
    822         """Open a new scheme. 
     827        """Open a new scheme. Return QDialog.Rejected if the user canceled 
     828        the operation and QDialog.Accepted otherwise. 
     829 
    823830        """ 
    824831        document = self.current_document() 
    825832        if document.is_modified(): 
    826833            if self.ask_save_changes() == QDialog.Rejected: 
    827                 return 
     834                return QDialog.Rejected 
    828835 
    829836        if self.last_scheme_dir is None: 
     
    844851        if filename: 
    845852            self.load_scheme(filename) 
     853            return QDialog.Accepted 
     854        else: 
     855            return QDialog.Rejected 
    846856 
    847857    def load_scheme(self, filename): 
     
    874884 
    875885    def reload_last(self): 
    876         """Reload last opened scheme. 
     886        """Reload last opened scheme. Return QDialog.Rejected if the 
     887        user canceled the operation and QDialog.Accepted otherwise. 
     888 
    877889        """ 
    878890        document = self.current_document() 
    879891        if document.is_modified(): 
    880892            if self.ask_save_changes() == QDialog.Rejected: 
    881                 return 
     893                return QDialog.Rejected 
    882894 
    883895        # TODO: Search for a temp backup scheme with per process 
     
    885897        if self.recent_schemes: 
    886898            self.load_scheme(self.recent_schemes[0][1]) 
     899 
     900        return QDialog.Accepted 
    887901 
    888902    def ask_save_changes(self): 
     
    9971011 
    9981012    def recent_scheme(self, *args): 
    999         """Browse recent schemes. 
     1013        """Browse recent schemes. Return QDialog.Rejected if the user 
     1014        canceled the operation and QDialog.Accepted otherwise. 
     1015 
    10001016        """ 
    10011017        items = [previewmodel.PreviewItem(name=title, path=path) 
     
    10151031            if doc.is_modified(): 
    10161032                if self.ask_save_changes() == QDialog.Rejected: 
    1017                     return 
     1033                    return QDialog.Rejected 
    10181034 
    10191035            index = dialog.currentIndex() 
     
    10211037 
    10221038            self.load_scheme(unicode(selected.path())) 
     1039        return status 
    10231040 
    10241041    def welcome_dialog(self): 
    1025         """Return the initialized welcome dialog for Orange Canvas. 
    1026         """ 
     1042        """Show a modal welcome dialog for Orange Canvas. 
     1043        """ 
     1044 
    10271045        dialog = welcomedialog.WelcomeDialog(self) 
    10281046        dialog.setWindowTitle(self.tr("Welcome to Orange Data Mining")) 
    10291047        top_row = [self.get_started_action, self.tutorials_action, 
    10301048                   self.documentation_action] 
    1031         bottom_row = [self.new_action, self.open_action, self.recent_action] 
     1049 
     1050        def open_scheme(): 
     1051            if self.open_scheme() == QDialog.Accepted: 
     1052                dialog.accept() 
     1053 
     1054        def open_recent(): 
     1055            if self.recent_scheme() == QDialog.Accepted: 
     1056                dialog.accept() 
     1057 
     1058        open_action = \ 
     1059            QAction(self.tr("Open"), dialog, 
     1060                    objectName="welcome-action-open", 
     1061                    toolTip=self.tr("Open a scheme."), 
     1062                    triggered=open_scheme, 
     1063                    shortcut=QKeySequence.Open, 
     1064                    icon=canvas_icons("Open.svg") 
     1065                    ) 
     1066 
     1067        recent_action = \ 
     1068            QAction(self.tr("Recent"), dialog, 
     1069                    objectName="welcome-recent-action", 
     1070                    toolTip=self.tr("Browse and open a recent scheme."), 
     1071                    triggered=open_recent, 
     1072                    shortcut=QKeySequence(Qt.ControlModifier | \ 
     1073                                          (Qt.ShiftModifier | Qt.Key_R)), 
     1074                    icon=canvas_icons("Recent.svg") 
     1075                    ) 
     1076 
     1077        self.new_action.triggered.connect(dialog.accept) 
     1078        bottom_row = [self.new_action, open_action, recent_action] 
    10321079 
    10331080        dialog.addRow(top_row, background="light-grass") 
    10341081        dialog.addRow(bottom_row, background="light-orange") 
    1035         recent_button = dialog.buttonAt(1, 2) 
    1036         recent_button.setText(self.tr("Recent")) 
    1037         return dialog 
     1082 
     1083        settings = QSettings() 
     1084 
     1085        dialog.setShowAtStartup( 
     1086            settings.value("welcomedialog/show-at-startup", True).toBool() 
     1087        ) 
     1088 
     1089        status = dialog.exec_() 
     1090 
     1091        settings.setValue("welcomedialog/show-at-startup", 
     1092                          dialog.showAtStartup()) 
     1093        return status 
    10381094 
    10391095    def show_scheme_properties(self): 
  • Orange/OrangeCanvas/application/welcomedialog.py

    r11119 r11147  
    1515from ..canvas.items.utils import radial_gradient 
    1616from ..registry import NAMED_COLORS 
    17 from ..config import rc 
    1817 
    1918 
     
    8988    def __init__(self, *args, **kwargs): 
    9089        QDialog.__init__(self, *args, **kwargs) 
     90 
     91        self.__triggeredAction = None 
     92 
    9193        self.setupUi() 
    92         self.__triggeredAction = None 
    9394 
    9495    def setupUi(self): 
     
    112113                                 QSizePolicy.Maximum) 
    113114 
    114         check = QCheckBox("Dont'show again at startup", bottom_bar) 
    115         check.setChecked(not rc.get("startup.show-welcome-dialog", True)) 
    116         check.toggled.connect(self._on_startupCheckChange) 
     115        check = QCheckBox(self.tr("Dont'show again at startup"), bottom_bar) 
     116        check.setChecked(False) 
     117 
     118        self.__showAtStartupCheck = check 
    117119 
    118120        bottom_bar_layout.addWidget(check, alignment=Qt.AlignVCenter | \ 
     
    124126        self.setSizeGripEnabled(False) 
    125127        self.setFixedSize(620, 390) 
     128 
     129    def setShowAtStartup(self, show): 
     130        if self.__showAtStartupCheck.isChecked() != (not show): 
     131            self.__showAtStartupCheck.setChecked(not show) 
     132 
     133    def showAtStartup(self): 
     134        return not self.__showAtStartupCheck.isChecked() 
    126135 
    127136    def addRow(self, actions, background="light-orange"): 
     
    200209        self.triggered.emit(action) 
    201210        self.__triggeredAction = action 
    202         self.accept() 
    203  
    204     def _on_startupCheckChange(self, state): 
    205         rc["startup.show-welcome-dialog"] = not state 
  • Orange/OrangeCanvas/main.py

    r11143 r11147  
    1313 
    1414from PyQt4.QtGui import QFont, QColor 
    15 from PyQt4.QtCore import QRect, qInstallMsgHandler 
     15from PyQt4.QtCore import QRect, QSettings 
    1616 
    1717from Orange import OrangeCanvas 
     
    2020 
    2121from Orange.OrangeCanvas.gui.splashscreen import SplashScreen, QPixmap 
    22 from Orange.OrangeCanvas.config import rc, open_config, cache_dir 
     22from Orange.OrangeCanvas.config import open_config, cache_dir 
    2323from Orange.OrangeCanvas import config 
    2424 
     
    9191 
    9292    config.init() 
     93    settings = QSettings() 
    9394 
    9495    log.debug("Starting CanvasApplicaiton with argv = %r.", qt_argv) 
     
    136137    ) 
    137138 
    138     want_splash = rc.get("startup.show-splash-screen", True) and \ 
    139                     not options.no_splash 
     139    want_splash = \ 
     140        settings.value("startup/show-splash-screen", True).toPyObject() 
    140141 
    141142    if want_splash: 
     
    172173    canvas_window.show() 
    173174 
    174     want_welcome = rc.get("startup.show-welcome-dialog", True) and \ 
    175                     not options.no_welcome 
     175    want_welcome = \ 
     176        settings.value("welcomedialog/show-at-startup", True).toBool() \ 
     177        and not options.no_welcome 
    176178 
    177179    canvas_window.raise_() 
     180 
    178181    if want_welcome and not args: 
    179 #        welcome_dialog = WelcomeDialog(canvas_window) 
    180         welcome_dialog = canvas_window.welcome_dialog() 
    181         status = welcome_dialog.exec_() 
     182        canvas_window.welcome_dialog() 
    182183 
    183184    elif args: 
Note: See TracChangeset for help on using the changeset viewer.