Thu, 25 Jun 2015 18:42:55 +0200
Added a dialog to configure a mouse click sequence.
--- a/APIs/Python3/eric6.api Wed Jun 24 19:52:13 2015 +0200 +++ b/APIs/Python3/eric6.api Thu Jun 25 18:42:55 2015 +0200 @@ -6332,6 +6332,10 @@ eric6.Preferences.ConfigurationPages.ViewmanagerPage.ViewmanagerPage.save?4() eric6.Preferences.ConfigurationPages.ViewmanagerPage.ViewmanagerPage?1() eric6.Preferences.ConfigurationPages.ViewmanagerPage.create?4(dlg) +eric6.Preferences.MouseClickDialog.MouseClickDialog.eventFilter?4(watched, event) +eric6.Preferences.MouseClickDialog.MouseClickDialog.getClick?4() +eric6.Preferences.MouseClickDialog.MouseClickDialog.on_clearButton_clicked?4() +eric6.Preferences.MouseClickDialog.MouseClickDialog?1(modifiers, button, parent=None) eric6.Preferences.PreferencesLexer.PreferencesLexer.color?4(style) eric6.Preferences.PreferencesLexer.PreferencesLexer.defaulEolFill?4(style) eric6.Preferences.PreferencesLexer.PreferencesLexer.defaultColor?4(style)
--- a/APIs/Python3/eric6.bas Wed Jun 24 19:52:13 2015 +0200 +++ b/APIs/Python3/eric6.bas Thu Jun 25 18:42:55 2015 +0200 @@ -458,6 +458,7 @@ Module ClbrBaseClasses.Module VisibilityMixin ModuleItem UMLItem ModuleModel UMLModel +MouseClickDialog QDialog Ui_MouseClickDialog MultiProject QObject MultiProjectBrowser QTreeWidget MultiProjectPage ConfigurationPageBase Ui_MultiProjectPage
--- a/Documentation/Help/source.qhp Wed Jun 24 19:52:13 2015 +0200 +++ b/Documentation/Help/source.qhp Thu Jun 25 18:42:55 2015 +0200 @@ -802,6 +802,7 @@ <section title="eric6.Preferences.ConfigurationPages.ViewmanagerPage" ref="eric6.Preferences.ConfigurationPages.ViewmanagerPage.html" /> </section> <section title="eric6.Preferences.ConfigurationDialog" ref="eric6.Preferences.ConfigurationDialog.html" /> + <section title="eric6.Preferences.MouseClickDialog" ref="eric6.Preferences.MouseClickDialog.html" /> <section title="eric6.Preferences.PreferencesLexer" ref="eric6.Preferences.PreferencesLexer.html" /> <section title="eric6.Preferences.ProgramsDialog" ref="eric6.Preferences.ProgramsDialog.html" /> <section title="eric6.Preferences.ShortcutDialog" ref="eric6.Preferences.ShortcutDialog.html" /> @@ -7978,6 +7979,13 @@ <keyword name="ModuleModel.getClasses" id="ModuleModel.getClasses" ref="eric6.Graphics.ModuleItem.html#ModuleModel.getClasses" /> <keyword name="ModuleParser (Module)" id="ModuleParser (Module)" ref="eric6.Utilities.ModuleParser.html" /> <keyword name="MouseButtonModifier2String" id="MouseButtonModifier2String" ref="eric6.Utilities.MouseUtilities.html#MouseButtonModifier2String" /> + <keyword name="MouseClickDialog" id="MouseClickDialog" ref="eric6.Preferences.MouseClickDialog.html#MouseClickDialog" /> + <keyword name="MouseClickDialog (Constructor)" id="MouseClickDialog (Constructor)" ref="eric6.Preferences.MouseClickDialog.html#MouseClickDialog.__init__" /> + <keyword name="MouseClickDialog (Module)" id="MouseClickDialog (Module)" ref="eric6.Preferences.MouseClickDialog.html" /> + <keyword name="MouseClickDialog.__showClickText" id="MouseClickDialog.__showClickText" ref="eric6.Preferences.MouseClickDialog.html#MouseClickDialog.__showClickText" /> + <keyword name="MouseClickDialog.eventFilter" id="MouseClickDialog.eventFilter" ref="eric6.Preferences.MouseClickDialog.html#MouseClickDialog.eventFilter" /> + <keyword name="MouseClickDialog.getClick" id="MouseClickDialog.getClick" ref="eric6.Preferences.MouseClickDialog.html#MouseClickDialog.getClick" /> + <keyword name="MouseClickDialog.on_clearButton_clicked" id="MouseClickDialog.on_clearButton_clicked" ref="eric6.Preferences.MouseClickDialog.html#MouseClickDialog.on_clearButton_clicked" /> <keyword name="MouseUtilities (Module)" id="MouseUtilities (Module)" ref="eric6.Utilities.MouseUtilities.html" /> <keyword name="MultiProject" id="MultiProject" ref="eric6.MultiProject.MultiProject.html#MultiProject" /> <keyword name="MultiProject (Constructor)" id="MultiProject (Constructor)" ref="eric6.MultiProject.MultiProject.html#MultiProject.__init__" /> @@ -14389,6 +14397,7 @@ <file>eric6.Preferences.ConfigurationPages.TrayStarterPage.html</file> <file>eric6.Preferences.ConfigurationPages.VcsPage.html</file> <file>eric6.Preferences.ConfigurationPages.ViewmanagerPage.html</file> + <file>eric6.Preferences.MouseClickDialog.html</file> <file>eric6.Preferences.PreferencesLexer.html</file> <file>eric6.Preferences.ProgramsDialog.html</file> <file>eric6.Preferences.ShortcutDialog.html</file>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Documentation/Source/eric6.Preferences.MouseClickDialog.html Thu Jun 25 18:42:55 2015 +0200 @@ -0,0 +1,149 @@ +<!DOCTYPE html> +<html><head> +<title>eric6.Preferences.MouseClickDialog</title> +<meta charset="UTF-8"> +<style> +body { + background: #EDECE6; + margin: 0em 1em 10em 1em; + color: black; +} + +h1 { color: white; background: #85774A; } +h2 { color: white; background: #85774A; } +h3 { color: white; background: #9D936E; } +h4 { color: white; background: #9D936E; } + +a { color: #BA6D36; } + +</style> +</head> +<body><a NAME="top" ID="top"></a> +<h1>eric6.Preferences.MouseClickDialog</h1> +<p> +Module implementing a dialog for the configuration of a mouse click sequence. +</p> +<h3>Global Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Classes</h3> +<table> +<tr> +<td><a href="#MouseClickDialog">MouseClickDialog</a></td> +<td>Class implementing a dialog for the configuration of a mouse click sequence.</td> +</tr> +</table> +<h3>Functions</h3> +<table> +<tr><td>None</td></tr> +</table> +<hr /><hr /> +<a NAME="MouseClickDialog" ID="MouseClickDialog"></a> +<h2>MouseClickDialog</h2> +<p> + Class implementing a dialog for the configuration of a mouse click + sequence. +</p> +<h3>Derived from</h3> +QDialog, Ui_MouseClickDialog +<h3>Class Attributes</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Class Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<h3>Methods</h3> +<table> +<tr> +<td><a href="#MouseClickDialog.__init__">MouseClickDialog</a></td> +<td>Constructor</td> +</tr><tr> +<td><a href="#MouseClickDialog.__showClickText">__showClickText</a></td> +<td>Private method to show a string representing the entered mouse click sequence.</td> +</tr><tr> +<td><a href="#MouseClickDialog.eventFilter">eventFilter</a></td> +<td>Public method called to filter the event queue.</td> +</tr><tr> +<td><a href="#MouseClickDialog.getClick">getClick</a></td> +<td>Public method to get the entered mouse click sequence.</td> +</tr><tr> +<td><a href="#MouseClickDialog.on_clearButton_clicked">on_clearButton_clicked</a></td> +<td>Private slot to clear the entered sequence.</td> +</tr> +</table> +<h3>Static Methods</h3> +<table> +<tr><td>None</td></tr> +</table> +<a NAME="MouseClickDialog.__init__" ID="MouseClickDialog.__init__"></a> +<h4>MouseClickDialog (Constructor)</h4> +<b>MouseClickDialog</b>(<i>modifiers, button, parent=None</i>) +<p> + Constructor +</p><dl> +<dt><i>modifiers</i> (Qt.KeyboardModifiers)</dt> +<dd> +keyboard modifiers of the handler +</dd><dt><i>button</i> (Qt.MouseButton)</dt> +<dd> +mouse button of the handler +</dd><dt><i>parent</i> (QWidget)</dt> +<dd> +reference to the parent widget +</dd> +</dl><a NAME="MouseClickDialog.__showClickText" ID="MouseClickDialog.__showClickText"></a> +<h4>MouseClickDialog.__showClickText</h4> +<b>__showClickText</b>(<i></i>) +<p> + Private method to show a string representing the entered mouse click + sequence. +</p><a NAME="MouseClickDialog.eventFilter" ID="MouseClickDialog.eventFilter"></a> +<h4>MouseClickDialog.eventFilter</h4> +<b>eventFilter</b>(<i>watched, event</i>) +<p> + Public method called to filter the event queue. +</p><dl> +<dt><i>watched</i> (QObject)</dt> +<dd> +reference to the watched object +</dd><dt><i>event</i> (QEvent)</dt> +<dd> +reference to the event that occurred +</dd> +</dl><dl> +<dt>Returns:</dt> +<dd> +flag indicating a handled event +</dd> +</dl><dl> +<dt>Return Type:</dt> +<dd> +bool +</dd> +</dl><a NAME="MouseClickDialog.getClick" ID="MouseClickDialog.getClick"></a> +<h4>MouseClickDialog.getClick</h4> +<b>getClick</b>(<i></i>) +<p> + Public method to get the entered mouse click sequence. +</p><dl> +<dt>Returns:</dt> +<dd> +tuple containing the modifiers and the mouse button +</dd> +</dl><dl> +<dt>Return Type:</dt> +<dd> +tuple of Qt.KeyboardModifiers and Qt.MouseButton +</dd> +</dl><a NAME="MouseClickDialog.on_clearButton_clicked" ID="MouseClickDialog.on_clearButton_clicked"></a> +<h4>MouseClickDialog.on_clearButton_clicked</h4> +<b>on_clearButton_clicked</b>(<i></i>) +<p> + Private slot to clear the entered sequence. +</p> +<div align="right"><a href="#top">Up</a></div> +<hr /> +</body></html> \ No newline at end of file
--- a/Documentation/Source/index-eric6.Preferences.html Wed Jun 24 19:52:13 2015 +0200 +++ b/Documentation/Source/index-eric6.Preferences.html Thu Jun 25 18:42:55 2015 +0200 @@ -47,6 +47,9 @@ <td><a href="eric6.Preferences.ConfigurationDialog.html">ConfigurationDialog</a></td> <td>Module implementing a dialog for the configuration of eric6.</td> </tr><tr> +<td><a href="eric6.Preferences.MouseClickDialog.html">MouseClickDialog</a></td> +<td>Module implementing a dialog for the configuration of a mouse click sequence.</td> +</tr><tr> <td><a href="eric6.Preferences.PreferencesLexer.html">PreferencesLexer</a></td> <td>Module implementing a special QextScintilla lexer to handle the preferences.</td> </tr><tr>
--- a/Preferences/ConfigurationPages/EditorMouseClickHandlerPage.ui Wed Jun 24 19:52:13 2015 +0200 +++ b/Preferences/ConfigurationPages/EditorMouseClickHandlerPage.ui Thu Jun 25 18:42:55 2015 +0200 @@ -10,7 +10,7 @@ <height>398</height> </rect> </property> - <layout class="QVBoxLayout" name="verticalLayout_2"> + <layout class="QVBoxLayout" name="verticalLayout"> <item> <widget class="QLabel" name="headerLabel"> <property name="text">
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Preferences/MouseClickDialog.py Thu Jun 25 18:42:55 2015 +0200 @@ -0,0 +1,102 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2015 Detlev Offenbach <detlev@die-offenbachs.de> +# + +""" +Module implementing a dialog for the configuration of a mouse click sequence. +""" + +from __future__ import unicode_literals + +from PyQt5.QtCore import pyqtSlot, Qt, QEvent +from PyQt5.QtWidgets import QDialog, QDialogButtonBox + +from .Ui_MouseClickDialog import Ui_MouseClickDialog + +from Utilities import MouseUtilities + + +class MouseClickDialog(QDialog, Ui_MouseClickDialog): + """ + Class implementing a dialog for the configuration of a mouse click + sequence. + """ + def __init__(self, modifiers, button, parent=None): + """ + Constructor + + @param modifiers keyboard modifiers of the handler + @type Qt.KeyboardModifiers + @param button mouse button of the handler + @type Qt.MouseButton + @param parent reference to the parent widget + @type QWidget + """ + super(MouseClickDialog, self).__init__(parent) + self.setupUi(self) + self.setModal(True) + + self.clickGroup.installEventFilter(self) + self.clearButton.installEventFilter(self) + self.clickEdit.installEventFilter(self) + + self.buttonBox.button(QDialogButtonBox.Ok).installEventFilter(self) + self.buttonBox.button(QDialogButtonBox.Cancel).installEventFilter(self) + + self.__modifiers = modifiers + self.__button = button + + self.__showClickText() + + msh = self.minimumSizeHint() + self.resize(max(self.width(), msh.width()), msh.height()) + + @pyqtSlot() + def on_clearButton_clicked(self): + """ + Private slot to clear the entered sequence. + """ + self.__modifiers = Qt.NoModifier + self.__button = Qt.NoButton + self.__showClickText() + + def __showClickText(self): + """ + Private method to show a string representing the entered mouse click + sequence. + """ + if self.__button == Qt.NoButton: + self.clickEdit.setText("") + else: + self.clickEdit.setText(MouseUtilities.MouseButtonModifier2String( + self.__modifiers, self.__button)) + + def eventFilter(self, watched, event): + """ + Public method called to filter the event queue. + + @param watched reference to the watched object + @type QObject + @param event reference to the event that occurred + @type QEvent + @return flag indicating a handled event + @rtype bool + """ + if event.type() == QEvent.MouseButtonRelease and \ + watched == self.clickEdit: + self.__modifiers = int(event.modifiers()) + self.__button = int(event.button()) + self.__showClickText() + return True + + return False + + def getClick(self): + """ + Public method to get the entered mouse click sequence. + + @return tuple containing the modifiers and the mouse button + @rtype tuple of Qt.KeyboardModifiers and Qt.MouseButton + """ + return (self.__modifiers, self.__button)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Preferences/MouseClickDialog.ui Thu Jun 25 18:42:55 2015 +0200 @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>MouseClickDialog</class> + <widget class="QDialog" name="MouseClickDialog"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>550</width> + <height>111</height> + </rect> + </property> + <property name="windowTitle"> + <string>Edit Mouse Click</string> + </property> + <property name="sizeGripEnabled"> + <bool>true</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <item> + <widget class="QGroupBox" name="clickGroup"> + <property name="title"> + <string/> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="1" column="0"> + <widget class="QPushButton" name="clearButton"> + <property name="toolTip"> + <string>Press to clear the mouse click sequence.</string> + </property> + <property name="text"> + <string>Clear</string> + </property> + </widget> + </item> + <item row="1" column="1"> + <widget class="QLineEdit" name="clickEdit"> + <property name="readOnly"> + <bool>true</bool> + </property> + </widget> + </item> + <item row="0" column="0" colspan="2"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Press the desired modifier keys and the click the desired mouse button.</string> + </property> + <property name="wordWrap"> + <bool>false</bool> + </property> + </widget> + </item> + </layout> + </widget> + </item> + <item> + <widget class="QDialogButtonBox" name="buttonBox"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="standardButtons"> + <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections> + <connection> + <sender>buttonBox</sender> + <signal>accepted()</signal> + <receiver>MouseClickDialog</receiver> + <slot>accept()</slot> + <hints> + <hint type="sourcelabel"> + <x>248</x> + <y>254</y> + </hint> + <hint type="destinationlabel"> + <x>157</x> + <y>274</y> + </hint> + </hints> + </connection> + <connection> + <sender>buttonBox</sender> + <signal>rejected()</signal> + <receiver>MouseClickDialog</receiver> + <slot>reject()</slot> + <hints> + <hint type="sourcelabel"> + <x>316</x> + <y>260</y> + </hint> + <hint type="destinationlabel"> + <x>286</x> + <y>274</y> + </hint> + </hints> + </connection> + </connections> +</ui>
--- a/Utilities/MouseUtilities.py Wed Jun 24 19:52:13 2015 +0200 +++ b/Utilities/MouseUtilities.py Thu Jun 25 18:42:55 2015 +0200 @@ -7,6 +7,8 @@ Module implementing utility functions related to Mouse stuff. """ +from __future__ import unicode_literals + from PyQt5.QtCore import Qt, QCoreApplication import Globals
--- a/eric6.e4p Wed Jun 24 19:52:13 2015 +0200 +++ b/eric6.e4p Thu Jun 25 18:42:55 2015 +0200 @@ -781,6 +781,7 @@ <Source>Preferences/ConfigurationPages/VcsPage.py</Source> <Source>Preferences/ConfigurationPages/ViewmanagerPage.py</Source> <Source>Preferences/ConfigurationPages/__init__.py</Source> + <Source>Preferences/MouseClickDialog.py</Source> <Source>Preferences/PreferencesLexer.py</Source> <Source>Preferences/ProgramsDialog.py</Source> <Source>Preferences/ShortcutDialog.py</Source> @@ -1524,6 +1525,7 @@ <Form>Preferences/ConfigurationPages/TrayStarterPage.ui</Form> <Form>Preferences/ConfigurationPages/VcsPage.ui</Form> <Form>Preferences/ConfigurationPages/ViewmanagerPage.ui</Form> + <Form>Preferences/MouseClickDialog.ui</Form> <Form>Preferences/ProgramsDialog.ui</Form> <Form>Preferences/ShortcutDialog.ui</Form> <Form>Preferences/ShortcutsDialog.ui</Form> @@ -2163,7 +2165,7 @@ <string>ShowIgnored</string> </key> <value> - <bool>True</bool> + <bool>False</bool> </value> </dict> </value>