Sun, 12 Apr 2015 18:00:45 +0200
Changed the handling of the configuration page list entries
to be collapsed on first show and remember the expanded
ones while eric is running (but not between invocations).
--- a/APIs/Python3/eric6.api Sun Apr 12 16:59:06 2015 +0200 +++ b/APIs/Python3/eric6.api Sun Apr 12 18:00:45 2015 +0200 @@ -5947,11 +5947,12 @@ eric6.Preferences.ConfigurationDialog.ConfigurationDialog.TrayStarterMode?7 eric6.Preferences.ConfigurationDialog.ConfigurationDialog.accept?4() eric6.Preferences.ConfigurationDialog.ConfigurationDialog.getConfigurationPageName?4() +eric6.Preferences.ConfigurationDialog.ConfigurationDialog.getExpandedEntries?4() eric6.Preferences.ConfigurationDialog.ConfigurationDialog.masterPasswordChanged?7 eric6.Preferences.ConfigurationDialog.ConfigurationDialog.preferencesChanged?7 eric6.Preferences.ConfigurationDialog.ConfigurationDialog.setPreferences?4() eric6.Preferences.ConfigurationDialog.ConfigurationDialog.showConfigurationPageByName?4(pageName) -eric6.Preferences.ConfigurationDialog.ConfigurationDialog?1(parent=None, name=None, modal=False, fromEric=True, displayMode=ConfigurationWidget.DefaultMode) +eric6.Preferences.ConfigurationDialog.ConfigurationDialog?1(parent=None, name=None, modal=False, fromEric=True, displayMode=ConfigurationWidget.DefaultMode, expandedEntries=[]) eric6.Preferences.ConfigurationDialog.ConfigurationPageItem.getPageName?4() eric6.Preferences.ConfigurationDialog.ConfigurationPageItem?1(parent, text, pageName, iconFile) eric6.Preferences.ConfigurationDialog.ConfigurationWidget.DefaultMode?7 @@ -5961,17 +5962,20 @@ eric6.Preferences.ConfigurationDialog.ConfigurationWidget.accepted?7 eric6.Preferences.ConfigurationDialog.ConfigurationWidget.calledFromEric?4() eric6.Preferences.ConfigurationDialog.ConfigurationWidget.getConfigurationPageName?4() +eric6.Preferences.ConfigurationDialog.ConfigurationWidget.getExpandedEntries?4() eric6.Preferences.ConfigurationDialog.ConfigurationWidget.getLexers?4() eric6.Preferences.ConfigurationDialog.ConfigurationWidget.getPage?4(pageName) eric6.Preferences.ConfigurationDialog.ConfigurationWidget.masterPasswordChanged?7 eric6.Preferences.ConfigurationDialog.ConfigurationWidget.on_applyButton_clicked?4() eric6.Preferences.ConfigurationDialog.ConfigurationWidget.on_buttonBox_clicked?4(button) +eric6.Preferences.ConfigurationDialog.ConfigurationWidget.on_configList_itemCollapsed?4(item) +eric6.Preferences.ConfigurationDialog.ConfigurationWidget.on_configList_itemExpanded?4(item) eric6.Preferences.ConfigurationDialog.ConfigurationWidget.on_resetButton_clicked?4() eric6.Preferences.ConfigurationDialog.ConfigurationWidget.preferencesChanged?7 eric6.Preferences.ConfigurationDialog.ConfigurationWidget.rejected?7 eric6.Preferences.ConfigurationDialog.ConfigurationWidget.setPreferences?4() eric6.Preferences.ConfigurationDialog.ConfigurationWidget.showConfigurationPageByName?4(pageName, setCurrent=True) -eric6.Preferences.ConfigurationDialog.ConfigurationWidget?1(parent=None, fromEric=True, displayMode=DefaultMode) +eric6.Preferences.ConfigurationDialog.ConfigurationWidget?1(parent=None, fromEric=True, displayMode=DefaultMode, expandedEntries=[]) eric6.Preferences.ConfigurationDialog.ConfigurationWindow.accept?4() eric6.Preferences.ConfigurationDialog.ConfigurationWindow.showConfigurationPageByName?4(pageName) eric6.Preferences.ConfigurationDialog.ConfigurationWindow?1(parent=None)
--- a/Documentation/Help/source.qhp Sun Apr 12 16:59:06 2015 +0200 +++ b/Documentation/Help/source.qhp Sun Apr 12 18:00:45 2015 +0200 @@ -2368,6 +2368,7 @@ <keyword name="ConfigurationDialog.__preferencesChanged" id="ConfigurationDialog.__preferencesChanged" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationDialog.__preferencesChanged" /> <keyword name="ConfigurationDialog.accept" id="ConfigurationDialog.accept" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationDialog.accept" /> <keyword name="ConfigurationDialog.getConfigurationPageName" id="ConfigurationDialog.getConfigurationPageName" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationDialog.getConfigurationPageName" /> + <keyword name="ConfigurationDialog.getExpandedEntries" id="ConfigurationDialog.getExpandedEntries" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationDialog.getExpandedEntries" /> <keyword name="ConfigurationDialog.setPreferences" id="ConfigurationDialog.setPreferences" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationDialog.setPreferences" /> <keyword name="ConfigurationDialog.showConfigurationPageByName" id="ConfigurationDialog.showConfigurationPageByName" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationDialog.showConfigurationPageByName" /> <keyword name="ConfigurationPage (Package)" id="ConfigurationPage (Package)" ref="index-eric6.Plugins.VcsPlugins.vcsMercurial.ConfigurationPage.html" /> @@ -2399,10 +2400,13 @@ <keyword name="ConfigurationWidget.accept" id="ConfigurationWidget.accept" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationWidget.accept" /> <keyword name="ConfigurationWidget.calledFromEric" id="ConfigurationWidget.calledFromEric" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationWidget.calledFromEric" /> <keyword name="ConfigurationWidget.getConfigurationPageName" id="ConfigurationWidget.getConfigurationPageName" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationWidget.getConfigurationPageName" /> + <keyword name="ConfigurationWidget.getExpandedEntries" id="ConfigurationWidget.getExpandedEntries" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationWidget.getExpandedEntries" /> <keyword name="ConfigurationWidget.getLexers" id="ConfigurationWidget.getLexers" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationWidget.getLexers" /> <keyword name="ConfigurationWidget.getPage" id="ConfigurationWidget.getPage" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationWidget.getPage" /> <keyword name="ConfigurationWidget.on_applyButton_clicked" id="ConfigurationWidget.on_applyButton_clicked" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationWidget.on_applyButton_clicked" /> <keyword name="ConfigurationWidget.on_buttonBox_clicked" id="ConfigurationWidget.on_buttonBox_clicked" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationWidget.on_buttonBox_clicked" /> + <keyword name="ConfigurationWidget.on_configList_itemCollapsed" id="ConfigurationWidget.on_configList_itemCollapsed" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationWidget.on_configList_itemCollapsed" /> + <keyword name="ConfigurationWidget.on_configList_itemExpanded" id="ConfigurationWidget.on_configList_itemExpanded" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationWidget.on_configList_itemExpanded" /> <keyword name="ConfigurationWidget.on_resetButton_clicked" id="ConfigurationWidget.on_resetButton_clicked" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationWidget.on_resetButton_clicked" /> <keyword name="ConfigurationWidget.setPreferences" id="ConfigurationWidget.setPreferences" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationWidget.setPreferences" /> <keyword name="ConfigurationWidget.showConfigurationPageByName" id="ConfigurationWidget.showConfigurationPageByName" ref="eric6.Preferences.ConfigurationDialog.html#ConfigurationWidget.showConfigurationPageByName" />
--- a/Documentation/Source/eric6.Preferences.ConfigurationDialog.html Sun Apr 12 16:59:06 2015 +0200 +++ b/Documentation/Source/eric6.Preferences.ConfigurationDialog.html Sun Apr 12 18:00:45 2015 +0200 @@ -91,6 +91,9 @@ <td><a href="#ConfigurationDialog.getConfigurationPageName">getConfigurationPageName</a></td> <td>Public method to get the page name of the current page.</td> </tr><tr> +<td><a href="#ConfigurationDialog.getExpandedEntries">getExpandedEntries</a></td> +<td>Public method to get a list of expanded entries.</td> +</tr><tr> <td><a href="#ConfigurationDialog.setPreferences">setPreferences</a></td> <td>Public method called to store the selected values into the preferences storage.</td> </tr><tr> @@ -104,7 +107,7 @@ </table> <a NAME="ConfigurationDialog.__init__" ID="ConfigurationDialog.__init__"></a> <h4>ConfigurationDialog (Constructor)</h4> -<b>ConfigurationDialog</b>(<i>parent=None, name=None, modal=False, fromEric=True, displayMode=ConfigurationWidget.DefaultMode</i>) +<b>ConfigurationDialog</b>(<i>parent=None, name=None, modal=False, fromEric=True, displayMode=ConfigurationWidget.DefaultMode, expandedEntries=[]</i>) <p> Constructor </p><dl> @@ -125,6 +128,10 @@ <dd> mode of the configuration dialog (DefaultMode, HelpBrowserMode, TrayStarterMode) +</dd><dt><i>expandedEntries=</i></dt> +<dd> +list of entries to be shown expanded + (list of strings) </dd> </dl><a NAME="ConfigurationDialog.__masterPasswordChanged" ID="ConfigurationDialog.__masterPasswordChanged"></a> <h4>ConfigurationDialog.__masterPasswordChanged</h4> @@ -159,6 +166,16 @@ <dd> page name of the current page (string) </dd> +</dl><a NAME="ConfigurationDialog.getExpandedEntries" ID="ConfigurationDialog.getExpandedEntries"></a> +<h4>ConfigurationDialog.getExpandedEntries</h4> +<b>getExpandedEntries</b>(<i></i>) +<p> + Public method to get a list of expanded entries. +</p><dl> +<dt>Returns:</dt> +<dd> +list of expanded entries (list of string) +</dd> </dl><a NAME="ConfigurationDialog.setPreferences" ID="ConfigurationDialog.setPreferences"></a> <h4>ConfigurationDialog.setPreferences</h4> <b>setPreferences</b>(<i></i>) @@ -307,6 +324,9 @@ <td><a href="#ConfigurationWidget.getConfigurationPageName">getConfigurationPageName</a></td> <td>Public method to get the page name of the current page.</td> </tr><tr> +<td><a href="#ConfigurationWidget.getExpandedEntries">getExpandedEntries</a></td> +<td>Public method to get a list of expanded entries.</td> +</tr><tr> <td><a href="#ConfigurationWidget.getLexers">getLexers</a></td> <td>Public method to get a reference to the lexers dictionary.</td> </tr><tr> @@ -319,6 +339,12 @@ <td><a href="#ConfigurationWidget.on_buttonBox_clicked">on_buttonBox_clicked</a></td> <td>Private slot called by a button of the button box clicked.</td> </tr><tr> +<td><a href="#ConfigurationWidget.on_configList_itemCollapsed">on_configList_itemCollapsed</a></td> +<td>Private slot handling a list entry being collapsed.</td> +</tr><tr> +<td><a href="#ConfigurationWidget.on_configList_itemExpanded">on_configList_itemExpanded</a></td> +<td>Private slot handling a list entry being expanded.</td> +</tr><tr> <td><a href="#ConfigurationWidget.on_resetButton_clicked">on_resetButton_clicked</a></td> <td>Private slot called to reset the settings of the current page.</td> </tr><tr> @@ -335,7 +361,7 @@ </table> <a NAME="ConfigurationWidget.__init__" ID="ConfigurationWidget.__init__"></a> <h4>ConfigurationWidget (Constructor)</h4> -<b>ConfigurationWidget</b>(<i>parent=None, fromEric=True, displayMode=DefaultMode</i>) +<b>ConfigurationWidget</b>(<i>parent=None, fromEric=True, displayMode=DefaultMode, expandedEntries=[]</i>) <p> Constructor </p><dl> @@ -350,6 +376,10 @@ <dd> mode of the configuration dialog (DefaultMode, HelpBrowserMode, TrayStarterMode) +</dd><dt><i>expandedEntries=</i></dt> +<dd> +list of entries to be shown expanded + (list of strings) </dd> </dl><dl> <dt>Raises <b>RuntimeError</b>:</dt> @@ -463,6 +493,16 @@ <dd> page name of the current page (string) </dd> +</dl><a NAME="ConfigurationWidget.getExpandedEntries" ID="ConfigurationWidget.getExpandedEntries"></a> +<h4>ConfigurationWidget.getExpandedEntries</h4> +<b>getExpandedEntries</b>(<i></i>) +<p> + Public method to get a list of expanded entries. +</p><dl> +<dt>Returns:</dt> +<dd> +list of expanded entries (list of string) +</dd> </dl><a NAME="ConfigurationWidget.getLexers" ID="ConfigurationWidget.getLexers"></a> <h4>ConfigurationWidget.getLexers</h4> <b>getLexers</b>(<i></i>) @@ -504,6 +544,26 @@ <dd> button that was clicked (QAbstractButton) </dd> +</dl><a NAME="ConfigurationWidget.on_configList_itemCollapsed" ID="ConfigurationWidget.on_configList_itemCollapsed"></a> +<h4>ConfigurationWidget.on_configList_itemCollapsed</h4> +<b>on_configList_itemCollapsed</b>(<i>item</i>) +<p> + Private slot handling a list entry being collapsed. +</p><dl> +<dt><i>item</i></dt> +<dd> +reference to the collapsed item (QTreeWidgetItem) +</dd> +</dl><a NAME="ConfigurationWidget.on_configList_itemExpanded" ID="ConfigurationWidget.on_configList_itemExpanded"></a> +<h4>ConfigurationWidget.on_configList_itemExpanded</h4> +<b>on_configList_itemExpanded</b>(<i>item</i>) +<p> + Private slot handling a list entry being expanded. +</p><dl> +<dt><i>item</i></dt> +<dd> +reference to the expanded item (QTreeWidgetItem) +</dd> </dl><a NAME="ConfigurationWidget.on_resetButton_clicked" ID="ConfigurationWidget.on_resetButton_clicked"></a> <h4>ConfigurationWidget.on_resetButton_clicked</h4> <b>on_resetButton_clicked</b>(<i></i>)
--- a/Preferences/ConfigurationDialog.py Sun Apr 12 16:59:06 2015 +0200 +++ b/Preferences/ConfigurationDialog.py Sun Apr 12 18:00:45 2015 +0200 @@ -79,7 +79,8 @@ HelpBrowserMode = 1 TrayStarterMode = 2 - def __init__(self, parent=None, fromEric=True, displayMode=DefaultMode): + def __init__(self, parent=None, fromEric=True, displayMode=DefaultMode, + expandedEntries=[]): """ Constructor @@ -89,6 +90,8 @@ @keyparam displayMode mode of the configuration dialog (DefaultMode, HelpBrowserMode, TrayStarterMode) @exception RuntimeError raised to indicate an invalid dialog mode + @keyparam expandedEntries list of entries to be shown expanded + (list of strings) """ assert displayMode in ( ConfigurationWidget.DefaultMode, @@ -117,9 +120,9 @@ # key : [display string, pixmap name, dialog module name or # page creation function, parent key, # reference to configuration page (must always be last)] - # The dialog module must have the module function create to + # The dialog module must have the module function 'create' to # create the configuration page. This must have the method - # save to save the settings. + # 'save' to save the settings. "applicationPage": [self.tr("Application"), "preferences-application.png", "ApplicationPage", None, None], @@ -317,14 +320,15 @@ self.configItems.update( e5App().getObject("PluginManager").getPluginConfigData()) + elif displayMode == ConfigurationWidget.HelpBrowserMode: self.configItems = { # key : [display string, pixmap name, dialog module name or # page creation function, parent key, # reference to configuration page (must always be last)] - # The dialog module must have the module function create to + # The dialog module must have the module function 'create' to # create the configuration page. This must have the method - # save to save the settings. + # 'save' to save the settings. "interfacePage": [self.tr("Interface"), "preferences-interface.png", "HelpInterfacePage", None, None], @@ -355,22 +359,25 @@ [self.tr("eric6 Web Browser"), "ericWeb.png", "HelpWebBrowserPage", "0helpPage", None], } + elif displayMode == ConfigurationWidget.TrayStarterMode: self.configItems = { # key : [display string, pixmap name, dialog module name or # page creation function, parent key, # reference to configuration page (must always be last)] - # The dialog module must have the module function create to + # The dialog module must have the module function 'create' to # create the configuration page. This must have the method - # save to save the settings. + # 'save' to save the settings. "trayStarterPage": [self.tr("Tray Starter"), "erict.png", "TrayStarterPage", None, None], } + else: raise RuntimeError("Illegal mode value: {0}".format(displayMode)) # generate the list entries + self.__expandedEntries = [] for key in sorted(self.configItems.keys()): pageData = self.configItems[key] if pageData[3]: @@ -380,7 +387,10 @@ self.itmDict[key] = ConfigurationPageItem(pitm, pageData[0], key, pageData[1]) self.itmDict[key].setData(0, Qt.UserRole, key) - self.itmDict[key].setExpanded(True) + if (not self.fromEric or + displayMode != ConfigurationWidget.DefaultMode or + key in expandedEntries): + self.itmDict[key].setExpanded(True) self.configList.sortByColumn(0, Qt.AscendingOrder) # set the initial size of the splitter @@ -747,6 +757,36 @@ self.showConfigurationPageByName(pageName) if savedState is not None: self.configStack.currentWidget().setState(savedState) + + def getExpandedEntries(self): + """ + Public method to get a list of expanded entries. + + @return list of expanded entries (list of string) + """ + return self.__expandedEntries + + @pyqtSlot(QTreeWidgetItem) + def on_configList_itemCollapsed(self, item): + """ + Private slot handling a list entry being collapsed. + + @param item reference to the collapsed item (QTreeWidgetItem) + """ + pageName = item.data(0, Qt.UserRole) + if pageName in self.__expandedEntries: + self.__expandedEntries.remove(pageName) + + @pyqtSlot(QTreeWidgetItem) + def on_configList_itemExpanded(self, item): + """ + Private slot handling a list entry being expanded. + + @param item reference to the expanded item (QTreeWidgetItem) + """ + pageName = item.data(0, Qt.UserRole) + if pageName not in self.__expandedEntries: + self.__expandedEntries.append(pageName) class ConfigurationDialog(QDialog): @@ -765,7 +805,8 @@ TrayStarterMode = ConfigurationWidget.TrayStarterMode def __init__(self, parent=None, name=None, modal=False, - fromEric=True, displayMode=ConfigurationWidget.DefaultMode): + fromEric=True, displayMode=ConfigurationWidget.DefaultMode, + expandedEntries=[]): """ Constructor @@ -776,6 +817,8 @@ eric6 ide (boolean) @keyparam displayMode mode of the configuration dialog (DefaultMode, HelpBrowserMode, TrayStarterMode) + @keyparam expandedEntries list of entries to be shown expanded + (list of strings) """ super(ConfigurationDialog, self).__init__(parent) if name: @@ -786,7 +829,8 @@ self.layout.setSpacing(0) self.cw = ConfigurationWidget(self, fromEric=fromEric, - displayMode=displayMode) + displayMode=displayMode, + expandedEntries=expandedEntries) size = self.cw.size() self.layout.addWidget(self.cw) self.resize(size) @@ -828,6 +872,14 @@ """ return self.cw.getConfigurationPageName() + def getExpandedEntries(self): + """ + Public method to get a list of expanded entries. + + @return list of expanded entries (list of string) + """ + return self.cw.getExpandedEntries() + def setPreferences(self): """ Public method called to store the selected values into the preferences
--- a/UI/UserInterface.py Sun Apr 12 16:59:06 2015 +0200 +++ b/UI/UserInterface.py Sun Apr 12 18:00:45 2015 +0200 @@ -577,8 +577,10 @@ SpellChecker.setDefaultLanguage( Preferences.getEditor("SpellCheckingDefaultLanguage")) - # attribute for the last shown configuration page + # attributes for the last shown configuration page and the + # extended configuration entries self.__lastConfigurationPageName = "" + self.__expandedConfigurationEntries = [] def __createLayout(self, debugServer): """ @@ -5204,7 +5206,10 @@ @param pageName name of the configuration page to show (string) """ from Preferences.ConfigurationDialog import ConfigurationDialog - dlg = ConfigurationDialog(self, 'Configuration') + dlg = ConfigurationDialog( + self, 'Configuration', + expandedEntries=self.__expandedConfigurationEntries, + ) dlg.preferencesChanged.connect(self.__preferencesChanged) dlg.masterPasswordChanged.connect(self.__masterPasswordChanged) dlg.show() @@ -5221,6 +5226,7 @@ Preferences.syncPreferences() self.__preferencesChanged() self.__lastConfigurationPageName = dlg.getConfigurationPageName() + self.__expandedConfigurationEntries = dlg.getExpandedEntries() def __exportPreferences(self): """
--- a/changelog Sun Apr 12 16:59:06 2015 +0200 +++ b/changelog Sun Apr 12 18:00:45 2015 +0200 @@ -17,6 +17,9 @@ - Preferences Dialog -- changed the 'filter' function to a 'search' function disabling all entries, that don't contain the entered string + -- changed the handling of the configuration page list entries + to be collapsed on first show and remember the expanded ones + while eric is running (but not between invocations) - Previewers -- added capability to use 'Sphinx' to preview ReST files - Project