Extended the snapshot tool to allow for the selection of a screen (for multi screen systems), elliptical selection and a freehand selection.

Mon, 09 Apr 2012 17:02:31 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Mon, 09 Apr 2012 17:02:31 +0200
changeset 1772
f325dfdc8f6b
parent 1771
561e97413395
child 1773
05265254f212

Extended the snapshot tool to allow for the selection of a screen (for multi screen systems), elliptical selection and a freehand selection.

APIs/Python3/eric5.api file | annotate | diff | comparison | revisions
APIs/Python3/eric5.bas file | annotate | diff | comparison | revisions
Documentation/Help/source.qch file | annotate | diff | comparison | revisions
Documentation/Help/source.qhp file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Snapshot.SnapWidget.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Snapshot.SnapshotFreehandGrabber.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Snapshot.SnapshotPreview.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Snapshot.SnapshotRegionGrabber.html file | annotate | diff | comparison | revisions
Documentation/Source/eric5.Snapshot.SnapshotTimer.html file | annotate | diff | comparison | revisions
Documentation/Source/index-eric5.Snapshot.html file | annotate | diff | comparison | revisions
Snapshot/SnapWidget.py file | annotate | diff | comparison | revisions
Snapshot/SnapWidget.ui file | annotate | diff | comparison | revisions
Snapshot/SnapshotFreehandGrabber.py file | annotate | diff | comparison | revisions
Snapshot/SnapshotPreview.py file | annotate | diff | comparison | revisions
Snapshot/SnapshotRegionGrabber.py file | annotate | diff | comparison | revisions
Snapshot/SnapshotTimer.py file | annotate | diff | comparison | revisions
changelog file | annotate | diff | comparison | revisions
eric5.e4p file | annotate | diff | comparison | revisions
i18n/eric5_cs.ts file | annotate | diff | comparison | revisions
i18n/eric5_de.qm file | annotate | diff | comparison | revisions
i18n/eric5_de.ts file | annotate | diff | comparison | revisions
i18n/eric5_en.qm file | annotate | diff | comparison | revisions
i18n/eric5_en.ts file | annotate | diff | comparison | revisions
i18n/eric5_es.ts file | annotate | diff | comparison | revisions
i18n/eric5_fr.ts file | annotate | diff | comparison | revisions
i18n/eric5_it.ts file | annotate | diff | comparison | revisions
i18n/eric5_ru.ts file | annotate | diff | comparison | revisions
i18n/eric5_tr.ts file | annotate | diff | comparison | revisions
i18n/eric5_zh_CN.GB2312.ts file | annotate | diff | comparison | revisions
--- a/APIs/Python3/eric5.api	Sun Apr 08 12:45:44 2012 +0200
+++ b/APIs/Python3/eric5.api	Mon Apr 09 17:02:31 2012 +0200
@@ -6436,13 +6436,36 @@
 eric5.QScintilla.TypingCompleters.getCompleter?4(language, editor, parent=None)
 eric5.QScintilla.ZoomDialog.ZoomDialog.getZoomSize?4()
 eric5.QScintilla.ZoomDialog.ZoomDialog?1(zoom, parent, name=None, modal=False)
+eric5.Snapshot.SnapWidget.SnapWidget.ModeEllipse?7
+eric5.Snapshot.SnapWidget.SnapWidget.ModeFreehand?7
+eric5.Snapshot.SnapWidget.SnapWidget.ModeFullscreen?7
+eric5.Snapshot.SnapWidget.SnapWidget.ModeRectangle?7
+eric5.Snapshot.SnapWidget.SnapWidget.ModeScreen?7
+eric5.Snapshot.SnapWidget.SnapWidget.closeEvent?4(evt)
+eric5.Snapshot.SnapWidget.SnapWidget.eventFilter?4(obj, evt)
 eric5.Snapshot.SnapWidget.SnapWidget.on_copyButton_clicked?4()
-eric5.Snapshot.SnapWidget.SnapWidget.on_saveButton_clicked?4(checked)
-eric5.Snapshot.SnapWidget.SnapWidget.on_takeButton_clicked?4(checked)
+eric5.Snapshot.SnapWidget.SnapWidget.on_saveButton_clicked?4()
+eric5.Snapshot.SnapWidget.SnapWidget.on_takeButton_clicked?4()
+eric5.Snapshot.SnapWidget.SnapWidget.resizeEvent?4(evt)
 eric5.Snapshot.SnapWidget.SnapWidget?1(parent=None)
+eric5.Snapshot.SnapshotFreehandGrabber.SnapshotFreehandGrabber.grabbed?7
+eric5.Snapshot.SnapshotFreehandGrabber.SnapshotFreehandGrabber.keyPressEvent?4(evt)
+eric5.Snapshot.SnapshotFreehandGrabber.SnapshotFreehandGrabber.mouseDoubleClickEvent?4(evt)
+eric5.Snapshot.SnapshotFreehandGrabber.SnapshotFreehandGrabber.mouseMoveEvent?4(evt)
+eric5.Snapshot.SnapshotFreehandGrabber.SnapshotFreehandGrabber.mousePressEvent?4(evt)
+eric5.Snapshot.SnapshotFreehandGrabber.SnapshotFreehandGrabber.mouseReleaseEvent?4(evt)
+eric5.Snapshot.SnapshotFreehandGrabber.SnapshotFreehandGrabber.paintEvent?4(evt)
+eric5.Snapshot.SnapshotFreehandGrabber.SnapshotFreehandGrabber?1()
+eric5.Snapshot.SnapshotFreehandGrabber.drawPolygon?4(painter, polygon, outline, fill=QColor())
+eric5.Snapshot.SnapshotPreview.SnapshotPreview.mouseMoveEvent?4(evt)
+eric5.Snapshot.SnapshotPreview.SnapshotPreview.mousePressEvent?4(evt)
+eric5.Snapshot.SnapshotPreview.SnapshotPreview.mouseReleaseEvent?4(evt)
+eric5.Snapshot.SnapshotPreview.SnapshotPreview.setPreview?4(preview)
+eric5.Snapshot.SnapshotPreview.SnapshotPreview.startDrag?7
+eric5.Snapshot.SnapshotPreview.SnapshotPreview?1(parent=None)
+eric5.Snapshot.SnapshotRegionGrabber.SnapshotRegionGrabber.Ellipse?7
 eric5.Snapshot.SnapshotRegionGrabber.SnapshotRegionGrabber.FillMask?7
-eric5.Snapshot.SnapshotRegionGrabber.SnapshotRegionGrabber.ModeFullscreen?7
-eric5.Snapshot.SnapshotRegionGrabber.SnapshotRegionGrabber.ModeRectangle?7
+eric5.Snapshot.SnapshotRegionGrabber.SnapshotRegionGrabber.Rectangle?7
 eric5.Snapshot.SnapshotRegionGrabber.SnapshotRegionGrabber.StrokeMask?7
 eric5.Snapshot.SnapshotRegionGrabber.SnapshotRegionGrabber.grabbed?7
 eric5.Snapshot.SnapshotRegionGrabber.SnapshotRegionGrabber.keyPressEvent?4(evt)
@@ -6452,8 +6475,14 @@
 eric5.Snapshot.SnapshotRegionGrabber.SnapshotRegionGrabber.mouseReleaseEvent?4(evt)
 eric5.Snapshot.SnapshotRegionGrabber.SnapshotRegionGrabber.paintEvent?4(evt)
 eric5.Snapshot.SnapshotRegionGrabber.SnapshotRegionGrabber.resizeEvent?4(evt)
-eric5.Snapshot.SnapshotRegionGrabber.SnapshotRegionGrabber?1(mode, delay)
+eric5.Snapshot.SnapshotRegionGrabber.SnapshotRegionGrabber?1(mode=Rectangle)
 eric5.Snapshot.SnapshotRegionGrabber.drawRect?4(painter, rect, outline, fill=QColor())
+eric5.Snapshot.SnapshotTimer.SnapshotTimer.enterEvent?4(evt)
+eric5.Snapshot.SnapshotTimer.SnapshotTimer.paintEvent?4(evt)
+eric5.Snapshot.SnapshotTimer.SnapshotTimer.start?4(seconds)
+eric5.Snapshot.SnapshotTimer.SnapshotTimer.stop?4()
+eric5.Snapshot.SnapshotTimer.SnapshotTimer.timeout?7
+eric5.Snapshot.SnapshotTimer.SnapshotTimer?1()
 eric5.SqlBrowser.SqlBrowser.SqlBrowser?1(connections=[], parent=None)
 eric5.SqlBrowser.SqlBrowserWidget.SqlBrowserWidget.addConnection?4(driver, dbName, user, password, host, port)
 eric5.SqlBrowser.SqlBrowserWidget.SqlBrowserWidget.addConnectionByDialog?4()
--- a/APIs/Python3/eric5.bas	Sun Apr 08 12:45:44 2012 +0200
+++ b/APIs/Python3/eric5.bas	Mon Apr 09 17:02:31 2012 +0200
@@ -525,7 +525,10 @@
 SingleApplicationServer QLocalServer
 SiteInfoDialog QDialog Ui_SiteInfoDialog
 SnapWidget QWidget Ui_SnapWidget
+SnapshotFreehandGrabber QWidget
+SnapshotPreview QLabel
 SnapshotRegionGrabber QWidget
+SnapshotTimer QWidget
 SpecialArrayElementVarItem SpecialVarItem
 SpecialVarItem VariableItem
 SpeedDial QObject
Binary file Documentation/Help/source.qch has changed
--- a/Documentation/Help/source.qhp	Sun Apr 08 12:45:44 2012 +0200
+++ b/Documentation/Help/source.qhp	Mon Apr 09 17:02:31 2012 +0200
@@ -808,7 +808,10 @@
           </section>
           <section title="eric5.Snapshot" ref="index-eric5.Snapshot.html">
             <section title="eric5.Snapshot.SnapWidget" ref="eric5.Snapshot.SnapWidget.html" />
+            <section title="eric5.Snapshot.SnapshotFreehandGrabber" ref="eric5.Snapshot.SnapshotFreehandGrabber.html" />
+            <section title="eric5.Snapshot.SnapshotPreview" ref="eric5.Snapshot.SnapshotPreview.html" />
             <section title="eric5.Snapshot.SnapshotRegionGrabber" ref="eric5.Snapshot.SnapshotRegionGrabber.html" />
+            <section title="eric5.Snapshot.SnapshotTimer" ref="eric5.Snapshot.SnapshotTimer.html" />
           </section>
           <section title="eric5.SqlBrowser" ref="index-eric5.SqlBrowser.html">
             <section title="eric5.SqlBrowser.SqlBrowser" ref="eric5.SqlBrowser.SqlBrowser.html" />
@@ -8490,12 +8493,47 @@
       <keyword name="SnapWidget" id="SnapWidget" ref="eric5.Snapshot.SnapWidget.html#SnapWidget" />
       <keyword name="SnapWidget (Constructor)" id="SnapWidget (Constructor)" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__init__" />
       <keyword name="SnapWidget (Module)" id="SnapWidget (Module)" ref="eric5.Snapshot.SnapWidget.html" />
+      <keyword name="SnapWidget.__autoIncFilename" id="SnapWidget.__autoIncFilename" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__autoIncFilename" />
       <keyword name="SnapWidget.__captured" id="SnapWidget.__captured" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__captured" />
+      <keyword name="SnapWidget.__dragSnapshot" id="SnapWidget.__dragSnapshot" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__dragSnapshot" />
+      <keyword name="SnapWidget.__grabEllipse" id="SnapWidget.__grabEllipse" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__grabEllipse" />
+      <keyword name="SnapWidget.__grabFreehand" id="SnapWidget.__grabFreehand" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__grabFreehand" />
+      <keyword name="SnapWidget.__grabRectangle" id="SnapWidget.__grabRectangle" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__grabRectangle" />
+      <keyword name="SnapWidget.__grabTimerTimeout" id="SnapWidget.__grabTimerTimeout" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__grabTimerTimeout" />
       <keyword name="SnapWidget.__initFileFilters" id="SnapWidget.__initFileFilters" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__initFileFilters" />
+      <keyword name="SnapWidget.__initShortcuts" id="SnapWidget.__initShortcuts" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__initShortcuts" />
+      <keyword name="SnapWidget.__performGrab" id="SnapWidget.__performGrab" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__performGrab" />
+      <keyword name="SnapWidget.__quickSave" id="SnapWidget.__quickSave" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__quickSave" />
+      <keyword name="SnapWidget.__redisplay" id="SnapWidget.__redisplay" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__redisplay" />
+      <keyword name="SnapWidget.__saveImage" id="SnapWidget.__saveImage" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__saveImage" />
+      <keyword name="SnapWidget.__startUndelayedGrab" id="SnapWidget.__startUndelayedGrab" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__startUndelayedGrab" />
+      <keyword name="SnapWidget.__updateCaption" id="SnapWidget.__updateCaption" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__updateCaption" />
+      <keyword name="SnapWidget.__updatePreview" id="SnapWidget.__updatePreview" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.__updatePreview" />
+      <keyword name="SnapWidget.closeEvent" id="SnapWidget.closeEvent" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.closeEvent" />
+      <keyword name="SnapWidget.eventFilter" id="SnapWidget.eventFilter" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.eventFilter" />
       <keyword name="SnapWidget.on_copyButton_clicked" id="SnapWidget.on_copyButton_clicked" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.on_copyButton_clicked" />
       <keyword name="SnapWidget.on_saveButton_clicked" id="SnapWidget.on_saveButton_clicked" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.on_saveButton_clicked" />
       <keyword name="SnapWidget.on_takeButton_clicked" id="SnapWidget.on_takeButton_clicked" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.on_takeButton_clicked" />
+      <keyword name="SnapWidget.resizeEvent" id="SnapWidget.resizeEvent" ref="eric5.Snapshot.SnapWidget.html#SnapWidget.resizeEvent" />
       <keyword name="Snapshot (Package)" id="Snapshot (Package)" ref="index-eric5.Snapshot.html" />
+      <keyword name="SnapshotFreehandGrabber" id="SnapshotFreehandGrabber" ref="eric5.Snapshot.SnapshotFreehandGrabber.html#SnapshotFreehandGrabber" />
+      <keyword name="SnapshotFreehandGrabber (Constructor)" id="SnapshotFreehandGrabber (Constructor)" ref="eric5.Snapshot.SnapshotFreehandGrabber.html#SnapshotFreehandGrabber.__init__" />
+      <keyword name="SnapshotFreehandGrabber (Module)" id="SnapshotFreehandGrabber (Module)" ref="eric5.Snapshot.SnapshotFreehandGrabber.html" />
+      <keyword name="SnapshotFreehandGrabber.__grabRegion" id="SnapshotFreehandGrabber.__grabRegion" ref="eric5.Snapshot.SnapshotFreehandGrabber.html#SnapshotFreehandGrabber.__grabRegion" />
+      <keyword name="SnapshotFreehandGrabber.__initialize" id="SnapshotFreehandGrabber.__initialize" ref="eric5.Snapshot.SnapshotFreehandGrabber.html#SnapshotFreehandGrabber.__initialize" />
+      <keyword name="SnapshotFreehandGrabber.keyPressEvent" id="SnapshotFreehandGrabber.keyPressEvent" ref="eric5.Snapshot.SnapshotFreehandGrabber.html#SnapshotFreehandGrabber.keyPressEvent" />
+      <keyword name="SnapshotFreehandGrabber.mouseDoubleClickEvent" id="SnapshotFreehandGrabber.mouseDoubleClickEvent" ref="eric5.Snapshot.SnapshotFreehandGrabber.html#SnapshotFreehandGrabber.mouseDoubleClickEvent" />
+      <keyword name="SnapshotFreehandGrabber.mouseMoveEvent" id="SnapshotFreehandGrabber.mouseMoveEvent" ref="eric5.Snapshot.SnapshotFreehandGrabber.html#SnapshotFreehandGrabber.mouseMoveEvent" />
+      <keyword name="SnapshotFreehandGrabber.mousePressEvent" id="SnapshotFreehandGrabber.mousePressEvent" ref="eric5.Snapshot.SnapshotFreehandGrabber.html#SnapshotFreehandGrabber.mousePressEvent" />
+      <keyword name="SnapshotFreehandGrabber.mouseReleaseEvent" id="SnapshotFreehandGrabber.mouseReleaseEvent" ref="eric5.Snapshot.SnapshotFreehandGrabber.html#SnapshotFreehandGrabber.mouseReleaseEvent" />
+      <keyword name="SnapshotFreehandGrabber.paintEvent" id="SnapshotFreehandGrabber.paintEvent" ref="eric5.Snapshot.SnapshotFreehandGrabber.html#SnapshotFreehandGrabber.paintEvent" />
+      <keyword name="SnapshotPreview" id="SnapshotPreview" ref="eric5.Snapshot.SnapshotPreview.html#SnapshotPreview" />
+      <keyword name="SnapshotPreview (Constructor)" id="SnapshotPreview (Constructor)" ref="eric5.Snapshot.SnapshotPreview.html#SnapshotPreview.__init__" />
+      <keyword name="SnapshotPreview (Module)" id="SnapshotPreview (Module)" ref="eric5.Snapshot.SnapshotPreview.html" />
+      <keyword name="SnapshotPreview.mouseMoveEvent" id="SnapshotPreview.mouseMoveEvent" ref="eric5.Snapshot.SnapshotPreview.html#SnapshotPreview.mouseMoveEvent" />
+      <keyword name="SnapshotPreview.mousePressEvent" id="SnapshotPreview.mousePressEvent" ref="eric5.Snapshot.SnapshotPreview.html#SnapshotPreview.mousePressEvent" />
+      <keyword name="SnapshotPreview.mouseReleaseEvent" id="SnapshotPreview.mouseReleaseEvent" ref="eric5.Snapshot.SnapshotPreview.html#SnapshotPreview.mouseReleaseEvent" />
+      <keyword name="SnapshotPreview.setPreview" id="SnapshotPreview.setPreview" ref="eric5.Snapshot.SnapshotPreview.html#SnapshotPreview.setPreview" />
       <keyword name="SnapshotRegionGrabber" id="SnapshotRegionGrabber" ref="eric5.Snapshot.SnapshotRegionGrabber.html#SnapshotRegionGrabber" />
       <keyword name="SnapshotRegionGrabber (Constructor)" id="SnapshotRegionGrabber (Constructor)" ref="eric5.Snapshot.SnapshotRegionGrabber.html#SnapshotRegionGrabber.__init__" />
       <keyword name="SnapshotRegionGrabber (Module)" id="SnapshotRegionGrabber (Module)" ref="eric5.Snapshot.SnapshotRegionGrabber.html" />
@@ -8512,6 +8550,14 @@
       <keyword name="SnapshotRegionGrabber.mouseReleaseEvent" id="SnapshotRegionGrabber.mouseReleaseEvent" ref="eric5.Snapshot.SnapshotRegionGrabber.html#SnapshotRegionGrabber.mouseReleaseEvent" />
       <keyword name="SnapshotRegionGrabber.paintEvent" id="SnapshotRegionGrabber.paintEvent" ref="eric5.Snapshot.SnapshotRegionGrabber.html#SnapshotRegionGrabber.paintEvent" />
       <keyword name="SnapshotRegionGrabber.resizeEvent" id="SnapshotRegionGrabber.resizeEvent" ref="eric5.Snapshot.SnapshotRegionGrabber.html#SnapshotRegionGrabber.resizeEvent" />
+      <keyword name="SnapshotTimer" id="SnapshotTimer" ref="eric5.Snapshot.SnapshotTimer.html#SnapshotTimer" />
+      <keyword name="SnapshotTimer (Constructor)" id="SnapshotTimer (Constructor)" ref="eric5.Snapshot.SnapshotTimer.html#SnapshotTimer.__init__" />
+      <keyword name="SnapshotTimer (Module)" id="SnapshotTimer (Module)" ref="eric5.Snapshot.SnapshotTimer.html" />
+      <keyword name="SnapshotTimer.__bell" id="SnapshotTimer.__bell" ref="eric5.Snapshot.SnapshotTimer.html#SnapshotTimer.__bell" />
+      <keyword name="SnapshotTimer.enterEvent" id="SnapshotTimer.enterEvent" ref="eric5.Snapshot.SnapshotTimer.html#SnapshotTimer.enterEvent" />
+      <keyword name="SnapshotTimer.paintEvent" id="SnapshotTimer.paintEvent" ref="eric5.Snapshot.SnapshotTimer.html#SnapshotTimer.paintEvent" />
+      <keyword name="SnapshotTimer.start" id="SnapshotTimer.start" ref="eric5.Snapshot.SnapshotTimer.html#SnapshotTimer.start" />
+      <keyword name="SnapshotTimer.stop" id="SnapshotTimer.stop" ref="eric5.Snapshot.SnapshotTimer.html#SnapshotTimer.stop" />
       <keyword name="SourceStat" id="SourceStat" ref="eric5.DataViews.CodeMetrics.html#SourceStat" />
       <keyword name="SourceStat (Constructor)" id="SourceStat (Constructor)" ref="eric5.DataViews.CodeMetrics.html#SourceStat.__init__" />
       <keyword name="SourceStat.dedent" id="SourceStat.dedent" ref="eric5.DataViews.CodeMetrics.html#SourceStat.dedent" />
@@ -11359,6 +11405,7 @@
       <keyword name="displayString" id="displayString" ref="eric5.Plugins.PluginVcsPySvn.html#displayString" />
       <keyword name="displayString" id="displayString" ref="eric5.Plugins.PluginVcsSubversion.html#displayString" />
       <keyword name="doDependancyChecks" id="doDependancyChecks" ref="eric5.install.html#doDependancyChecks" />
+      <keyword name="drawPolygon" id="drawPolygon" ref="eric5.Snapshot.SnapshotFreehandGrabber.html#drawPolygon" />
       <keyword name="drawRect" id="drawRect" ref="eric5.Snapshot.SnapshotRegionGrabber.html#drawRect" />
       <keyword name="encode" id="encode" ref="eric5.Utilities.__init__.html#encode" />
       <keyword name="encryptData" id="encryptData" ref="eric5.Utilities.crypto.py3AES.html#encryptData" />
@@ -12507,7 +12554,10 @@
       <file>eric5.QScintilla.TypingCompleters.__init__.html</file>
       <file>eric5.QScintilla.ZoomDialog.html</file>
       <file>eric5.Snapshot.SnapWidget.html</file>
+      <file>eric5.Snapshot.SnapshotFreehandGrabber.html</file>
+      <file>eric5.Snapshot.SnapshotPreview.html</file>
       <file>eric5.Snapshot.SnapshotRegionGrabber.html</file>
+      <file>eric5.Snapshot.SnapshotTimer.html</file>
       <file>eric5.SqlBrowser.SqlBrowser.html</file>
       <file>eric5.SqlBrowser.SqlBrowserWidget.html</file>
       <file>eric5.SqlBrowser.SqlConnectionDialog.html</file>
--- a/Documentation/Source/eric5.Snapshot.SnapWidget.html	Sun Apr 08 12:45:44 2012 +0200
+++ b/Documentation/Source/eric5.Snapshot.SnapWidget.html	Mon Apr 09 17:02:31 2012 +0200
@@ -49,7 +49,7 @@
 QWidget, Ui_SnapWidget
 <h3>Class Attributes</h3>
 <table>
-<tr><td>None</td></tr>
+<tr><td>ModeEllipse</td></tr><tr><td>ModeFreehand</td></tr><tr><td>ModeFullscreen</td></tr><tr><td>ModeRectangle</td></tr><tr><td>ModeScreen</td></tr>
 </table>
 <h3>Class Methods</h3>
 <table>
@@ -61,12 +61,60 @@
 <td><a href="#SnapWidget.__init__">SnapWidget</a></td>
 <td>Constructor</td>
 </tr><tr>
+<td><a href="#SnapWidget.__autoIncFilename">__autoIncFilename</a></td>
+<td>Private method to auto-increment the file name.</td>
+</tr><tr>
 <td><a href="#SnapWidget.__captured">__captured</a></td>
 <td>Private slot to show a preview of the snapshot.</td>
 </tr><tr>
+<td><a href="#SnapWidget.__dragSnapshot">__dragSnapshot</a></td>
+<td>Private slot handling the dragging of the preview picture.</td>
+</tr><tr>
+<td><a href="#SnapWidget.__grabEllipse">__grabEllipse</a></td>
+<td>Private method to grab an elliptical screen region.</td>
+</tr><tr>
+<td><a href="#SnapWidget.__grabFreehand">__grabFreehand</a></td>
+<td>Private method to grab a non-rectangular screen region.</td>
+</tr><tr>
+<td><a href="#SnapWidget.__grabRectangle">__grabRectangle</a></td>
+<td>Private method to grab a rectangular screen region.</td>
+</tr><tr>
+<td><a href="#SnapWidget.__grabTimerTimeout">__grabTimerTimeout</a></td>
+<td>Private slot to perform a delayed grab operation.</td>
+</tr><tr>
 <td><a href="#SnapWidget.__initFileFilters">__initFileFilters</a></td>
 <td>Private method to define the supported image file filters.</td>
 </tr><tr>
+<td><a href="#SnapWidget.__initShortcuts">__initShortcuts</a></td>
+<td>Private method to initialize the keyboard shortcuts.</td>
+</tr><tr>
+<td><a href="#SnapWidget.__performGrab">__performGrab</a></td>
+<td>Private method to perform a screen grab other than a selected region.</td>
+</tr><tr>
+<td><a href="#SnapWidget.__quickSave">__quickSave</a></td>
+<td>Private slot to save the snapshot bypassing the file selection dialog.</td>
+</tr><tr>
+<td><a href="#SnapWidget.__redisplay">__redisplay</a></td>
+<td>Private method to redisplay the window.</td>
+</tr><tr>
+<td><a href="#SnapWidget.__saveImage">__saveImage</a></td>
+<td>Private method to save the snapshot.</td>
+</tr><tr>
+<td><a href="#SnapWidget.__startUndelayedGrab">__startUndelayedGrab</a></td>
+<td>Private slot to perform an undelayed grab operation.</td>
+</tr><tr>
+<td><a href="#SnapWidget.__updateCaption">__updateCaption</a></td>
+<td>Private method to update the window caption.</td>
+</tr><tr>
+<td><a href="#SnapWidget.__updatePreview">__updatePreview</a></td>
+<td>Private slot to update the preview picture.</td>
+</tr><tr>
+<td><a href="#SnapWidget.closeEvent">closeEvent</a></td>
+<td>Protected method handling the close event.</td>
+</tr><tr>
+<td><a href="#SnapWidget.eventFilter">eventFilter</a></td>
+<td>Public method to handle event for other objects.</td>
+</tr><tr>
 <td><a href="#SnapWidget.on_copyButton_clicked">on_copyButton_clicked</a></td>
 <td>Private slot to copy the snapshot to the clipboard.</td>
 </tr><tr>
@@ -75,6 +123,9 @@
 </tr><tr>
 <td><a href="#SnapWidget.on_takeButton_clicked">on_takeButton_clicked</a></td>
 <td>Private slot to take a snapshot.</td>
+</tr><tr>
+<td><a href="#SnapWidget.resizeEvent">resizeEvent</a></td>
+<td>Protected method handling a resizing of the window.</td>
 </tr>
 </table>
 <h3>Static Methods</h3>
@@ -91,7 +142,12 @@
 <dd>
 reference to the parent widget (QWidget)
 </dd>
-</dl><a NAME="SnapWidget.__captured" ID="SnapWidget.__captured"></a>
+</dl><a NAME="SnapWidget.__autoIncFilename" ID="SnapWidget.__autoIncFilename"></a>
+<h4>SnapWidget.__autoIncFilename</h4>
+<b>__autoIncFilename</b>(<i></i>)
+<p>
+        Private method to auto-increment the file name.
+</p><a NAME="SnapWidget.__captured" ID="SnapWidget.__captured"></a>
 <h4>SnapWidget.__captured</h4>
 <b>__captured</b>(<i>pixmap</i>)
 <p>
@@ -101,27 +157,140 @@
 <dd>
 pixmap of the snapshot (QPixmap)
 </dd>
-</dl><a NAME="SnapWidget.__initFileFilters" ID="SnapWidget.__initFileFilters"></a>
+</dl><a NAME="SnapWidget.__dragSnapshot" ID="SnapWidget.__dragSnapshot"></a>
+<h4>SnapWidget.__dragSnapshot</h4>
+<b>__dragSnapshot</b>(<i></i>)
+<p>
+        Private slot handling the dragging of the preview picture.
+</p><a NAME="SnapWidget.__grabEllipse" ID="SnapWidget.__grabEllipse"></a>
+<h4>SnapWidget.__grabEllipse</h4>
+<b>__grabEllipse</b>(<i></i>)
+<p>
+        Private method to grab an elliptical screen region.
+</p><a NAME="SnapWidget.__grabFreehand" ID="SnapWidget.__grabFreehand"></a>
+<h4>SnapWidget.__grabFreehand</h4>
+<b>__grabFreehand</b>(<i></i>)
+<p>
+        Private method to grab a non-rectangular screen region.
+</p><a NAME="SnapWidget.__grabRectangle" ID="SnapWidget.__grabRectangle"></a>
+<h4>SnapWidget.__grabRectangle</h4>
+<b>__grabRectangle</b>(<i></i>)
+<p>
+        Private method to grab a rectangular screen region.
+</p><a NAME="SnapWidget.__grabTimerTimeout" ID="SnapWidget.__grabTimerTimeout"></a>
+<h4>SnapWidget.__grabTimerTimeout</h4>
+<b>__grabTimerTimeout</b>(<i></i>)
+<p>
+        Private slot to perform a delayed grab operation.
+</p><a NAME="SnapWidget.__initFileFilters" ID="SnapWidget.__initFileFilters"></a>
 <h4>SnapWidget.__initFileFilters</h4>
 <b>__initFileFilters</b>(<i></i>)
 <p>
         Private method to define the supported image file filters.
-</p><a NAME="SnapWidget.on_copyButton_clicked" ID="SnapWidget.on_copyButton_clicked"></a>
+</p><a NAME="SnapWidget.__initShortcuts" ID="SnapWidget.__initShortcuts"></a>
+<h4>SnapWidget.__initShortcuts</h4>
+<b>__initShortcuts</b>(<i></i>)
+<p>
+        Private method to initialize the keyboard shortcuts.
+</p><a NAME="SnapWidget.__performGrab" ID="SnapWidget.__performGrab"></a>
+<h4>SnapWidget.__performGrab</h4>
+<b>__performGrab</b>(<i></i>)
+<p>
+        Private method to perform a screen grab other than a selected region.
+</p><a NAME="SnapWidget.__quickSave" ID="SnapWidget.__quickSave"></a>
+<h4>SnapWidget.__quickSave</h4>
+<b>__quickSave</b>(<i></i>)
+<p>
+        Private slot to save the snapshot bypassing the file selection dialog.
+</p><a NAME="SnapWidget.__redisplay" ID="SnapWidget.__redisplay"></a>
+<h4>SnapWidget.__redisplay</h4>
+<b>__redisplay</b>(<i></i>)
+<p>
+        Private method to redisplay the window.
+</p><a NAME="SnapWidget.__saveImage" ID="SnapWidget.__saveImage"></a>
+<h4>SnapWidget.__saveImage</h4>
+<b>__saveImage</b>(<i>fileName</i>)
+<p>
+        Private method to save the snapshot.
+</p><dl>
+<dt><i>fileName</i></dt>
+<dd>
+name of the file to save to (string)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating success (boolean)
+</dd>
+</dl><a NAME="SnapWidget.__startUndelayedGrab" ID="SnapWidget.__startUndelayedGrab"></a>
+<h4>SnapWidget.__startUndelayedGrab</h4>
+<b>__startUndelayedGrab</b>(<i></i>)
+<p>
+        Private slot to perform an undelayed grab operation.
+</p><a NAME="SnapWidget.__updateCaption" ID="SnapWidget.__updateCaption"></a>
+<h4>SnapWidget.__updateCaption</h4>
+<b>__updateCaption</b>(<i></i>)
+<p>
+        Private method to update the window caption.
+</p><a NAME="SnapWidget.__updatePreview" ID="SnapWidget.__updatePreview"></a>
+<h4>SnapWidget.__updatePreview</h4>
+<b>__updatePreview</b>(<i></i>)
+<p>
+        Private slot to update the preview picture.
+</p><a NAME="SnapWidget.closeEvent" ID="SnapWidget.closeEvent"></a>
+<h4>SnapWidget.closeEvent</h4>
+<b>closeEvent</b>(<i>evt</i>)
+<p>
+        Protected method handling the close event.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+close event (QCloseEvent)
+</dd>
+</dl><a NAME="SnapWidget.eventFilter" ID="SnapWidget.eventFilter"></a>
+<h4>SnapWidget.eventFilter</h4>
+<b>eventFilter</b>(<i>obj, evt</i>)
+<p>
+        Public method to handle event for other objects.
+</p><dl>
+<dt><i>obj</i></dt>
+<dd>
+reference to the object (QObject)
+</dd><dt><i>evt</i></dt>
+<dd>
+reference to the event (QEvent)
+</dd>
+</dl><dl>
+<dt>Returns:</dt>
+<dd>
+flag indicating that the event should be filtered out (boolean)
+</dd>
+</dl><a NAME="SnapWidget.on_copyButton_clicked" ID="SnapWidget.on_copyButton_clicked"></a>
 <h4>SnapWidget.on_copyButton_clicked</h4>
 <b>on_copyButton_clicked</b>(<i></i>)
 <p>
         Private slot to copy the snapshot to the clipboard.
 </p><a NAME="SnapWidget.on_saveButton_clicked" ID="SnapWidget.on_saveButton_clicked"></a>
 <h4>SnapWidget.on_saveButton_clicked</h4>
-<b>on_saveButton_clicked</b>(<i>checked</i>)
+<b>on_saveButton_clicked</b>(<i></i>)
 <p>
         Private slot to save the snapshot.
 </p><a NAME="SnapWidget.on_takeButton_clicked" ID="SnapWidget.on_takeButton_clicked"></a>
 <h4>SnapWidget.on_takeButton_clicked</h4>
-<b>on_takeButton_clicked</b>(<i>checked</i>)
+<b>on_takeButton_clicked</b>(<i></i>)
 <p>
         Private slot to take a snapshot.
-</p>
+</p><a NAME="SnapWidget.resizeEvent" ID="SnapWidget.resizeEvent"></a>
+<h4>SnapWidget.resizeEvent</h4>
+<b>resizeEvent</b>(<i>evt</i>)
+<p>
+        Protected method handling a resizing of the window.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+resize event (QResizeEvent)
+</dd>
+</dl>
 <div align="right"><a href="#top">Up</a></div>
 <hr />
 </body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Snapshot.SnapshotFreehandGrabber.html	Mon Apr 09 17:02:31 2012 +0200
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Snapshot.SnapshotFreehandGrabber</title>
+<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>eric5.Snapshot.SnapshotFreehandGrabber</h1>
+<p>
+Module implementing a grabber widget for a freehand snapshot region.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#SnapshotFreehandGrabber">SnapshotFreehandGrabber</a></td>
+<td>Class implementing a grabber widget for a freehand snapshot region.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr>
+<td><a href="#drawPolygon">drawPolygon</a></td>
+<td>Module function to draw a polygon with the given parameters.</td>
+</tr>
+</table>
+<hr /><hr />
+<a NAME="SnapshotFreehandGrabber" ID="SnapshotFreehandGrabber"></a>
+<h2>SnapshotFreehandGrabber</h2>
+<p>
+    Class implementing a grabber widget for a freehand snapshot region.
+</p><h3>Signals</h3>
+<dl>
+<dt>grabbed(QPixmap)</dt>
+<dd>
+emitted after the region was grabbed
+</dd>
+</dl>
+<h3>Derived from</h3>
+QWidget
+<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="#SnapshotFreehandGrabber.__init__">SnapshotFreehandGrabber</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#SnapshotFreehandGrabber.__grabRegion">__grabRegion</a></td>
+<td>Private method to grab the selected region (i.e.</td>
+</tr><tr>
+<td><a href="#SnapshotFreehandGrabber.__initialize">__initialize</a></td>
+<td>Private slot to initialize the rest of the widget.</td>
+</tr><tr>
+<td><a href="#SnapshotFreehandGrabber.keyPressEvent">keyPressEvent</a></td>
+<td>Protected method to handle key presses.</td>
+</tr><tr>
+<td><a href="#SnapshotFreehandGrabber.mouseDoubleClickEvent">mouseDoubleClickEvent</a></td>
+<td>Protected method to handle mouse double clicks.</td>
+</tr><tr>
+<td><a href="#SnapshotFreehandGrabber.mouseMoveEvent">mouseMoveEvent</a></td>
+<td>Protected method to handle mouse movements.</td>
+</tr><tr>
+<td><a href="#SnapshotFreehandGrabber.mousePressEvent">mousePressEvent</a></td>
+<td>Protected method to handle mouse button presses.</td>
+</tr><tr>
+<td><a href="#SnapshotFreehandGrabber.mouseReleaseEvent">mouseReleaseEvent</a></td>
+<td>Protected method to handle mouse button releases.</td>
+</tr><tr>
+<td><a href="#SnapshotFreehandGrabber.paintEvent">paintEvent</a></td>
+<td>Protected method handling paint events.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="SnapshotFreehandGrabber.__init__" ID="SnapshotFreehandGrabber.__init__"></a>
+<h4>SnapshotFreehandGrabber (Constructor)</h4>
+<b>SnapshotFreehandGrabber</b>(<i></i>)
+<p>
+        Constructor
+</p><a NAME="SnapshotFreehandGrabber.__grabRegion" ID="SnapshotFreehandGrabber.__grabRegion"></a>
+<h4>SnapshotFreehandGrabber.__grabRegion</h4>
+<b>__grabRegion</b>(<i></i>)
+<p>
+        Private method to grab the selected region (i.e. do the snapshot).
+</p><a NAME="SnapshotFreehandGrabber.__initialize" ID="SnapshotFreehandGrabber.__initialize"></a>
+<h4>SnapshotFreehandGrabber.__initialize</h4>
+<b>__initialize</b>(<i></i>)
+<p>
+        Private slot to initialize the rest of the widget.
+</p><a NAME="SnapshotFreehandGrabber.keyPressEvent" ID="SnapshotFreehandGrabber.keyPressEvent"></a>
+<h4>SnapshotFreehandGrabber.keyPressEvent</h4>
+<b>keyPressEvent</b>(<i>evt</i>)
+<p>
+        Protected method to handle key presses.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+key press event (QKeyEvent)
+</dd>
+</dl><a NAME="SnapshotFreehandGrabber.mouseDoubleClickEvent" ID="SnapshotFreehandGrabber.mouseDoubleClickEvent"></a>
+<h4>SnapshotFreehandGrabber.mouseDoubleClickEvent</h4>
+<b>mouseDoubleClickEvent</b>(<i>evt</i>)
+<p>
+        Protected method to handle mouse double clicks.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+mouse double click event (QMouseEvent)
+</dd>
+</dl><a NAME="SnapshotFreehandGrabber.mouseMoveEvent" ID="SnapshotFreehandGrabber.mouseMoveEvent"></a>
+<h4>SnapshotFreehandGrabber.mouseMoveEvent</h4>
+<b>mouseMoveEvent</b>(<i>evt</i>)
+<p>
+        Protected method to handle mouse movements.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+mouse move event (QMouseEvent)
+</dd>
+</dl><a NAME="SnapshotFreehandGrabber.mousePressEvent" ID="SnapshotFreehandGrabber.mousePressEvent"></a>
+<h4>SnapshotFreehandGrabber.mousePressEvent</h4>
+<b>mousePressEvent</b>(<i>evt</i>)
+<p>
+        Protected method to handle mouse button presses.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+mouse press event (QMouseEvent)
+</dd>
+</dl><a NAME="SnapshotFreehandGrabber.mouseReleaseEvent" ID="SnapshotFreehandGrabber.mouseReleaseEvent"></a>
+<h4>SnapshotFreehandGrabber.mouseReleaseEvent</h4>
+<b>mouseReleaseEvent</b>(<i>evt</i>)
+<p>
+        Protected method to handle mouse button releases.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+mouse release event (QMouseEvent)
+</dd>
+</dl><a NAME="SnapshotFreehandGrabber.paintEvent" ID="SnapshotFreehandGrabber.paintEvent"></a>
+<h4>SnapshotFreehandGrabber.paintEvent</h4>
+<b>paintEvent</b>(<i>evt</i>)
+<p>
+        Protected method handling paint events.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+paint event (QPaintEvent)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr /><hr />
+<a NAME="drawPolygon" ID="drawPolygon"></a>
+<h2>drawPolygon</h2>
+<b>drawPolygon</b>(<i>painter, polygon, outline, fill=QColor()</i>)
+<p>
+    Module function to draw a polygon with the given parameters.
+</p><dl>
+<dt><i>painter</i></dt>
+<dd>
+reference to the painter to be used (QPainter)
+</dd><dt><i>polygon</i></dt>
+<dd>
+polygon to be drawn (QPolygon)
+</dd><dt><i>outline</i></dt>
+<dd>
+color of the outline (QColor)
+</dd><dt><i>fill</i></dt>
+<dd>
+fill color (QColor)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Snapshot.SnapshotPreview.html	Mon Apr 09 17:02:31 2012 +0200
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Snapshot.SnapshotPreview</title>
+<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>eric5.Snapshot.SnapshotPreview</h1>
+<p>
+Module implementing the snapshot preview label.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#SnapshotPreview">SnapshotPreview</a></td>
+<td>Class implementing the snapshot preview label.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="SnapshotPreview" ID="SnapshotPreview"></a>
+<h2>SnapshotPreview</h2>
+<p>
+    Class implementing the snapshot preview label.
+</p><h3>Signals</h3>
+<dl>
+<dt>startDrag()</dt>
+<dd>
+emitted to indicate the start of a drag operation
+</dd>
+</dl>
+<h3>Derived from</h3>
+QLabel
+<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="#SnapshotPreview.__init__">SnapshotPreview</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#SnapshotPreview.mouseMoveEvent">mouseMoveEvent</a></td>
+<td>Protected method to handle mouse moves.</td>
+</tr><tr>
+<td><a href="#SnapshotPreview.mousePressEvent">mousePressEvent</a></td>
+<td>Protected method to handle mouse button presses.</td>
+</tr><tr>
+<td><a href="#SnapshotPreview.mouseReleaseEvent">mouseReleaseEvent</a></td>
+<td>Protected method to handle mouse button releases.</td>
+</tr><tr>
+<td><a href="#SnapshotPreview.setPreview">setPreview</a></td>
+<td>Public slot to set the preview picture.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="SnapshotPreview.__init__" ID="SnapshotPreview.__init__"></a>
+<h4>SnapshotPreview (Constructor)</h4>
+<b>SnapshotPreview</b>(<i>parent=None</i>)
+<p>
+        Constructor
+</p><dl>
+<dt><i>parent</i></dt>
+<dd>
+reference to the parent widget (QWidget)
+</dd>
+</dl><a NAME="SnapshotPreview.mouseMoveEvent" ID="SnapshotPreview.mouseMoveEvent"></a>
+<h4>SnapshotPreview.mouseMoveEvent</h4>
+<b>mouseMoveEvent</b>(<i>evt</i>)
+<p>
+        Protected method to handle mouse moves.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+mouse move event (QMouseEvent)
+</dd>
+</dl><a NAME="SnapshotPreview.mousePressEvent" ID="SnapshotPreview.mousePressEvent"></a>
+<h4>SnapshotPreview.mousePressEvent</h4>
+<b>mousePressEvent</b>(<i>evt</i>)
+<p>
+        Protected method to handle mouse button presses.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+mouse button press event (QMouseEvent)
+</dd>
+</dl><a NAME="SnapshotPreview.mouseReleaseEvent" ID="SnapshotPreview.mouseReleaseEvent"></a>
+<h4>SnapshotPreview.mouseReleaseEvent</h4>
+<b>mouseReleaseEvent</b>(<i>evt</i>)
+<p>
+        Protected method to handle mouse button releases.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+mouse button release event (QMouseEvent)
+</dd>
+</dl><a NAME="SnapshotPreview.setPreview" ID="SnapshotPreview.setPreview"></a>
+<h4>SnapshotPreview.setPreview</h4>
+<b>setPreview</b>(<i>preview</i>)
+<p>
+        Public slot to set the preview picture.
+</p><dl>
+<dt><i>preview</i></dt>
+<dd>
+preview picture to be shown (QPixmap)
+</dd>
+</dl>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/eric5.Snapshot.SnapshotRegionGrabber.html	Sun Apr 08 12:45:44 2012 +0200
+++ b/Documentation/Source/eric5.Snapshot.SnapshotRegionGrabber.html	Mon Apr 09 17:02:31 2012 +0200
@@ -22,7 +22,7 @@
 <body><a NAME="top" ID="top"></a>
 <h1>eric5.Snapshot.SnapshotRegionGrabber</h1>
 <p>
-Module implementing the snapshot region grabber widget.
+Module implementing a grabber widget for a rectangular snapshot region.
 </p>
 <h3>Global Attributes</h3>
 <table>
@@ -32,7 +32,7 @@
 <table>
 <tr>
 <td><a href="#SnapshotRegionGrabber">SnapshotRegionGrabber</a></td>
-<td>Class implementing the snapshot region grabber widget.</td>
+<td>Class implementing a grabber widget for a rectangular snapshot region.</td>
 </tr>
 </table>
 <h3>Functions</h3>
@@ -46,7 +46,7 @@
 <a NAME="SnapshotRegionGrabber" ID="SnapshotRegionGrabber"></a>
 <h2>SnapshotRegionGrabber</h2>
 <p>
-    Class implementing the snapshot region grabber widget.
+    Class implementing a grabber widget for a rectangular snapshot region.
 </p><h3>Signals</h3>
 <dl>
 <dt>grabbed(QPixmap)</dt>
@@ -58,7 +58,7 @@
 QWidget
 <h3>Class Attributes</h3>
 <table>
-<tr><td>FillMask</td></tr><tr><td>ModeFullscreen</td></tr><tr><td>ModeRectangle</td></tr><tr><td>StrokeMask</td></tr>
+<tr><td>Ellipse</td></tr><tr><td>FillMask</td></tr><tr><td>Rectangle</td></tr><tr><td>StrokeMask</td></tr>
 </table>
 <h3>Class Methods</h3>
 <table>
@@ -116,17 +116,14 @@
 </table>
 <a NAME="SnapshotRegionGrabber.__init__" ID="SnapshotRegionGrabber.__init__"></a>
 <h4>SnapshotRegionGrabber (Constructor)</h4>
-<b>SnapshotRegionGrabber</b>(<i>mode, delay</i>)
+<b>SnapshotRegionGrabber</b>(<i>mode=Rectangle</i>)
 <p>
         Constructor
 </p><dl>
 <dt><i>mode</i></dt>
 <dd>
-snapshot mode (SnapshotRegionGrabber.ModeFullscreen,
-            SnapshotRegionGrabber.ModeRectangle)
-</dd><dt><i>delay</i></dt>
-<dd>
-delay in seconds before taking the snapshot (int)
+region grabber mode (SnapshotRegionGrabber.Rectangle or
+            SnapshotRegionGrabber.Ellipse)
 </dd>
 </dl><a NAME="SnapshotRegionGrabber.__grabRect" ID="SnapshotRegionGrabber.__grabRect"></a>
 <h4>SnapshotRegionGrabber.__grabRect</h4>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Documentation/Source/eric5.Snapshot.SnapshotTimer.html	Mon Apr 09 17:02:31 2012 +0200
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
+'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
+<html><head>
+<title>eric5.Snapshot.SnapshotTimer</title>
+<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>eric5.Snapshot.SnapshotTimer</h1>
+<p>
+Module implementing the snapshot timer widget.
+</p>
+<h3>Global Attributes</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<h3>Classes</h3>
+<table>
+<tr>
+<td><a href="#SnapshotTimer">SnapshotTimer</a></td>
+<td>Class implementing the snapshot timer widget.</td>
+</tr>
+</table>
+<h3>Functions</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<hr /><hr />
+<a NAME="SnapshotTimer" ID="SnapshotTimer"></a>
+<h2>SnapshotTimer</h2>
+<p>
+    Class implementing the snapshot timer widget.
+</p><h3>Signals</h3>
+<dl>
+<dt>timeout()</dt>
+<dd>
+emitted after the timer timed out
+</dd>
+</dl>
+<h3>Derived from</h3>
+QWidget
+<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="#SnapshotTimer.__init__">SnapshotTimer</a></td>
+<td>Constructor</td>
+</tr><tr>
+<td><a href="#SnapshotTimer.__bell">__bell</a></td>
+<td>Private slot handling timer timeouts.</td>
+</tr><tr>
+<td><a href="#SnapshotTimer.enterEvent">enterEvent</a></td>
+<td>Protected method handling the mouse cursor entering the widget.</td>
+</tr><tr>
+<td><a href="#SnapshotTimer.paintEvent">paintEvent</a></td>
+<td>Protected method handling paint events.</td>
+</tr><tr>
+<td><a href="#SnapshotTimer.start">start</a></td>
+<td>Public method to start the timer.</td>
+</tr><tr>
+<td><a href="#SnapshotTimer.stop">stop</a></td>
+<td>Public method to stop the timer.</td>
+</tr>
+</table>
+<h3>Static Methods</h3>
+<table>
+<tr><td>None</td></tr>
+</table>
+<a NAME="SnapshotTimer.__init__" ID="SnapshotTimer.__init__"></a>
+<h4>SnapshotTimer (Constructor)</h4>
+<b>SnapshotTimer</b>(<i></i>)
+<p>
+        Constructor
+</p><a NAME="SnapshotTimer.__bell" ID="SnapshotTimer.__bell"></a>
+<h4>SnapshotTimer.__bell</h4>
+<b>__bell</b>(<i></i>)
+<p>
+        Private slot handling timer timeouts.
+</p><a NAME="SnapshotTimer.enterEvent" ID="SnapshotTimer.enterEvent"></a>
+<h4>SnapshotTimer.enterEvent</h4>
+<b>enterEvent</b>(<i>evt</i>)
+<p>
+        Protected method handling the mouse cursor entering the widget.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+enter event (QEvent)
+</dd>
+</dl><a NAME="SnapshotTimer.paintEvent" ID="SnapshotTimer.paintEvent"></a>
+<h4>SnapshotTimer.paintEvent</h4>
+<b>paintEvent</b>(<i>evt</i>)
+<p>
+        Protected method handling paint events.
+</p><dl>
+<dt><i>evt</i></dt>
+<dd>
+paint event (QPaintEvent)
+</dd>
+</dl><a NAME="SnapshotTimer.start" ID="SnapshotTimer.start"></a>
+<h4>SnapshotTimer.start</h4>
+<b>start</b>(<i>seconds</i>)
+<p>
+        Public method to start the timer.
+</p><dl>
+<dt><i>seconds</i></dt>
+<dd>
+timeout value (integer)
+</dd>
+</dl><a NAME="SnapshotTimer.stop" ID="SnapshotTimer.stop"></a>
+<h4>SnapshotTimer.stop</h4>
+<b>stop</b>(<i></i>)
+<p>
+        Public method to stop the timer.
+</p>
+<div align="right"><a href="#top">Up</a></div>
+<hr />
+</body></html>
\ No newline at end of file
--- a/Documentation/Source/index-eric5.Snapshot.html	Sun Apr 08 12:45:44 2012 +0200
+++ b/Documentation/Source/index-eric5.Snapshot.html	Mon Apr 09 17:02:31 2012 +0200
@@ -32,8 +32,17 @@
 <td><a href="eric5.Snapshot.SnapWidget.html">SnapWidget</a></td>
 <td>Module implementing the snapshot widget.</td>
 </tr><tr>
+<td><a href="eric5.Snapshot.SnapshotFreehandGrabber.html">SnapshotFreehandGrabber</a></td>
+<td>Module implementing a grabber widget for a freehand snapshot region.</td>
+</tr><tr>
+<td><a href="eric5.Snapshot.SnapshotPreview.html">SnapshotPreview</a></td>
+<td>Module implementing the snapshot preview label.</td>
+</tr><tr>
 <td><a href="eric5.Snapshot.SnapshotRegionGrabber.html">SnapshotRegionGrabber</a></td>
-<td>Module implementing the snapshot region grabber widget.</td>
+<td>Module implementing a grabber widget for a rectangular snapshot region.</td>
+</tr><tr>
+<td><a href="eric5.Snapshot.SnapshotTimer.html">SnapshotTimer</a></td>
+<td>Module implementing the snapshot timer widget.</td>
 </tr>
 </table>
 </body></html>
\ No newline at end of file
--- a/Snapshot/SnapWidget.py	Sun Apr 08 12:45:44 2012 +0200
+++ b/Snapshot/SnapWidget.py	Mon Apr 09 17:02:31 2012 +0200
@@ -7,14 +7,24 @@
 Module implementing the snapshot widget.
 """
 
-from PyQt4.QtCore import pyqtSlot, QFile, QFileInfo
-from PyQt4.QtGui import QWidget, QImageWriter, QApplication
+#
+# SnapWidget and it's associated modules are PyQt4 ports of Ksnapshot.
+#
+
+import os
+
+from PyQt4.QtCore import pyqtSlot, QFile, QFileInfo, QTimer, QPoint, QMimeData, Qt, \
+    QEvent, QRegExp
+from PyQt4.QtGui import QWidget, QImageWriter, QApplication, QPixmap, QCursor, QDrag, \
+    QShortcut, QKeySequence, QDesktopServices
 
 from E5Gui import E5FileDialog, E5MessageBox
 
 from .Ui_SnapWidget import Ui_SnapWidget
 
 from .SnapshotRegionGrabber import SnapshotRegionGrabber
+from .SnapshotFreehandGrabber import SnapshotFreehandGrabber
+from .SnapshotTimer import SnapshotTimer
 
 import UI.PixmapCache
 import Preferences
@@ -24,6 +34,12 @@
     """
     Class implementing the snapshot widget.
     """
+    ModeFullscreen = 0
+    ModeScreen = 1
+    ModeRectangle = 2
+    ModeFreehand = 3
+    ModeEllipse = 4
+    
     def __init__(self, parent=None):
         """
         Constructor
@@ -39,19 +55,53 @@
         self.setWindowIcon(UI.PixmapCache.getIcon("ericSnap.png"))
         
         self.modeCombo.addItem(self.trUtf8("Fullscreen"),
-                               SnapshotRegionGrabber.ModeFullscreen)
+                               SnapWidget.ModeFullscreen)
         self.modeCombo.addItem(self.trUtf8("Rectangular Selection"),
-                               SnapshotRegionGrabber.ModeRectangle)
-        mode = int(Preferences.Prefs.settings.value("Snapshot/Mode", 0))
-        index = self.modeCombo.findData(mode)
+                               SnapWidget.ModeRectangle)
+        self.modeCombo.addItem(self.trUtf8("Ellipical Selection"),
+                               SnapWidget.ModeEllipse)
+        self.modeCombo.addItem(self.trUtf8("Freehand Selection"),
+                               SnapWidget.ModeFreehand)
+        if QApplication.desktop().numScreens() > 1:
+            self.modeCombo.addItem(self.trUtf8("Current Screen"),
+                                   SnapWidget.ModeScreen)
+        self.__mode = int(Preferences.Prefs.settings.value("Snapshot/Mode", 0))
+        index = self.modeCombo.findData(self.__mode)
+        if index == -1:
+            index = 0
         self.modeCombo.setCurrentIndex(index)
         
-        self.delaySpin.setValue(int(Preferences.Prefs.settings.value(
-            "Snapshot/Delay", 0)))
+        self.__delay = int(Preferences.Prefs.settings.value( "Snapshot/Delay", 0))
+        self.delaySpin.setValue(self.__delay)
+        
+        self.__filename = Preferences.Prefs.settings.value( "Snapshot/Filename",
+            os.path.join(
+                QDesktopServices.storageLocation(QDesktopServices.PicturesLocation),
+                self.trUtf8("snapshot") + "1.png"))
         
         self.__grabber = None
+        self.__snapshot = QPixmap()
+        self.__savedPosition = QPoint()
+        self.__modified = False
+        
+        self.__grabberWidget = QWidget(None, Qt.X11BypassWindowManagerHint)
+        self.__grabberWidget.move(-10000, -10000)
+        self.__grabberWidget.installEventFilter(self);
         
         self.__initFileFilters()
+        
+        self.__initShortcuts()
+        
+        self.preview.startDrag.connect(self.__dragSnapshot)
+        
+        self.__grabTimer = SnapshotTimer()
+        self.__grabTimer.timeout.connect(self.__grabTimerTimeout)
+        self.__updateTimer = QTimer()
+        self.__updateTimer.setSingleShot(True)
+        self.__updateTimer.timeout.connect(self.__updatePreview)
+        
+        self.__updateCaption()
+        self.takeButton.setFocus()
     
     def __initFileFilters(self):
         """
@@ -88,26 +138,81 @@
         
         self.__defaultFilter = filters['png']
     
-    @pyqtSlot(bool)
-    def on_saveButton_clicked(self, checked):
+    def __initShortcuts(self):
+        """
+        Private method to initialize the keyboard shortcuts.
+        """
+        self.__quitShortcut = QShortcut(QKeySequence(QKeySequence.Quit), self, self.close)
+        
+        self.__copyShortcut = QShortcut(QKeySequence(QKeySequence.Copy), self,
+            self.copyButton.animateClick)
+        
+        self.__quickSaveShortcut = QShortcut(QKeySequence(Qt.Key_Q), self,
+            self.__quickSave)
+        
+        self.__save1Shortcut = QShortcut(QKeySequence(QKeySequence.Save), self,
+            self.saveButton.animateClick)
+        self.__save2Shortcut = QShortcut(QKeySequence(Qt.Key_S), self,
+            self.saveButton.animateClick)
+        
+        self.__grab1Shortcut = QShortcut(QKeySequence(QKeySequence.New), self,
+            self.takeButton.animateClick)
+        self.__grab2Shortcut = QShortcut(QKeySequence(Qt.Key_N), self,
+            self.takeButton.animateClick)
+        self.__grab3Shortcut = QShortcut(QKeySequence(Qt.Key_Space), self,
+            self.takeButton.animateClick)
+    
+    def __quickSave(self):
+        """
+        Private slot to save the snapshot bypassing the file selection dialog.
+        """
+        if not self.__snapshot.isNull():
+            while os.path.exists(self.__filename):
+                self.__autoIncFilename()
+            
+            if self.__saveImage(self.__filename):
+                self.__modified = False
+                self.__autoIncFilename()
+                self.__updateCaption()
+    
+    @pyqtSlot()
+    def on_saveButton_clicked(self):
         """
         Private slot to save the snapshot.
         """
-        fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
-            self,
-            self.trUtf8("Save Snapshot"),
-            "",
-            self.__outputFilter,
-            self.__defaultFilter,
-            E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
-        if not fileName:
-            return
+        if not self.__snapshot.isNull():
+            while os.path.exists(self.__filename):
+                self.__autoIncFilename()
+            
+            fileName, selectedFilter = E5FileDialog.getSaveFileNameAndFilter(
+                self,
+                self.trUtf8("Save Snapshot"),
+                self.__filename,
+                self.__outputFilter,
+                self.__defaultFilter,
+                E5FileDialog.Options(E5FileDialog.DontConfirmOverwrite))
+            if not fileName:
+                return
+            
+            ext = QFileInfo(fileName).suffix()
+            if not ext:
+                ex = selectedFilter.split("(*")[1].split(")")[0]
+                if ex:
+                    fileName += ex
+            
+            if self.__saveImage(fileName):
+                self.__modified = False
+                self.__filename = fileName
+                self.__autoIncFilename()
+                self.__updateCaption()
+    
+    def __saveImage(self, fileName):
+        """
+        Private method to save the snapshot.
         
-        ext = QFileInfo(fileName).suffix()
-        if not ext:
-            ex = selectedFilter.split("(*")[1].split(")")[0]
-            if ex:
-                fileName += ex
+        @param fileName name of the file to save to (string)
+        @return flag indicating success (boolean)
+        """
         if QFileInfo(fileName).exists():
             res = E5MessageBox.yesNo(self,
                 self.trUtf8("Save Snapshot"),
@@ -115,39 +220,160 @@
                             " Overwrite it?</p>").format(fileName),
                 icon=E5MessageBox.Warning)
             if not res:
-                return
+                return False
         
         file = QFile(fileName)
         if not file.open(QFile.WriteOnly):
             E5MessageBox.warning(self, self.trUtf8("Save Snapshot"),
                                 self.trUtf8("Cannot write file '{0}:\n{1}.")\
                                     .format(fileName, file.errorString()))
-            return
+            return False
         
-        res = self.preview.pixmap().save(file)
+        ok = self.__snapshot.save(file)
         file.close()
         
-        if not res:
+        if not ok:
             E5MessageBox.warning(self, self.trUtf8("Save Snapshot"),
                                 self.trUtf8("Cannot write file '{0}:\n{1}.")\
                                     .format(fileName, file.errorString()))
+        
+        return ok
     
-    @pyqtSlot(bool)
-    def on_takeButton_clicked(self, checked):
+    def __autoIncFilename(self):
+        """
+        Private method to auto-increment the file name.
+        """
+        # Extract the file name
+        name = os.path.basename(self.__filename)
+        
+        # If the name contains a number, then increment it.
+        numSearch = QRegExp("(^|[^\\d])(\\d+)")     # We want to match as far left as
+                                                    # possible, and when the number is
+                                                    # at the start of the name.
+        
+        # Does it have a number?
+        start = numSearch.lastIndexIn(name)
+        if start != -1:
+            # It has a number, increment it.
+            start = numSearch.pos(2)    # Only the second group is of interest.
+            numAsStr = numSearch.capturedTexts()[2]
+            number = "{0:0{width}d}".format(int(numAsStr) + 1, width=len(numAsStr))
+            name = name[:start] + number + name[start+len(numAsStr):]
+        else:
+            # no number
+            start = name.rfind('.')
+            if start != -1:
+                # has a '.' somewhere, e.g. it has an extension
+                name = name [:start] + '1' + name[start:]
+            else:
+                # no extension, just tack it on to the end
+                name += '1'
+        
+        self.__filename = os.path.join(os.path.dirname(self.__filename), name)
+        self.__updateCaption()
+    
+    @pyqtSlot()
+    def on_takeButton_clicked(self):
         """
         Private slot to take a snapshot.
         """
-        mode = self.modeCombo.itemData(self.modeCombo.currentIndex())
-        delay = self.delaySpin.value()
+        self.__mode = self.modeCombo.itemData(self.modeCombo.currentIndex())
+        self.__delay = self.delaySpin.value()
         
-        Preferences.Prefs.settings.setValue("Snapshot/Delay", delay)
-        Preferences.Prefs.settings.setValue("Snapshot/Mode", mode)
-        
+        self.__savedPosition = self.pos()
         self.hide()
         
-        self.__grabber = SnapshotRegionGrabber(mode, delay)
+        if self.__delay:
+            self.__grabTimer.start(self.__delay)
+        else:
+            QTimer.singleShot(200, self.__startUndelayedGrab)
+    
+    def __grabTimerTimeout(self):
+        """
+        Private slot to perform a delayed grab operation.
+        """
+        if self.__mode == SnapWidget.ModeRectangle:
+            self.__grabRectangle()
+        elif self.__mode == SnapWidget.ModeEllipse:
+            self.__grabEllipse()
+        elif self.__mode == SnapWidget.ModeFreehand:
+            self.__grabFreehand()
+        else:
+            self.__performGrab()
+    
+    def __startUndelayedGrab(self):
+        """
+        Private slot to perform an undelayed grab operation.
+        """
+        if self.__mode == SnapWidget.ModeRectangle:
+            self.__grabRectangle()
+        elif self.__mode == SnapWidget.ModeEllipse:
+            self.__grabEllipse()
+        elif self.__mode == SnapWidget.ModeFreehand:
+            self.__grabFreehand()
+        else:
+            self.__grabberWidget.show()
+            self.__grabberWidget.grabMouse(Qt.CrossCursor)
+    
+    def __grabRectangle(self):
+        """
+        Private method to grab a rectangular screen region.
+        """
+        self.__grabber = SnapshotRegionGrabber(mode=SnapshotRegionGrabber.Rectangle)
+        self.__grabber.grabbed.connect(self.__captured)
+    
+    def __grabEllipse(self):
+        """
+        Private method to grab an elliptical screen region.
+        """
+        self.__grabber = SnapshotRegionGrabber(mode=SnapshotRegionGrabber.Ellipse)
         self.__grabber.grabbed.connect(self.__captured)
     
+    def __grabFreehand(self):
+        """
+        Private method to grab a non-rectangular screen region.
+        """
+        self.__grabber = SnapshotFreehandGrabber()
+        self.__grabber.grabbed.connect(self.__captured)
+    
+    def __performGrab(self):
+        """
+        Private method to perform a screen grab other than a selected region.
+        """
+        self.__grabberWidget.releaseMouse()
+        self.__grabberWidget.hide()
+        self.__grabTimer.stop()
+        
+        if self.__mode == SnapWidget.ModeFullscreen:
+            self.__snapshot = QPixmap.grabWindow(QApplication.desktop().winId())
+        elif self.__mode == SnapWidget.ModeScreen:
+            desktop = QApplication.desktop()
+            screenId = desktop.screenNumber(QCursor.pos())
+            geom = desktop.screenGeometry(screenId)
+            x = geom.x()
+            y = geom.y()
+            self.__snapshot = QPixmap.grabWindow(
+                desktop.winId(), x, y, geom.width(), geom.height())
+        else:
+            self.__snapshot = QPixmap()
+        
+        self.__redisplay()
+        self.__modified = True
+        self.__updateCaption()
+    
+    def __redisplay(self):
+        """
+        Private method to redisplay the window.
+        """
+        self.__updatePreview()
+        QApplication.restoreOverrideCursor()
+        if not self.__savedPosition.isNull():
+            self.move(self.__savedPosition)
+        self.show()
+        
+        self.saveButton.setEnabled(not self.__snapshot.isNull())
+        self.copyButton.setEnabled(not self.__snapshot.isNull())
+    
     @pyqtSlot()
     def on_copyButton_clicked(self):
         """
@@ -162,10 +388,92 @@
         @param pixmap pixmap of the snapshot (QPixmap)
         """
         self.__grabber.close()
-        self.preview.setPixmap(pixmap)
+        self.__snapshot = QPixmap(pixmap)
         
+        self.__grabber.grabbed.disconnect(self.__captured)
         self.__grabber = None
         
-        self.saveButton.setEnabled(True)
-        self.copyButton.setEnabled(True)
-        self.show()
+        self.__redisplay()
+        self.__modified = True
+        self.__updateCaption()
+    
+    def __updatePreview(self):
+        """
+        Private slot to update the preview picture.
+        """
+        self.preview.setToolTip(
+            self.trUtf8("Preview of the snapshot image ({0:n} x {1:n})").format(
+            self.__snapshot.width(), self.__snapshot.height()))
+        self.preview.setPreview(self.__snapshot)
+        self.preview.adjustSize()
+    
+    def resizeEvent(self, evt):
+        """
+        Protected method handling a resizing of the window.
+        
+        @param evt resize event (QResizeEvent)
+        """
+        self.__updateTimer.start(200)
+    
+    def __dragSnapshot(self):
+        """
+        Private slot handling the dragging of the preview picture.
+        """
+        drag = QDrag(self)
+        mimeData = QMimeData()
+        mimeData.setImageData(self.__snapshot)
+        drag.setMimeData(mimeData)
+        drag.setPixmap(self.preview.pixmap())
+        drag.exec_(Qt.CopyAction)
+    
+    def eventFilter(self, obj, evt):
+        """
+        Public method to handle event for other objects.
+        
+        @param obj reference to the object (QObject)
+        @param evt reference to the event (QEvent)
+        @return flag indicating that the event should be filtered out (boolean)
+        """
+        if obj == self.__grabberWidget and evt.type() == QEvent.MouseButtonPress:
+            if QWidget.mouseGrabber() != self.__grabberWidget:
+                return False
+            if evt.button() == Qt.LeftButton:
+                self.__performGrab()
+        
+        return False
+    
+    def closeEvent(self, evt):
+        """
+        Protected method handling the close event.
+        
+        @param evt close event (QCloseEvent)
+        """
+        if self.__modified:
+            res = E5MessageBox.question(self,
+                self.trUtf8("eric5 Snapshot"),
+                self.trUtf8("""The application contains an unsaved snapshot."""),
+                E5MessageBox.StandardButtons(
+                    E5MessageBox.Abort | \
+                    E5MessageBox.Discard | \
+                    E5MessageBox.Save))
+            if res == E5MessageBox.Abort:
+                evt.ignore()
+                return
+            elif res == E5MessageBox.Save:
+                self.on_saveButton_clicked()
+        
+        Preferences.Prefs.settings.setValue("Snapshot/Delay", self.delaySpin.value())
+        Preferences.Prefs.settings.setValue("Snapshot/Mode",
+            self.modeCombo.itemData(self.modeCombo.currentIndex()))
+        Preferences.Prefs.settings.setValue("Snapshot/Filename", self.__filename)
+        Preferences.Prefs.settings.sync()
+    
+    def __updateCaption(self):
+        """
+        Private method to update the window caption.
+        """
+        self.setWindowTitle("{0}[*] - {1}".format(
+            os.path.basename(self.__filename),
+            self.trUtf8("eric5 Snapshot")))
+        self.setWindowModified(self.__modified)
+        self.pathNameEdit.setText(os.path.dirname(self.__filename))
--- a/Snapshot/SnapWidget.ui	Sun Apr 08 12:45:44 2012 +0200
+++ b/Snapshot/SnapWidget.ui	Mon Apr 09 17:02:31 2012 +0200
@@ -21,82 +21,23 @@
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
-    <layout class="QGridLayout" name="gridLayout">
-     <item row="0" column="1">
-      <spacer name="verticalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>28</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item row="1" column="0">
-      <spacer name="horizontalSpacer_2">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item row="1" column="1">
-      <widget class="QLabel" name="preview">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Preferred" vsizetype="Preferred">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="minimumSize">
-        <size>
-         <width>230</width>
-         <height>130</height>
-        </size>
-       </property>
-       <property name="scaledContents">
-        <bool>true</bool>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="2">
-      <spacer name="horizontalSpacer_3">
-       <property name="orientation">
-        <enum>Qt::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-     <item row="2" column="1">
-      <spacer name="verticalSpacer">
-       <property name="orientation">
-        <enum>Qt::Vertical</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>20</width>
-         <height>40</height>
-        </size>
-       </property>
-      </spacer>
-     </item>
-    </layout>
+    <widget class="SnapshotPreview" name="preview">
+     <property name="sizePolicy">
+      <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
+       <horstretch>0</horstretch>
+       <verstretch>0</verstretch>
+      </sizepolicy>
+     </property>
+     <property name="minimumSize">
+      <size>
+       <width>230</width>
+       <height>130</height>
+      </size>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignCenter</set>
+     </property>
+    </widget>
    </item>
    <item>
     <widget class="Line" name="line">
@@ -144,8 +85,11 @@
          <property name="alignment">
           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
          </property>
+         <property name="specialValueText">
+          <string> No delay</string>
+         </property>
          <property name="suffix">
-          <string> Seconds</string>
+          <string> s</string>
          </property>
         </widget>
        </item>
@@ -167,6 +111,34 @@
     </layout>
    </item>
    <item>
+    <widget class="Line" name="line_3">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item>
+    <layout class="QHBoxLayout" name="horizontalLayout_3">
+     <item>
+      <widget class="QLabel" name="label_3">
+       <property name="text">
+        <string>Path Name:</string>
+       </property>
+      </widget>
+     </item>
+     <item>
+      <widget class="QLineEdit" name="pathNameEdit">
+       <property name="toolTip">
+        <string>Shows the name of the directory used for saving</string>
+       </property>
+       <property name="readOnly">
+        <bool>true</bool>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item>
     <widget class="Line" name="line_2">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
@@ -241,12 +213,20 @@
    </item>
   </layout>
  </widget>
+ <customwidgets>
+  <customwidget>
+   <class>SnapshotPreview</class>
+   <extends>QLabel</extends>
+   <header>.SnapshotPreview.h</header>
+  </customwidget>
+ </customwidgets>
  <tabstops>
   <tabstop>modeCombo</tabstop>
   <tabstop>delaySpin</tabstop>
   <tabstop>takeButton</tabstop>
   <tabstop>saveButton</tabstop>
   <tabstop>copyButton</tabstop>
+  <tabstop>pathNameEdit</tabstop>
  </tabstops>
  <resources/>
  <connections/>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Snapshot/SnapshotFreehandGrabber.py	Mon Apr 09 17:02:31 2012 +0200
@@ -0,0 +1,316 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing a grabber widget for a freehand snapshot region.
+"""
+
+from PyQt4.QtCore import pyqtSignal, Qt, QRect, QPoint, QTimer
+from PyQt4.QtGui import QWidget, QPixmap, QColor, QRegion, QApplication, QPainter, \
+    QPalette, QToolTip, QPolygon, QPen, QBrush, QPaintEngine
+
+
+def drawPolygon(painter, polygon, outline, fill=QColor()):
+    """
+    Module function to draw a polygon with the given parameters.
+    
+    @param painter reference to the painter to be used (QPainter)
+    @param polygon polygon to be drawn (QPolygon)
+    @param outline color of the outline (QColor)
+    @param fill fill color (QColor)
+    """
+    clip = QRegion(polygon)
+    clip = clip - QRegion(polygon)
+    pen = QPen(outline, 1, Qt.SolidLine, Qt.SquareCap, Qt.BevelJoin)
+    
+    painter.save()
+    painter.setClipRegion(clip)
+    painter.setPen(pen)
+    painter.drawPolygon(QPolygon(polygon))
+    if fill.isValid():
+        painter.setClipping(False)
+        painter.setBrush(fill)
+        painter.drawPolygon(QPolygon(polygon))
+    painter.restore()
+
+
+class SnapshotFreehandGrabber(QWidget):
+    """
+    Class implementing a grabber widget for a freehand snapshot region.
+    
+    @signal grabbed(QPixmap) emitted after the region was grabbed
+    """
+    grabbed = pyqtSignal(QPixmap)
+    
+    def __init__(self):
+        """
+        Constructor
+        """
+        super().__init__(None,
+            Qt.X11BypassWindowManagerHint | Qt.WindowStaysOnTopHint | 
+            Qt.FramelessWindowHint | Qt.Tool)
+        
+        self.__selection = QPolygon()
+        self.__mouseDown = False
+        self.__newSelection = False
+        self.__handleSize = 10
+        self.__showHelp = True
+        self.__grabbing = False
+        self.__dragStartPoint = QPoint()
+        self.__selectionBeforeDrag = QPolygon()
+        
+        self.__helpTextRect = QRect()
+        self.__helpText = self.trUtf8(
+            "Select a region using the mouse. To take the snapshot, press the Enter key"
+            " or double click. Press Esc to quit.")
+        
+        self.__pixmap = QPixmap()
+        self.__pBefore = QPoint()
+        
+        self.setMouseTracking(True)
+        
+        QTimer.singleShot(200, self.__initialize)
+    
+    def __initialize(self):
+        """
+        Private slot to initialize the rest of the widget.
+        """
+        self.__pixmap = QPixmap.grabWindow(QApplication.desktop().winId())
+        self.resize(self.__pixmap.size())
+        self.move(0, 0)
+        self.setCursor(Qt.CrossCursor)
+        self.show()
+
+        self.grabMouse()
+        self.grabKeyboard()
+    
+    def paintEvent(self, evt):
+        """
+        Protected method handling paint events.
+        
+        @param evt paint event (QPaintEvent)
+        """
+        if self.__grabbing:     # grabWindow() should just get the background
+            return
+        
+        painter = QPainter(self)
+        pal = QPalette(QToolTip.palette())
+        font = QToolTip.font()
+        
+        handleColor = pal.color(QPalette.Active, QPalette.Highlight)
+        handleColor.setAlpha(160)
+        overlayColor = QColor(0, 0, 0, 160)
+        textColor = pal.color(QPalette.Active, QPalette.Text)
+        textBackgroundColor = pal.color(QPalette.Active, QPalette.Base)
+        painter.drawPixmap(0, 0, self.__pixmap)
+        painter.setFont(font)
+        
+        pol = QPolygon(self.__selection)
+        if not self.__selection.boundingRect().isNull():
+            # Draw outline around selection.
+            # Important: the 1px-wide outline is *also* part of the captured free-region
+            pen = QPen(handleColor, 1, Qt.SolidLine, Qt.SquareCap, Qt.BevelJoin)
+            painter.setPen(pen)
+            painter.drawPolygon(pol)
+            
+            # Draw the grey area around the selection.
+            grey = QRegion(self.rect())
+            grey = grey - QRegion(pol)
+            painter.setClipRegion(grey)
+            painter.setPen(Qt.NoPen)
+            painter.setBrush(overlayColor)
+            painter.drawRect(self.rect())
+            painter.setClipRect(self.rect())
+            drawPolygon(painter, pol, handleColor)
+        
+        if self.__showHelp:
+            painter.setPen(textColor)
+            painter.setBrush(textBackgroundColor)
+            self.__helpTextRect = painter.boundingRect(self.rect().adjusted(2, 2, -2, -2),
+                Qt.TextWordWrap, self.__helpText)
+            self.__helpTextRect.adjust(-2, -2, 4, 2)
+            drawPolygon(painter, self.__helpTextRect, textColor, textBackgroundColor)
+            painter.drawText(self.__helpTextRect.adjusted(3, 3, -3, -3),
+                Qt.TextWordWrap, self.__helpText)
+        
+        if self.__selection.isEmpty():
+            return
+        
+        # The grabbed region is everything which is covered by the drawn
+        # rectangles (border included). This means that there is no 0px
+        # selection, since a 0px wide rectangle will always be drawn as a line.
+        boundingRect = self.__selection.boundingRect()
+        txt = "{0:n}, {1:n} ({2:n} x {3:n})".format(boundingRect.x(), boundingRect.y(),
+            boundingRect.width(), boundingRect.height())
+        textRect = painter.boundingRect(self.rect(), Qt.AlignLeft, txt)
+        boundingRect = textRect.adjusted(-4, 0, 0, 0)
+        
+        polBoundingRect = pol.boundingRect()
+        if textRect.width() < polBoundingRect.width() - 2 * self.__handleSize and \
+           textRect.height() < polBoundingRect.height() - 2 * self.__handleSize and \
+           polBoundingRect.width() > 100 and \
+           polBoundingRect.height() > 100:
+            # center, unsuitable for small selections
+            boundingRect.moveCenter(polBoundingRect.center())
+            textRect.moveCenter(polBoundingRect.center())
+        elif polBoundingRect.y() - 3 > textRect.height() and \
+             polBoundingRect.x() + textRect.width() < self.rect().width():
+            # on top, left aligned
+            boundingRect.moveBottomLeft(
+                QPoint(polBoundingRect.x(), polBoundingRect.y() - 3))
+            textRect.moveBottomLeft(
+                QPoint(polBoundingRect.x() + 2, polBoundingRect.y() - 3))
+        elif polBoundingRect.x() - 3 > textRect.width():
+            # left, top aligned
+            boundingRect.moveTopRight(
+                QPoint(polBoundingRect.x() - 3, polBoundingRect.y()))
+            textRect.moveTopRight(
+                QPoint(polBoundingRect.x() - 5, polBoundingRect.y()))
+        elif polBoundingRect.bottom() + 3 + textRect.height() < self.rect().bottom() and \
+             polBoundingRect.right() > textRect.width():
+            # at bottom, right aligned
+            boundingRect.moveTopRight(
+                QPoint(polBoundingRect.right(), polBoundingRect.bottom() + 3))
+            textRect.moveTopRight(
+                QPoint(polBoundingRect.right() - 2, polBoundingRect.bottom() + 3))
+        elif polBoundingRect.right() + textRect.width() + 3 < self.rect().width():
+            # right, bottom aligned
+            boundingRect.moveBottomLeft(
+                QPoint(polBoundingRect.right() + 3, polBoundingRect.bottom()))
+            textRect.moveBottomLeft(
+                QPoint(polBoundingRect.right() + 5, polBoundingRect.bottom()))
+        
+        # If the above didn't catch it, you are running on a very tiny screen...
+        drawPolygon(painter, boundingRect, textColor, textBackgroundColor)
+        painter.drawText(textRect, Qt.AlignHCenter, txt)
+        
+        if (polBoundingRect.height() > self.__handleSize * 2 and \
+            polBoundingRect.width() > self.__handleSize * 2) or \
+           not self.__mouseDown:
+            painter.setBrush(Qt.transparent)
+            painter.setClipRegion(QRegion(pol))
+            painter.drawPolygon(QPolygon(self.rect()))
+    
+    def mousePressEvent(self, evt):
+        """
+        Protected method to handle mouse button presses.
+        
+        @param evt mouse press event (QMouseEvent)
+        """
+        self.__pBefore = evt.pos()
+        
+        self.__showHelp = not self.__helpTextRect.contains(evt.pos())
+        if evt.button() == Qt.LeftButton:
+            self.__mouseDown = True
+            self.__dragStartPoint = evt.pos()
+            self.__selectionBeforeDrag = QPolygon(self.__selection)
+            if not self.__selection.containsPoint(evt.pos(), Qt.WindingFill):
+                self.__newSelection = True
+                self.__selection = QPolygon()
+            else:
+                self.setCursor(Qt.ClosedHandCursor)
+        elif evt.button() == Qt.RightButton:
+            self.__newSelection = False
+            self.__selection = QPolygon()
+            self.setCursor(Qt.CrossCursor)
+        self.update()
+    
+    def mouseMoveEvent(self, evt):
+        """
+        Protected method to handle mouse movements.
+        
+        @param evt mouse move event (QMouseEvent)
+        """
+        shouldShowHelp = not self.__helpTextRect.contains(evt.pos())
+        if shouldShowHelp != self.__showHelp:
+            self.__showHelp = shouldShowHelp
+            self.update()
+        
+        if self.__mouseDown:
+            if self.__newSelection:
+                p = evt.pos()
+                self.__selection.append(p)
+            else:
+                # moving the whole selection
+                p = evt.pos() - self.__pBefore      # Offset
+                self.__pBefore = evt.pos()          # save position for next iteration
+                self.__selection.translate(p)
+            
+            self.update()
+        else:
+            if self.__selection.boundingRect().isEmpty():
+                return
+            
+            if self.__selection.containsPoint(evt.pos(), Qt.WindingFill):
+                self.setCursor(Qt.OpenHandCursor)
+            else:
+                self.setCursor(Qt.CrossCursor)
+    
+    def mouseReleaseEvent(self, evt):
+        """
+        Protected method to handle mouse button releases.
+        
+        @param evt mouse release event (QMouseEvent)
+        """
+        self.__mouseDown = False
+        self.__newSelection = False
+        if self.__selection.containsPoint(evt.pos(), Qt.WindingFill):
+            self.setCursor(Qt.OpenHandCursor)
+        self.update()
+    
+    def mouseDoubleClickEvent(self, evt):
+        """
+        Protected method to handle mouse double clicks.
+        
+        @param evt mouse double click event (QMouseEvent)
+        """
+        self.__grabRegion()
+    
+    def keyPressEvent(self, evt):
+        """
+        Protected method to handle key presses.
+        
+        @param evt key press event (QKeyEvent)
+        """
+        if evt.key() == Qt.Key_Escape:
+            self.grabbed.emit(QPixmap())
+        elif evt.key() in [Qt.Key_Enter, Qt.Key_Return]:
+            self.__grabRegion()
+        else:
+            evt.ignore()
+    
+    def __grabRegion(self):
+        """
+        Private method to grab the selected region (i.e. do the snapshot).
+        """
+        pol = QPolygon(self.__selection)
+        if not pol.isEmpty():
+            self.__grabbing = True
+            
+            xOffset = self.__pixmap.rect().x() - pol.boundingRect().x()
+            yOffset = self.__pixmap.rect().y() - pol.boundingRect().y()
+            translatedPol = pol.translated(xOffset, yOffset)
+            
+            pixmap2 = QPixmap(pol.boundingRect().size())
+            pixmap2.fill(Qt.transparent)
+            
+            pt = QPainter()
+            pt.begin(pixmap2)
+            if pt.paintEngine().hasFeature(QPaintEngine.PorterDuff):
+                pt.setRenderHints(QPainter.Antialiasing | \
+                    QPainter.HighQualityAntialiasing | QPainter.SmoothPixmapTransform,
+                    True)
+                pt.setBrush(Qt.black)
+                pt.setPen(QPen(QBrush(Qt.black), 0.5))
+                pt.drawPolygon(translatedPol)
+                pt.setCompositionMode(QPainter.CompositionMode_SourceIn)
+            else:
+                pt.setClipRegion(QRegion(translatedPol))
+                pt.setCompositionMode(QPainter.CompositionMode_Source)
+            
+            pt.drawPixmap(pixmap2.rect(), self.__pixmap, pol.boundingRect())
+            pt.end()
+            
+            self.grabbed.emit(pixmap2)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Snapshot/SnapshotPreview.py	Mon Apr 09 17:02:31 2012 +0200
@@ -0,0 +1,75 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the snapshot preview label.
+"""
+
+from PyQt4.QtCore import pyqtSignal, QPoint, Qt
+from PyQt4.QtGui import QLabel, QApplication
+
+
+class SnapshotPreview(QLabel):
+    """
+    Class implementing the snapshot preview label.
+    
+    @signal startDrag() emitted to indicate the start of a drag operation
+    """
+    startDrag = pyqtSignal()
+    
+    def __init__(self, parent=None):
+        """
+        Constructor
+        
+        @param parent reference to the parent widget (QWidget)
+        """
+        super().__init__(parent)
+        
+        self.setAlignment(Qt.AlignHCenter | Qt.AlignCenter)
+        self.setCursor(Qt.OpenHandCursor)
+        
+        self.__mouseClickPoint = QPoint(0, 0)
+    
+    def setPreview(self, preview):
+        """
+        Public slot to set the preview picture.
+        
+        @param preview preview picture to be shown (QPixmap)
+        """
+        if not preview.isNull():
+            pixmap = preview.scaled(
+                self.width(), self.height(), Qt.KeepAspectRatio, Qt.SmoothTransformation)
+        else:
+            pixmap = preview
+        self.setPixmap(pixmap)
+    
+    def mousePressEvent(self, evt):
+        """
+        Protected method to handle mouse button presses.
+        
+        @param evt mouse button press event (QMouseEvent)
+        """
+        if evt.button() == Qt.LeftButton:
+            self.__mouseClickPoint = evt.pos()
+    
+    def mouseReleaseEvent(self, evt):
+        """
+        Protected method to handle mouse button releases.
+        
+        @param evt mouse button release event (QMouseEvent)
+        """
+        self.__mouseClickPoint = QPoint(0, 0)
+    
+    def mouseMoveEvent(self, evt):
+        """
+        Protected method to handle mouse moves.
+        
+        @param evt mouse move event (QMouseEvent)
+        """
+        if self.__mouseClickPoint != QPoint(0, 0) and \
+           (evt.pos() - self.__mouseClickPoint).manhattanLength() > \
+                QApplication.startDragDistance():
+            self.__mouseClickPoint = QPoint(0, 0)
+            self.startDrag.emit()
--- a/Snapshot/SnapshotRegionGrabber.py	Sun Apr 08 12:45:44 2012 +0200
+++ b/Snapshot/SnapshotRegionGrabber.py	Mon Apr 09 17:02:31 2012 +0200
@@ -4,12 +4,12 @@
 #
 
 """
-Module implementing the snapshot region grabber widget.
+Module implementing a grabber widget for a rectangular snapshot region.
 """
 
 from PyQt4.QtCore import pyqtSignal, Qt, QRect, QPoint, QTimer
 from PyQt4.QtGui import QWidget, QPixmap, QColor, QRegion, QApplication, QPainter, \
-    QPalette, QToolTip
+    QPalette, QToolTip, QPaintEngine, QPen, QBrush
 
 
 def drawRect(painter, rect, outline, fill=QColor()):
@@ -38,7 +38,7 @@
 
 class SnapshotRegionGrabber(QWidget):
     """
-    Class implementing the snapshot region grabber widget.
+    Class implementing a grabber widget for a rectangular snapshot region.
     
     @signal grabbed(QPixmap) emitted after the region was grabbed
     """
@@ -47,21 +47,22 @@
     StrokeMask = 0
     FillMask = 1
     
-    ModeFullscreen = 0
-    ModeRectangle = 1
+    Rectangle = 0
+    Ellipse = 1
     
-    def __init__(self, mode, delay):
+    def __init__(self, mode=Rectangle):
         """
         Constructor
         
-        @param mode snapshot mode (SnapshotRegionGrabber.ModeFullscreen,
-            SnapshotRegionGrabber.ModeRectangle)
-        @param delay delay in seconds before taking the snapshot (int)
+        @param mode region grabber mode (SnapshotRegionGrabber.Rectangle or
+            SnapshotRegionGrabber.Ellipse)
         """
         super().__init__(None,
             Qt.X11BypassWindowManagerHint | Qt.WindowStaysOnTopHint | 
             Qt.FramelessWindowHint | Qt.Tool)
         
+        assert mode in [SnapshotRegionGrabber.Rectangle,
+                        SnapshotRegionGrabber.Ellipse]
         self.__mode = mode
         
         self.__selection = QRect()
@@ -98,27 +99,20 @@
         
         self.setMouseTracking(True)
         
-        if delay == 0:
-            delay = 200
-        else:
-            delay = delay * 1000
-        QTimer.singleShot(delay, self.__initialize)
+        QTimer.singleShot(200, self.__initialize)
     
     def __initialize(self):
         """
         Private slot to initialize the rest of the widget.
         """
         self.__pixmap = QPixmap.grabWindow(QApplication.desktop().winId())
-        if self.__mode == SnapshotRegionGrabber.ModeFullscreen:
-            self.grabbed.emit(self.__pixmap.copy())
-        else:
-            self.resize(self.__pixmap.size())
-            self.move(0, 0)
-            self.setCursor(Qt.CrossCursor)
-            self.show()
+        self.resize(self.__pixmap.size())
+        self.move(0, 0)
+        self.setCursor(Qt.CrossCursor)
+        self.show()
 
-            self.grabMouse()
-            self.grabKeyboard()
+        self.grabMouse()
+        self.grabKeyboard()
     
     def paintEvent(self, evt):
         """
@@ -144,12 +138,16 @@
         r = QRect(self.__selection)
         if not self.__selection.isNull():
             grey = QRegion(self.rect())
-            grey = grey.subtracted(QRegion(r))
+            if self.__mode == SnapshotRegionGrabber.Ellipse:
+                reg = QRegion(r, QRegion.Ellipse)
+            else:
+                reg = QRegion(r)
+            grey = grey.subtracted(reg)
             painter.setClipRegion(grey)
             painter.setPen(Qt.NoPen)
             painter.setBrush(overlayColor)
             painter.drawRect(self.rect())
-            painter.setClipRegion(QRegion(self.rect()))
+            painter.setClipRect(self.rect())
             drawRect(painter, r, handleColor)
         
         if self.__showHelp:
@@ -168,7 +166,7 @@
         # The grabbed region is everything which is covered by the drawn
         # rectangles (border included). This means that there is no 0px
         # selection, since a 0px wide rectangle will always be drawn as a line.
-        txt = "{0}, {1} ({2}x{3})".format(
+        txt = "{0:n}, {1:n} ({2:n} x {3:n})".format(
             self.__selection.x(), self.__selection.y(),
             self.__selection.width(), self.__selection.height())
         textRect = painter.boundingRect(self.rect(), Qt.AlignLeft, txt)
@@ -451,7 +449,38 @@
         """
         Private method to grab the selected rectangle (i.e. do the snapshot).
         """
-        r = QRect(self.__selection)
-        if not r.isNull() and r.isValid():
-            self.__grabbing = True
-            self.grabbed.emit(self.__pixmap.copy(r))
+        if self.__mode == SnapshotRegionGrabber.Ellipse:
+            ell = QRegion(self.__selection, QRegion.Ellipse)
+            if not ell.isEmpty():
+                self.__grabbing = True
+                
+                xOffset = self.__pixmap.rect().x() - ell.boundingRect().x()
+                yOffset = self.__pixmap.rect().y() - ell.boundingRect().y()
+                translatedEll = ell.translated(xOffset, yOffset)
+                
+                pixmap2 = QPixmap(ell.boundingRect().size())
+                pixmap2.fill(Qt.transparent)
+                
+                pt = QPainter()
+                pt.begin(pixmap2)
+                if pt.paintEngine().hasFeature(QPaintEngine.PorterDuff):
+                    pt.setRenderHints(QPainter.Antialiasing | \
+                        QPainter.HighQualityAntialiasing | QPainter.SmoothPixmapTransform,
+                        True)
+                    pt.setBrush(Qt.black)
+                    pt.setPen(QPen(QBrush(Qt.black), 0.5))
+                    pt.drawEllipse(translatedEll.boundingRect())
+                    pt.setCompositionMode(QPainter.CompositionMode_SourceIn)
+                else:
+                    pt.setClipRegion(translatedEll)
+                    pt.setCompositionMode(QPainter.CompositionMode_Source)
+                
+                pt.drawPixmap(pixmap2.rect(), self.__pixmap, ell.boundingRect())
+                pt.end()
+                
+                self.grabbed.emit(pixmap2)
+        else:
+            r = QRect(self.__selection)
+            if not r.isNull() and r.isValid():
+                self.__grabbing = True
+                self.grabbed.emit(self.__pixmap.copy(r))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Snapshot/SnapshotTimer.py	Mon Apr 09 17:02:31 2012 +0200
@@ -0,0 +1,117 @@
+# -*- coding: utf-8 -*-
+
+# Copyright (c) 2012 Detlev Offenbach <detlev@die-offenbachs.de>
+#
+
+"""
+Module implementing the snapshot timer widget.
+"""
+
+from PyQt4.QtCore import pyqtSignal, Qt, QTimer, QRect
+from PyQt4.QtGui import QWidget, QApplication, QPainter, QToolTip, QPalette
+
+
+class SnapshotTimer(QWidget):
+    """
+    Class implementing the snapshot timer widget.
+    
+    @signal timeout() emitted after the timer timed out
+    """
+    timeout = pyqtSignal()
+    
+    def __init__(self):
+        """
+        Constructor
+        """
+        super().__init__(None)
+        
+        self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.FramelessWindowHint | 
+                            Qt.X11BypassWindowManagerHint)
+        
+        self.__timer = QTimer()
+        self.__textRect = QRect()
+        self.__time = 0
+        self.__length = 0
+        self.__toggle = True
+        
+        # text is taken from paintEvent with maximum number plus some margin
+        self.resize(
+            self.fontMetrics().width(
+                self.trUtf8("Snapshot will be taken in %n seconds", "", 99)) + 6,
+            self.fontMetrics().height() + 4)
+        
+        self.__timer.timeout.connect(self.__bell)
+    
+    def start(self, seconds):
+        """
+        Public method to start the timer.
+        
+        @param seconds timeout value (integer)
+        """
+        screenGeom = QApplication.desktop().screenGeometry()
+        self.move(screenGeom.width() // 2 - self.size().width() // 2, screenGeom.top())
+        self.__toggle = True
+        self.__time = 0
+        self.__length = seconds
+        self.__timer.start(1000)
+        self.show()
+    
+    def stop(self):
+        """
+        Public method to stop the timer.
+        """
+        self.setVisible(False)
+        self.hide()
+        self.__timer.stop()
+    
+    def __bell(self):
+        """
+        Private slot handling timer timeouts.
+        """
+        if self.__time == self.__length - 1:
+            self.hide()
+        else:
+            if self.__time == self.__length:
+                self.__timer.stop()
+                self.timeout.emit()
+        
+        self.__time += 1
+        self.__toggle = not self.__toggle
+        self.update()
+    
+    def paintEvent(self, evt):
+        """
+        Protected method handling paint events.
+        
+        @param evt paint event (QPaintEvent)
+        """
+        painter = QPainter(self)
+        
+        if self.__time < self.__length:
+            pal = QToolTip.palette()
+            textBackgroundColor = pal.color(QPalette.Active, QPalette.Base)
+            if self.__toggle:
+                textColor = pal.color(QPalette.Active, QPalette.Text)
+            else:
+                textColor = pal.color(QPalette.Active, QPalette.Base)
+            painter.setPen(textColor)
+            painter.setBrush(textBackgroundColor)
+            helpText = self.trUtf8("Snapshot will be taken in %n seconds", "",
+                                   self.__length - self.__time)
+            textRect = painter.boundingRect(self.rect().adjusted(2, 2, -2, -2),
+                Qt.AlignHCenter | Qt.TextSingleLine, helpText)
+            painter.drawText(textRect, Qt.AlignHCenter | Qt.TextSingleLine, helpText)
+    
+    def enterEvent(self, evt):
+        """
+        Protected method handling the mouse cursor entering the widget.
+        
+        @param evt enter event (QEvent)
+        """
+        screenGeom = QApplication.desktop().screenGeometry()
+        if self.x() == screenGeom.left():
+            self.move(
+                screenGeom.x() + (screenGeom.width() // 2 - self.size().width() // 2),
+                screenGeom.top())
+        else:
+            self.move(screenGeom.topLeft())
--- a/changelog	Sun Apr 08 12:45:44 2012 +0200
+++ b/changelog	Mon Apr 09 17:02:31 2012 +0200
@@ -9,7 +9,8 @@
   -- added capability to save project tasks automatically (configurable on
      project configuration page of configuration dialog)
 - Tools
-  -- added a tool to take screenshots (fullscreen or rectangular selection)
+  -- added a tool to take screenshots (fullscreen, selected screen, rectangular
+     selection, elliptical selection or freehand selection)
 - Version Control System Interfaces
   -- Mercurial
      --- added support for the graft command as of Mercurial 2.0
--- a/eric5.e4p	Sun Apr 08 12:45:44 2012 +0200
+++ b/eric5.e4p	Mon Apr 09 17:02:31 2012 +0200
@@ -1006,6 +1006,9 @@
     <Source>Snapshot/SnapshotRegionGrabber.py</Source>
     <Source>eric5_snap.py</Source>
     <Source>eric5_snap.pyw</Source>
+    <Source>Snapshot/SnapshotPreview.py</Source>
+    <Source>Snapshot/SnapshotTimer.py</Source>
+    <Source>Snapshot/SnapshotFreehandGrabber.py</Source>
   </Sources>
   <Forms>
     <Form>PyUnit/UnittestDialog.ui</Form>
--- a/i18n/eric5_cs.ts	Sun Apr 08 12:45:44 2012 +0200
+++ b/i18n/eric5_cs.ts	Mon Apr 09 17:02:31 2012 +0200
@@ -36511,182 +36511,247 @@
 <context>
     <name>SnapWidget</name>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="20"/>
+        <location filename="Snapshot/SnapWidget.py" line="475"/>
         <source>eric5 Snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="113"/>
+        <location filename="Snapshot/SnapWidget.ui" line="54"/>
         <source>Snapshot Mode:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="126"/>
+        <location filename="Snapshot/SnapWidget.ui" line="67"/>
         <source>Select the snapshot mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="133"/>
+        <location filename="Snapshot/SnapWidget.ui" line="74"/>
         <source>Delay:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="142"/>
+        <location filename="Snapshot/SnapWidget.ui" line="83"/>
         <source>Enter the delay before taking the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="148"/>
-        <source> Seconds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="184"/>
+        <location filename="Snapshot/SnapWidget.ui" line="156"/>
         <source>Press to save the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="187"/>
+        <location filename="Snapshot/SnapWidget.ui" line="159"/>
         <source>&amp;Save Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="233"/>
+        <location filename="Snapshot/SnapWidget.ui" line="205"/>
         <source>Press to take a snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="236"/>
+        <location filename="Snapshot/SnapWidget.ui" line="208"/>
         <source>&amp;Take Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="41"/>
+        <location filename="Snapshot/SnapWidget.py" line="57"/>
         <source>Fullscreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="43"/>
+        <location filename="Snapshot/SnapWidget.py" line="59"/>
         <source>Rectangular Selection</source>
         <translation type="unfinished">Obdélníkový výběr</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="61"/>
+        <location filename="Snapshot/SnapWidget.py" line="111"/>
         <source>Windows Bitmap File (*.bmp)</source>
         <translation type="unfinished">Windows Bitmap soubor (*.bmp)</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="62"/>
-        <source>Graphic Interchange Format File (*.gif)</source>
-        <translation type="unfinished">Graphic Interchange Format soubor (*.gif)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="63"/>
-        <source>Windows Icon File (*.ico)</source>
-        <translation type="unfinished">Windows Icon soubor (*.ico)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="64"/>
-        <source>JPEG File (*.jpg)</source>
-        <translation type="unfinished">JPEG soubor (*.jpg)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="65"/>
-        <source>Multiple-Image Network Graphics File (*.mng)</source>
-        <translation type="unfinished">Multiple-Image Network Graphics soubor (*.mng)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="66"/>
-        <source>Portable Bitmap File (*.pbm)</source>
-        <translation type="unfinished">Portable Bitmap soubor (*.pbm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="67"/>
-        <source>Paintbrush Bitmap File (*.pcx)</source>
-        <translation type="unfinished">Paintbrush Bitmap soubor (*.pcx)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="68"/>
-        <source>Portable Graymap File (*.pgm)</source>
-        <translation type="unfinished">Portable Graymap soubor (*.pgm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="69"/>
-        <source>Portable Network Graphics File (*.png)</source>
-        <translation type="unfinished">Portable Network Graphics soubor (*.png)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="70"/>
-        <source>Portable Pixmap File (*.ppm)</source>
-        <translation type="unfinished">Portable Pixmap soubor (*.ppm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="71"/>
-        <source>Silicon Graphics Image File (*.sgi)</source>
-        <translation type="unfinished">Silicon Graphics Image soubor (*.sgi)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="72"/>
-        <source>Scalable Vector Graphics File (*.svg)</source>
-        <translation type="unfinished">Scalable Vector Graphics soubor (*.svg)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="73"/>
-        <source>Targa Graphic File (*.tga)</source>
-        <translation type="unfinished">Targa Graphic soubor (*.tga)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="74"/>
-        <source>TIFF File (*.tif)</source>
-        <translation type="unfinished">TIFF soubor (*.tif)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="75"/>
-        <source>X11 Bitmap File (*.xbm)</source>
-        <translation type="unfinished">X11 Bitmap soubor (*.xbm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="76"/>
-        <source>X11 Pixmap File (*.xpm)</source>
-        <translation type="unfinished">X11 Pixmap soubor (*.xpm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
-        <source>Save Snapshot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="Snapshot/SnapWidget.py" line="112"/>
+        <source>Graphic Interchange Format File (*.gif)</source>
+        <translation type="unfinished">Graphic Interchange Format soubor (*.gif)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="113"/>
+        <source>Windows Icon File (*.ico)</source>
+        <translation type="unfinished">Windows Icon soubor (*.ico)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="114"/>
+        <source>JPEG File (*.jpg)</source>
+        <translation type="unfinished">JPEG soubor (*.jpg)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="115"/>
+        <source>Multiple-Image Network Graphics File (*.mng)</source>
+        <translation type="unfinished">Multiple-Image Network Graphics soubor (*.mng)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="116"/>
+        <source>Portable Bitmap File (*.pbm)</source>
+        <translation type="unfinished">Portable Bitmap soubor (*.pbm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="117"/>
+        <source>Paintbrush Bitmap File (*.pcx)</source>
+        <translation type="unfinished">Paintbrush Bitmap soubor (*.pcx)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="118"/>
+        <source>Portable Graymap File (*.pgm)</source>
+        <translation type="unfinished">Portable Graymap soubor (*.pgm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="119"/>
+        <source>Portable Network Graphics File (*.png)</source>
+        <translation type="unfinished">Portable Network Graphics soubor (*.png)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="120"/>
+        <source>Portable Pixmap File (*.ppm)</source>
+        <translation type="unfinished">Portable Pixmap soubor (*.ppm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="121"/>
+        <source>Silicon Graphics Image File (*.sgi)</source>
+        <translation type="unfinished">Silicon Graphics Image soubor (*.sgi)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="122"/>
+        <source>Scalable Vector Graphics File (*.svg)</source>
+        <translation type="unfinished">Scalable Vector Graphics soubor (*.svg)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="123"/>
+        <source>Targa Graphic File (*.tga)</source>
+        <translation type="unfinished">Targa Graphic soubor (*.tga)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="124"/>
+        <source>TIFF File (*.tif)</source>
+        <translation type="unfinished">TIFF soubor (*.tif)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="125"/>
+        <source>X11 Bitmap File (*.xbm)</source>
+        <translation type="unfinished">X11 Bitmap soubor (*.xbm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="126"/>
+        <source>X11 Pixmap File (*.xpm)</source>
+        <translation type="unfinished">X11 Pixmap soubor (*.xpm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
+        <source>Save Snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="217"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;Soubor &lt;b&gt;{0}&lt;/b&gt; již existuje.&lt;/p&gt;&lt;p&gt;Má se přepsat?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
         <source>Cannot write file &apos;{0}:
 {1}.</source>
         <translation type="unfinished">Nelze zapsat do souboru &apos;{0}:
 {1}.</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="210"/>
+        <location filename="Snapshot/SnapWidget.ui" line="182"/>
         <source>Press to copy the snapshot to the clipboard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="213"/>
+        <location filename="Snapshot/SnapWidget.ui" line="185"/>
         <source>&amp;Copy</source>
         <translation type="unfinished">&amp;Kopírovat</translation>
     </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="89"/>
+        <source> No delay</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="92"/>
+        <source> s</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="125"/>
+        <source>Path Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="132"/>
+        <source>Shows the name of the directory used for saving</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="61"/>
+        <source>Ellipical Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="63"/>
+        <source>Freehand Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="66"/>
+        <source>Current Screen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="77"/>
+        <source>snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="452"/>
+        <source>The application contains an unsaved snapshot.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="404"/>
+        <source>Preview of the snapshot image ({0:n} x {1:n})</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SnapshotFreehandGrabber</name>
+    <message>
+        <location filename="Snapshot/SnapshotFreehandGrabber.py" line="65"/>
+        <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SnapshotRegionGrabber</name>
     <message>
-        <location filename="Snapshot/SnapshotRegionGrabber.py" line="93"/>
+        <location filename="Snapshot/SnapshotRegionGrabber.py" line="94"/>
         <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>SnapshotTimer</name>
+    <message numerus="yes">
+        <location filename="Snapshot/SnapshotTimer.py" line="99"/>
+        <source>Snapshot will be taken in %n seconds</source>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+            <numerusform></numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+</context>
+<context>
     <name>SpeedDial</name>
     <message>
         <location filename="Helpviewer/SpeedDial/SpeedDial.py" line="366"/>
Binary file i18n/eric5_de.qm has changed
--- a/i18n/eric5_de.ts	Sun Apr 08 12:45:44 2012 +0200
+++ b/i18n/eric5_de.ts	Mon Apr 09 17:02:31 2012 +0200
@@ -35564,182 +35564,246 @@
 <context>
     <name>SnapWidget</name>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="20"/>
+        <location filename="Snapshot/SnapWidget.py" line="475"/>
         <source>eric5 Snapshot</source>
         <translation>eric5 Bildschirmfoto</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="113"/>
+        <location filename="Snapshot/SnapWidget.ui" line="54"/>
         <source>Snapshot Mode:</source>
         <translation>Bildschirmfoto-Modus:</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="126"/>
+        <location filename="Snapshot/SnapWidget.ui" line="67"/>
         <source>Select the snapshot mode</source>
         <translation>Wähle den Modus für das Bildschirmfoto</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="133"/>
+        <location filename="Snapshot/SnapWidget.ui" line="74"/>
         <source>Delay:</source>
         <translation>Verzögerung:</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="142"/>
+        <location filename="Snapshot/SnapWidget.ui" line="83"/>
         <source>Enter the delay before taking the snapshot</source>
         <translation>Wähle die Verzögerung für die Aufnahme des Bildschirmfotos</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="148"/>
-        <source> Seconds</source>
-        <translation>Sekunden</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="184"/>
+        <location filename="Snapshot/SnapWidget.ui" line="156"/>
         <source>Press to save the snapshot</source>
         <translation>Drücken, um das Bildschirmfoto zu speichern</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="187"/>
+        <location filename="Snapshot/SnapWidget.ui" line="159"/>
         <source>&amp;Save Snapshot ...</source>
         <translation>Bildschirmfoto &amp;speichern ...</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="233"/>
+        <location filename="Snapshot/SnapWidget.ui" line="205"/>
         <source>Press to take a snapshot</source>
         <translation>Drücken, um ein Bildschirmfoto aufzunehmen</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="236"/>
+        <location filename="Snapshot/SnapWidget.ui" line="208"/>
         <source>&amp;Take Snapshot ...</source>
         <translation>Bildschirmfoto &amp;aufnehmen ...</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="41"/>
+        <location filename="Snapshot/SnapWidget.py" line="57"/>
         <source>Fullscreen</source>
         <translation>Vollbild</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="43"/>
+        <location filename="Snapshot/SnapWidget.py" line="59"/>
         <source>Rectangular Selection</source>
         <translation>Rechteck-Auswahl</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="61"/>
+        <location filename="Snapshot/SnapWidget.py" line="111"/>
         <source>Windows Bitmap File (*.bmp)</source>
         <translation>Windows Bitmap Datei (*.bmp)</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="62"/>
-        <source>Graphic Interchange Format File (*.gif)</source>
-        <translation>Graphic Interchange Format Datei (*.gif)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="63"/>
-        <source>Windows Icon File (*.ico)</source>
-        <translation>Windows Icon Datei (*.ico)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="64"/>
-        <source>JPEG File (*.jpg)</source>
-        <translation>JPEG Datei (*.jpg)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="65"/>
-        <source>Multiple-Image Network Graphics File (*.mng)</source>
-        <translation>Multiple-Image Network Graphics Datei (*.mng)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="66"/>
-        <source>Portable Bitmap File (*.pbm)</source>
-        <translation>Portable Bitmap Datei (*.pbm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="67"/>
-        <source>Paintbrush Bitmap File (*.pcx)</source>
-        <translation>Paintbrush Bitmap Datei (*.pcx)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="68"/>
-        <source>Portable Graymap File (*.pgm)</source>
-        <translation>Portable Graymap Datei (*.pgm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="69"/>
-        <source>Portable Network Graphics File (*.png)</source>
-        <translation>Portable Network Graphics Datei (*.png)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="70"/>
-        <source>Portable Pixmap File (*.ppm)</source>
-        <translation>Portable Pixmap Datei (*.ppm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="71"/>
-        <source>Silicon Graphics Image File (*.sgi)</source>
-        <translation>Silicon Graphics Bild Datei (*.sgi)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="72"/>
-        <source>Scalable Vector Graphics File (*.svg)</source>
-        <translation>Scalable Vector Graphics Datei (*.svg)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="73"/>
-        <source>Targa Graphic File (*.tga)</source>
-        <translation>Targa Grapfik Datei (*.tga)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="74"/>
-        <source>TIFF File (*.tif)</source>
-        <translation>TIFF Datei (*.tif)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="75"/>
-        <source>X11 Bitmap File (*.xbm)</source>
-        <translation>X11 Bitmap Datei (*.xbm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="76"/>
-        <source>X11 Pixmap File (*.xpm)</source>
-        <translation>X11 Pixmap Datei (*.xpm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
-        <source>Save Snapshot</source>
-        <translation>Bildschirmfoto speichern</translation>
-    </message>
-    <message>
         <location filename="Snapshot/SnapWidget.py" line="112"/>
+        <source>Graphic Interchange Format File (*.gif)</source>
+        <translation>Graphic Interchange Format Datei (*.gif)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="113"/>
+        <source>Windows Icon File (*.ico)</source>
+        <translation>Windows Icon Datei (*.ico)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="114"/>
+        <source>JPEG File (*.jpg)</source>
+        <translation>JPEG Datei (*.jpg)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="115"/>
+        <source>Multiple-Image Network Graphics File (*.mng)</source>
+        <translation>Multiple-Image Network Graphics Datei (*.mng)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="116"/>
+        <source>Portable Bitmap File (*.pbm)</source>
+        <translation>Portable Bitmap Datei (*.pbm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="117"/>
+        <source>Paintbrush Bitmap File (*.pcx)</source>
+        <translation>Paintbrush Bitmap Datei (*.pcx)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="118"/>
+        <source>Portable Graymap File (*.pgm)</source>
+        <translation>Portable Graymap Datei (*.pgm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="119"/>
+        <source>Portable Network Graphics File (*.png)</source>
+        <translation>Portable Network Graphics Datei (*.png)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="120"/>
+        <source>Portable Pixmap File (*.ppm)</source>
+        <translation>Portable Pixmap Datei (*.ppm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="121"/>
+        <source>Silicon Graphics Image File (*.sgi)</source>
+        <translation>Silicon Graphics Bild Datei (*.sgi)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="122"/>
+        <source>Scalable Vector Graphics File (*.svg)</source>
+        <translation>Scalable Vector Graphics Datei (*.svg)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="123"/>
+        <source>Targa Graphic File (*.tga)</source>
+        <translation>Targa Grapfik Datei (*.tga)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="124"/>
+        <source>TIFF File (*.tif)</source>
+        <translation>TIFF Datei (*.tif)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="125"/>
+        <source>X11 Bitmap File (*.xbm)</source>
+        <translation>X11 Bitmap Datei (*.xbm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="126"/>
+        <source>X11 Pixmap File (*.xpm)</source>
+        <translation>X11 Pixmap Datei (*.xpm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
+        <source>Save Snapshot</source>
+        <translation>Bildschirmfoto speichern</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="217"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
         <translation>&lt;p&gt;Die Datei &lt;b&gt;{0}&lt;/b&gt; existiert bereits. Überschreiben?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
         <source>Cannot write file &apos;{0}:
 {1}.</source>
         <translation>Datei {0} kann nicht geschrieben werden:
 {1}.</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="210"/>
+        <location filename="Snapshot/SnapWidget.ui" line="182"/>
         <source>Press to copy the snapshot to the clipboard</source>
         <translation>Drücken, um das Bildschirmfoto in die Zwischenablage zu kopieren</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="213"/>
+        <location filename="Snapshot/SnapWidget.ui" line="185"/>
         <source>&amp;Copy</source>
         <translation>&amp;Kopieren</translation>
     </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="89"/>
+        <source> No delay</source>
+        <translation>Keine Verzögerung</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="92"/>
+        <source> s</source>
+        <translation> s</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="125"/>
+        <source>Path Name:</source>
+        <translation>Pfadname:</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="132"/>
+        <source>Shows the name of the directory used for saving</source>
+        <translation>Zeigt den Namen des zum Speichern verwendeten Verzeichnisses</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="61"/>
+        <source>Ellipical Selection</source>
+        <translation>Elliptische Auswahl</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="63"/>
+        <source>Freehand Selection</source>
+        <translation>Freihändige Auswahl</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="66"/>
+        <source>Current Screen</source>
+        <translation>Aktueller Bildschirm</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="77"/>
+        <source>snapshot</source>
+        <translation>bildschirmfoto</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="452"/>
+        <source>The application contains an unsaved snapshot.</source>
+        <translation>Die Anwendung enthält ein nicht gespeichertes Bildschirmfoto.</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="404"/>
+        <source>Preview of the snapshot image ({0:n} x {1:n})</source>
+        <translation>Vorschau des Bildschirmfotos ({0:n} x {1:n})</translation>
+    </message>
+</context>
+<context>
+    <name>SnapshotFreehandGrabber</name>
+    <message>
+        <location filename="Snapshot/SnapshotFreehandGrabber.py" line="65"/>
+        <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
+        <translation>Wählen sie mit der Maus einen Bereich aus. Um das Bildschirmfoto aufzunehmen, drücken sie die Eingabetaste oder tätigen sie einen Doppelklick. Zum Abbrechen drücken sie Escape.</translation>
+    </message>
 </context>
 <context>
     <name>SnapshotRegionGrabber</name>
     <message>
-        <location filename="Snapshot/SnapshotRegionGrabber.py" line="93"/>
+        <location filename="Snapshot/SnapshotRegionGrabber.py" line="94"/>
         <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
         <translation>Wählen sie mit der Maus einen Bereich aus. Um das Bildschirmfoto aufzunehmen, drücken sie die Eingabetaste oder tätigen sie einen Doppelklick. Zum Abbrechen drücken sie Escape.</translation>
     </message>
 </context>
 <context>
+    <name>SnapshotTimer</name>
+    <message numerus="yes">
+        <location filename="Snapshot/SnapshotTimer.py" line="99"/>
+        <source>Snapshot will be taken in %n seconds</source>
+        <translation>
+            <numerusform>Bildschirmfoto wird in einer Sekunde erstellt</numerusform>
+            <numerusform>Bildschirmfoto wird in %n Sekunden erstellt</numerusform>
+        </translation>
+    </message>
+</context>
+<context>
     <name>SpeedDial</name>
     <message>
         <location filename="Helpviewer/SpeedDial/SpeedDial.py" line="366"/>
Binary file i18n/eric5_en.qm has changed
--- a/i18n/eric5_en.ts	Sun Apr 08 12:45:44 2012 +0200
+++ b/i18n/eric5_en.ts	Mon Apr 09 17:02:31 2012 +0200
@@ -35243,181 +35243,245 @@
 <context>
     <name>SnapWidget</name>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="20"/>
+        <location filename="Snapshot/SnapWidget.py" line="475"/>
         <source>eric5 Snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="113"/>
+        <location filename="Snapshot/SnapWidget.ui" line="54"/>
         <source>Snapshot Mode:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="126"/>
+        <location filename="Snapshot/SnapWidget.ui" line="67"/>
         <source>Select the snapshot mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="133"/>
+        <location filename="Snapshot/SnapWidget.ui" line="74"/>
         <source>Delay:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="142"/>
+        <location filename="Snapshot/SnapWidget.ui" line="83"/>
         <source>Enter the delay before taking the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="148"/>
-        <source> Seconds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="184"/>
+        <location filename="Snapshot/SnapWidget.ui" line="156"/>
         <source>Press to save the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="187"/>
+        <location filename="Snapshot/SnapWidget.ui" line="159"/>
         <source>&amp;Save Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="233"/>
+        <location filename="Snapshot/SnapWidget.ui" line="205"/>
         <source>Press to take a snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="236"/>
+        <location filename="Snapshot/SnapWidget.ui" line="208"/>
         <source>&amp;Take Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="41"/>
+        <location filename="Snapshot/SnapWidget.py" line="57"/>
         <source>Fullscreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="43"/>
+        <location filename="Snapshot/SnapWidget.py" line="59"/>
         <source>Rectangular Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Snapshot/SnapWidget.py" line="111"/>
+        <source>Windows Bitmap File (*.bmp)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="112"/>
+        <source>Graphic Interchange Format File (*.gif)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="113"/>
+        <source>Windows Icon File (*.ico)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="114"/>
+        <source>JPEG File (*.jpg)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="115"/>
+        <source>Multiple-Image Network Graphics File (*.mng)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="116"/>
+        <source>Portable Bitmap File (*.pbm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="117"/>
+        <source>Paintbrush Bitmap File (*.pcx)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="118"/>
+        <source>Portable Graymap File (*.pgm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="119"/>
+        <source>Portable Network Graphics File (*.png)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="120"/>
+        <source>Portable Pixmap File (*.ppm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="121"/>
+        <source>Silicon Graphics Image File (*.sgi)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="122"/>
+        <source>Scalable Vector Graphics File (*.svg)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="123"/>
+        <source>Targa Graphic File (*.tga)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="124"/>
+        <source>TIFF File (*.tif)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="125"/>
+        <source>X11 Bitmap File (*.xbm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="126"/>
+        <source>X11 Pixmap File (*.xpm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
+        <source>Save Snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="217"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
+        <source>Cannot write file &apos;{0}:
+{1}.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="182"/>
+        <source>Press to copy the snapshot to the clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="185"/>
+        <source>&amp;Copy</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="89"/>
+        <source> No delay</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="92"/>
+        <source> s</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="125"/>
+        <source>Path Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="132"/>
+        <source>Shows the name of the directory used for saving</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Snapshot/SnapWidget.py" line="61"/>
-        <source>Windows Bitmap File (*.bmp)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="62"/>
-        <source>Graphic Interchange Format File (*.gif)</source>
+        <source>Ellipical Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Snapshot/SnapWidget.py" line="63"/>
-        <source>Windows Icon File (*.ico)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="64"/>
-        <source>JPEG File (*.jpg)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="65"/>
-        <source>Multiple-Image Network Graphics File (*.mng)</source>
+        <source>Freehand Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Snapshot/SnapWidget.py" line="66"/>
-        <source>Portable Bitmap File (*.pbm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="67"/>
-        <source>Paintbrush Bitmap File (*.pcx)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="68"/>
-        <source>Portable Graymap File (*.pgm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="69"/>
-        <source>Portable Network Graphics File (*.png)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="70"/>
-        <source>Portable Pixmap File (*.ppm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="71"/>
-        <source>Silicon Graphics Image File (*.sgi)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="72"/>
-        <source>Scalable Vector Graphics File (*.svg)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="73"/>
-        <source>Targa Graphic File (*.tga)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="74"/>
-        <source>TIFF File (*.tif)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="75"/>
-        <source>X11 Bitmap File (*.xbm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="76"/>
-        <source>X11 Pixmap File (*.xpm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
-        <source>Save Snapshot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="112"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
-        <source>Cannot write file &apos;{0}:
-{1}.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="210"/>
-        <source>Press to copy the snapshot to the clipboard</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="213"/>
-        <source>&amp;Copy</source>
+        <source>Current Screen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="77"/>
+        <source>snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="452"/>
+        <source>The application contains an unsaved snapshot.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="404"/>
+        <source>Preview of the snapshot image ({0:n} x {1:n})</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SnapshotFreehandGrabber</name>
+    <message>
+        <location filename="Snapshot/SnapshotFreehandGrabber.py" line="65"/>
+        <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SnapshotRegionGrabber</name>
     <message>
-        <location filename="Snapshot/SnapshotRegionGrabber.py" line="93"/>
+        <location filename="Snapshot/SnapshotRegionGrabber.py" line="94"/>
         <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>SnapshotTimer</name>
+    <message numerus="yes">
+        <location filename="Snapshot/SnapshotTimer.py" line="99"/>
+        <source>Snapshot will be taken in %n seconds</source>
+        <translation>
+            <numerusform>Snapshot will be taken in %n second</numerusform>
+            <numerusform>Snapshot will be taken in %n seconds</numerusform>
+        </translation>
+    </message>
+</context>
+<context>
     <name>SpeedDial</name>
     <message>
         <location filename="Helpviewer/SpeedDial/SpeedDial.py" line="366"/>
--- a/i18n/eric5_es.ts	Sun Apr 08 12:45:44 2012 +0200
+++ b/i18n/eric5_es.ts	Mon Apr 09 17:02:31 2012 +0200
@@ -36165,182 +36165,246 @@
 <context>
     <name>SnapWidget</name>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="20"/>
+        <location filename="Snapshot/SnapWidget.py" line="475"/>
         <source>eric5 Snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="113"/>
+        <location filename="Snapshot/SnapWidget.ui" line="54"/>
         <source>Snapshot Mode:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="126"/>
+        <location filename="Snapshot/SnapWidget.ui" line="67"/>
         <source>Select the snapshot mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="133"/>
+        <location filename="Snapshot/SnapWidget.ui" line="74"/>
         <source>Delay:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="142"/>
+        <location filename="Snapshot/SnapWidget.ui" line="83"/>
         <source>Enter the delay before taking the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="148"/>
-        <source> Seconds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="184"/>
+        <location filename="Snapshot/SnapWidget.ui" line="156"/>
         <source>Press to save the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="187"/>
+        <location filename="Snapshot/SnapWidget.ui" line="159"/>
         <source>&amp;Save Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="233"/>
+        <location filename="Snapshot/SnapWidget.ui" line="205"/>
         <source>Press to take a snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="236"/>
+        <location filename="Snapshot/SnapWidget.ui" line="208"/>
         <source>&amp;Take Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="41"/>
+        <location filename="Snapshot/SnapWidget.py" line="57"/>
         <source>Fullscreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="43"/>
+        <location filename="Snapshot/SnapWidget.py" line="59"/>
         <source>Rectangular Selection</source>
         <translation type="unfinished">Selección Rectangular</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="61"/>
+        <location filename="Snapshot/SnapWidget.py" line="111"/>
         <source>Windows Bitmap File (*.bmp)</source>
         <translation type="unfinished">Archivo de Bitmap de Windows (*.bmp)</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="62"/>
-        <source>Graphic Interchange Format File (*.gif)</source>
-        <translation type="unfinished">Archivo de Formato Gráfico de Intercambio (*.gif)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="63"/>
-        <source>Windows Icon File (*.ico)</source>
-        <translation type="unfinished">Archivo de Icono de Windows (*.ico)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="64"/>
-        <source>JPEG File (*.jpg)</source>
-        <translation type="unfinished">Archivo JPEG (*.jpg)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="65"/>
-        <source>Multiple-Image Network Graphics File (*.mng)</source>
-        <translation type="unfinished">Archivo de Multiple-Image Network Graphics (*.mng)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="66"/>
-        <source>Portable Bitmap File (*.pbm)</source>
-        <translation type="unfinished">Archivo de Bitmap Portable (*.pbm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="67"/>
-        <source>Paintbrush Bitmap File (*.pcx)</source>
-        <translation type="unfinished">Archivo de Bitmap de Pincel (*.pcx)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="68"/>
-        <source>Portable Graymap File (*.pgm)</source>
-        <translation type="unfinished">Archivo de Portable Graymap (*.pgm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="69"/>
-        <source>Portable Network Graphics File (*.png)</source>
-        <translation type="unfinished">Archivo Portable Network Graphics (*.png)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="70"/>
-        <source>Portable Pixmap File (*.ppm)</source>
-        <translation type="unfinished">Archivo de Portable Pixmap (*.ppm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="71"/>
-        <source>Silicon Graphics Image File (*.sgi)</source>
-        <translation type="unfinished">Archivo de Silicon Graphics Image (*.sgi)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="72"/>
-        <source>Scalable Vector Graphics File (*.svg)</source>
-        <translation type="unfinished">Archivo de Scalable Vector Graphics (*.svg)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="73"/>
-        <source>Targa Graphic File (*.tga)</source>
-        <translation type="unfinished">Archivo de Targa Graphic (*.tga)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="74"/>
-        <source>TIFF File (*.tif)</source>
-        <translation type="unfinished">Archivo TIFF (*.tif)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="75"/>
-        <source>X11 Bitmap File (*.xbm)</source>
-        <translation type="unfinished">Archivo de X11 Bitmap (*.xbm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="76"/>
-        <source>X11 Pixmap File (*.xpm)</source>
-        <translation type="unfinished">Archivo de X11 Pixmap (*.xpm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
-        <source>Save Snapshot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="Snapshot/SnapWidget.py" line="112"/>
+        <source>Graphic Interchange Format File (*.gif)</source>
+        <translation type="unfinished">Archivo de Formato Gráfico de Intercambio (*.gif)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="113"/>
+        <source>Windows Icon File (*.ico)</source>
+        <translation type="unfinished">Archivo de Icono de Windows (*.ico)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="114"/>
+        <source>JPEG File (*.jpg)</source>
+        <translation type="unfinished">Archivo JPEG (*.jpg)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="115"/>
+        <source>Multiple-Image Network Graphics File (*.mng)</source>
+        <translation type="unfinished">Archivo de Multiple-Image Network Graphics (*.mng)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="116"/>
+        <source>Portable Bitmap File (*.pbm)</source>
+        <translation type="unfinished">Archivo de Bitmap Portable (*.pbm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="117"/>
+        <source>Paintbrush Bitmap File (*.pcx)</source>
+        <translation type="unfinished">Archivo de Bitmap de Pincel (*.pcx)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="118"/>
+        <source>Portable Graymap File (*.pgm)</source>
+        <translation type="unfinished">Archivo de Portable Graymap (*.pgm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="119"/>
+        <source>Portable Network Graphics File (*.png)</source>
+        <translation type="unfinished">Archivo Portable Network Graphics (*.png)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="120"/>
+        <source>Portable Pixmap File (*.ppm)</source>
+        <translation type="unfinished">Archivo de Portable Pixmap (*.ppm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="121"/>
+        <source>Silicon Graphics Image File (*.sgi)</source>
+        <translation type="unfinished">Archivo de Silicon Graphics Image (*.sgi)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="122"/>
+        <source>Scalable Vector Graphics File (*.svg)</source>
+        <translation type="unfinished">Archivo de Scalable Vector Graphics (*.svg)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="123"/>
+        <source>Targa Graphic File (*.tga)</source>
+        <translation type="unfinished">Archivo de Targa Graphic (*.tga)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="124"/>
+        <source>TIFF File (*.tif)</source>
+        <translation type="unfinished">Archivo TIFF (*.tif)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="125"/>
+        <source>X11 Bitmap File (*.xbm)</source>
+        <translation type="unfinished">Archivo de X11 Bitmap (*.xbm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="126"/>
+        <source>X11 Pixmap File (*.xpm)</source>
+        <translation type="unfinished">Archivo de X11 Pixmap (*.xpm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
+        <source>Save Snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="217"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
         <source>Cannot write file &apos;{0}:
 {1}.</source>
         <translation type="unfinished">No se puede guardar el archivo {0}:
 {1}.</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="210"/>
+        <location filename="Snapshot/SnapWidget.ui" line="182"/>
         <source>Press to copy the snapshot to the clipboard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="213"/>
+        <location filename="Snapshot/SnapWidget.ui" line="185"/>
         <source>&amp;Copy</source>
         <translation type="unfinished">&amp;Copiar</translation>
     </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="89"/>
+        <source> No delay</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="92"/>
+        <source> s</source>
+        <translation type="unfinished"> s</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="125"/>
+        <source>Path Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="132"/>
+        <source>Shows the name of the directory used for saving</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="61"/>
+        <source>Ellipical Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="63"/>
+        <source>Freehand Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="66"/>
+        <source>Current Screen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="77"/>
+        <source>snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="452"/>
+        <source>The application contains an unsaved snapshot.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="404"/>
+        <source>Preview of the snapshot image ({0:n} x {1:n})</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SnapshotFreehandGrabber</name>
+    <message>
+        <location filename="Snapshot/SnapshotFreehandGrabber.py" line="65"/>
+        <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SnapshotRegionGrabber</name>
     <message>
-        <location filename="Snapshot/SnapshotRegionGrabber.py" line="93"/>
+        <location filename="Snapshot/SnapshotRegionGrabber.py" line="94"/>
         <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>SnapshotTimer</name>
+    <message numerus="yes">
+        <location filename="Snapshot/SnapshotTimer.py" line="99"/>
+        <source>Snapshot will be taken in %n seconds</source>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+</context>
+<context>
     <name>SpeedDial</name>
     <message>
         <location filename="Helpviewer/SpeedDial/SpeedDial.py" line="366"/>
--- a/i18n/eric5_fr.ts	Sun Apr 08 12:45:44 2012 +0200
+++ b/i18n/eric5_fr.ts	Mon Apr 09 17:02:31 2012 +0200
@@ -39035,181 +39035,245 @@
 <context>
     <name>SnapWidget</name>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="20"/>
+        <location filename="Snapshot/SnapWidget.py" line="475"/>
         <source>eric5 Snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="113"/>
+        <location filename="Snapshot/SnapWidget.ui" line="54"/>
         <source>Snapshot Mode:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="126"/>
+        <location filename="Snapshot/SnapWidget.ui" line="67"/>
         <source>Select the snapshot mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="133"/>
+        <location filename="Snapshot/SnapWidget.ui" line="74"/>
         <source>Delay:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="142"/>
+        <location filename="Snapshot/SnapWidget.ui" line="83"/>
         <source>Enter the delay before taking the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="148"/>
-        <source> Seconds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="184"/>
+        <location filename="Snapshot/SnapWidget.ui" line="156"/>
         <source>Press to save the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="187"/>
+        <location filename="Snapshot/SnapWidget.ui" line="159"/>
         <source>&amp;Save Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="233"/>
+        <location filename="Snapshot/SnapWidget.ui" line="205"/>
         <source>Press to take a snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="236"/>
+        <location filename="Snapshot/SnapWidget.ui" line="208"/>
         <source>&amp;Take Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="41"/>
+        <location filename="Snapshot/SnapWidget.py" line="57"/>
         <source>Fullscreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="43"/>
+        <location filename="Snapshot/SnapWidget.py" line="59"/>
         <source>Rectangular Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Snapshot/SnapWidget.py" line="111"/>
+        <source>Windows Bitmap File (*.bmp)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="112"/>
+        <source>Graphic Interchange Format File (*.gif)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="113"/>
+        <source>Windows Icon File (*.ico)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="114"/>
+        <source>JPEG File (*.jpg)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="115"/>
+        <source>Multiple-Image Network Graphics File (*.mng)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="116"/>
+        <source>Portable Bitmap File (*.pbm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="117"/>
+        <source>Paintbrush Bitmap File (*.pcx)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="118"/>
+        <source>Portable Graymap File (*.pgm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="119"/>
+        <source>Portable Network Graphics File (*.png)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="120"/>
+        <source>Portable Pixmap File (*.ppm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="121"/>
+        <source>Silicon Graphics Image File (*.sgi)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="122"/>
+        <source>Scalable Vector Graphics File (*.svg)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="123"/>
+        <source>Targa Graphic File (*.tga)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="124"/>
+        <source>TIFF File (*.tif)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="125"/>
+        <source>X11 Bitmap File (*.xbm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="126"/>
+        <source>X11 Pixmap File (*.xpm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
+        <source>Save Snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="217"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
+        <source>Cannot write file &apos;{0}:
+{1}.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="182"/>
+        <source>Press to copy the snapshot to the clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="185"/>
+        <source>&amp;Copy</source>
+        <translation type="unfinished">&amp;Copier</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="89"/>
+        <source> No delay</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="92"/>
+        <source> s</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="125"/>
+        <source>Path Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="132"/>
+        <source>Shows the name of the directory used for saving</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Snapshot/SnapWidget.py" line="61"/>
-        <source>Windows Bitmap File (*.bmp)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="62"/>
-        <source>Graphic Interchange Format File (*.gif)</source>
+        <source>Ellipical Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Snapshot/SnapWidget.py" line="63"/>
-        <source>Windows Icon File (*.ico)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="64"/>
-        <source>JPEG File (*.jpg)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="65"/>
-        <source>Multiple-Image Network Graphics File (*.mng)</source>
+        <source>Freehand Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Snapshot/SnapWidget.py" line="66"/>
-        <source>Portable Bitmap File (*.pbm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="67"/>
-        <source>Paintbrush Bitmap File (*.pcx)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="68"/>
-        <source>Portable Graymap File (*.pgm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="69"/>
-        <source>Portable Network Graphics File (*.png)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="70"/>
-        <source>Portable Pixmap File (*.ppm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="71"/>
-        <source>Silicon Graphics Image File (*.sgi)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="72"/>
-        <source>Scalable Vector Graphics File (*.svg)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="73"/>
-        <source>Targa Graphic File (*.tga)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="74"/>
-        <source>TIFF File (*.tif)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="75"/>
-        <source>X11 Bitmap File (*.xbm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="76"/>
-        <source>X11 Pixmap File (*.xpm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
-        <source>Save Snapshot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="112"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
-        <source>Cannot write file &apos;{0}:
-{1}.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="210"/>
-        <source>Press to copy the snapshot to the clipboard</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="213"/>
-        <source>&amp;Copy</source>
-        <translation type="unfinished">&amp;Copier</translation>
+        <source>Current Screen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="77"/>
+        <source>snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="452"/>
+        <source>The application contains an unsaved snapshot.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="404"/>
+        <source>Preview of the snapshot image ({0:n} x {1:n})</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SnapshotFreehandGrabber</name>
+    <message>
+        <location filename="Snapshot/SnapshotFreehandGrabber.py" line="65"/>
+        <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SnapshotRegionGrabber</name>
     <message>
-        <location filename="Snapshot/SnapshotRegionGrabber.py" line="93"/>
+        <location filename="Snapshot/SnapshotRegionGrabber.py" line="94"/>
         <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>SnapshotTimer</name>
+    <message numerus="yes">
+        <location filename="Snapshot/SnapshotTimer.py" line="99"/>
+        <source>Snapshot will be taken in %n seconds</source>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+</context>
+<context>
     <name>SpeedDial</name>
     <message>
         <location filename="Helpviewer/SpeedDial/SpeedDial.py" line="366"/>
--- a/i18n/eric5_it.ts	Sun Apr 08 12:45:44 2012 +0200
+++ b/i18n/eric5_it.ts	Mon Apr 09 17:02:31 2012 +0200
@@ -36013,182 +36013,246 @@
 <context>
     <name>SnapWidget</name>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="20"/>
+        <location filename="Snapshot/SnapWidget.py" line="475"/>
         <source>eric5 Snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="113"/>
+        <location filename="Snapshot/SnapWidget.ui" line="54"/>
         <source>Snapshot Mode:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="126"/>
+        <location filename="Snapshot/SnapWidget.ui" line="67"/>
         <source>Select the snapshot mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="133"/>
+        <location filename="Snapshot/SnapWidget.ui" line="74"/>
         <source>Delay:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="142"/>
+        <location filename="Snapshot/SnapWidget.ui" line="83"/>
         <source>Enter the delay before taking the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="148"/>
-        <source> Seconds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="184"/>
+        <location filename="Snapshot/SnapWidget.ui" line="156"/>
         <source>Press to save the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="187"/>
+        <location filename="Snapshot/SnapWidget.ui" line="159"/>
         <source>&amp;Save Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="233"/>
+        <location filename="Snapshot/SnapWidget.ui" line="205"/>
         <source>Press to take a snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="236"/>
+        <location filename="Snapshot/SnapWidget.ui" line="208"/>
         <source>&amp;Take Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="41"/>
+        <location filename="Snapshot/SnapWidget.py" line="57"/>
         <source>Fullscreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="43"/>
+        <location filename="Snapshot/SnapWidget.py" line="59"/>
         <source>Rectangular Selection</source>
         <translation type="unfinished">Selezione rettangolare</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="61"/>
+        <location filename="Snapshot/SnapWidget.py" line="111"/>
         <source>Windows Bitmap File (*.bmp)</source>
         <translation type="unfinished">Windows Bitmap File (*.bmp)</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="62"/>
-        <source>Graphic Interchange Format File (*.gif)</source>
-        <translation type="unfinished">Graphic Interchange Format File (*.gif)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="63"/>
-        <source>Windows Icon File (*.ico)</source>
-        <translation type="unfinished">Windows Icon File (*.ico)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="64"/>
-        <source>JPEG File (*.jpg)</source>
-        <translation type="unfinished">JPEG File (*.jpg)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="65"/>
-        <source>Multiple-Image Network Graphics File (*.mng)</source>
-        <translation type="unfinished">Multiple-Image Network Graphics File (*.mng)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="66"/>
-        <source>Portable Bitmap File (*.pbm)</source>
-        <translation type="unfinished">Portable Bitmap File (*.pbm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="67"/>
-        <source>Paintbrush Bitmap File (*.pcx)</source>
-        <translation type="unfinished">Portable Bitmap File (*.pbm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="68"/>
-        <source>Portable Graymap File (*.pgm)</source>
-        <translation type="unfinished">Portable Graymap File (*.pgm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="69"/>
-        <source>Portable Network Graphics File (*.png)</source>
-        <translation type="unfinished">Portable Network Graphics File (*.png)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="70"/>
-        <source>Portable Pixmap File (*.ppm)</source>
-        <translation type="unfinished">Portable Pixmap File (*.ppm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="71"/>
-        <source>Silicon Graphics Image File (*.sgi)</source>
-        <translation type="unfinished">Silicon Graphics Image File (*.sgi)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="72"/>
-        <source>Scalable Vector Graphics File (*.svg)</source>
-        <translation type="unfinished">Scalable Vector Graphics File (*.svg)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="73"/>
-        <source>Targa Graphic File (*.tga)</source>
-        <translation type="unfinished">Targa Graphic File (*.tga)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="74"/>
-        <source>TIFF File (*.tif)</source>
-        <translation type="unfinished">TIFF File (*.tif)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="75"/>
-        <source>X11 Bitmap File (*.xbm)</source>
-        <translation type="unfinished">X11 Bitmap File (*.xbm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="76"/>
-        <source>X11 Pixmap File (*.xpm)</source>
-        <translation type="unfinished">X11 Pixmap File (*.xpm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
-        <source>Save Snapshot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="Snapshot/SnapWidget.py" line="112"/>
+        <source>Graphic Interchange Format File (*.gif)</source>
+        <translation type="unfinished">Graphic Interchange Format File (*.gif)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="113"/>
+        <source>Windows Icon File (*.ico)</source>
+        <translation type="unfinished">Windows Icon File (*.ico)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="114"/>
+        <source>JPEG File (*.jpg)</source>
+        <translation type="unfinished">JPEG File (*.jpg)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="115"/>
+        <source>Multiple-Image Network Graphics File (*.mng)</source>
+        <translation type="unfinished">Multiple-Image Network Graphics File (*.mng)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="116"/>
+        <source>Portable Bitmap File (*.pbm)</source>
+        <translation type="unfinished">Portable Bitmap File (*.pbm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="117"/>
+        <source>Paintbrush Bitmap File (*.pcx)</source>
+        <translation type="unfinished">Portable Bitmap File (*.pbm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="118"/>
+        <source>Portable Graymap File (*.pgm)</source>
+        <translation type="unfinished">Portable Graymap File (*.pgm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="119"/>
+        <source>Portable Network Graphics File (*.png)</source>
+        <translation type="unfinished">Portable Network Graphics File (*.png)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="120"/>
+        <source>Portable Pixmap File (*.ppm)</source>
+        <translation type="unfinished">Portable Pixmap File (*.ppm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="121"/>
+        <source>Silicon Graphics Image File (*.sgi)</source>
+        <translation type="unfinished">Silicon Graphics Image File (*.sgi)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="122"/>
+        <source>Scalable Vector Graphics File (*.svg)</source>
+        <translation type="unfinished">Scalable Vector Graphics File (*.svg)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="123"/>
+        <source>Targa Graphic File (*.tga)</source>
+        <translation type="unfinished">Targa Graphic File (*.tga)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="124"/>
+        <source>TIFF File (*.tif)</source>
+        <translation type="unfinished">TIFF File (*.tif)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="125"/>
+        <source>X11 Bitmap File (*.xbm)</source>
+        <translation type="unfinished">X11 Bitmap File (*.xbm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="126"/>
+        <source>X11 Pixmap File (*.xpm)</source>
+        <translation type="unfinished">X11 Pixmap File (*.xpm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
+        <source>Save Snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="217"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;Il file &lt;b&gt;{0}&lt;/b&gt; esiste già. Sovrascriverlo ?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
         <source>Cannot write file &apos;{0}:
 {1}.</source>
         <translation type="unfinished">Impossibile scrivere il file {0}:
 {1}.</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="210"/>
+        <location filename="Snapshot/SnapWidget.ui" line="182"/>
         <source>Press to copy the snapshot to the clipboard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="213"/>
+        <location filename="Snapshot/SnapWidget.ui" line="185"/>
         <source>&amp;Copy</source>
         <translation type="unfinished">&amp;Copia</translation>
     </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="89"/>
+        <source> No delay</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="92"/>
+        <source> s</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="125"/>
+        <source>Path Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="132"/>
+        <source>Shows the name of the directory used for saving</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="61"/>
+        <source>Ellipical Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="63"/>
+        <source>Freehand Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="66"/>
+        <source>Current Screen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="77"/>
+        <source>snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="452"/>
+        <source>The application contains an unsaved snapshot.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="404"/>
+        <source>Preview of the snapshot image ({0:n} x {1:n})</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SnapshotFreehandGrabber</name>
+    <message>
+        <location filename="Snapshot/SnapshotFreehandGrabber.py" line="65"/>
+        <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SnapshotRegionGrabber</name>
     <message>
-        <location filename="Snapshot/SnapshotRegionGrabber.py" line="93"/>
+        <location filename="Snapshot/SnapshotRegionGrabber.py" line="94"/>
         <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>SnapshotTimer</name>
+    <message numerus="yes">
+        <location filename="Snapshot/SnapshotTimer.py" line="99"/>
+        <source>Snapshot will be taken in %n seconds</source>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+</context>
+<context>
     <name>SpeedDial</name>
     <message>
         <location filename="Helpviewer/SpeedDial/SpeedDial.py" line="366"/>
--- a/i18n/eric5_ru.ts	Sun Apr 08 12:45:44 2012 +0200
+++ b/i18n/eric5_ru.ts	Mon Apr 09 17:02:31 2012 +0200
@@ -36158,182 +36158,247 @@
 <context>
     <name>SnapWidget</name>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="20"/>
+        <location filename="Snapshot/SnapWidget.py" line="475"/>
         <source>eric5 Snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="113"/>
+        <location filename="Snapshot/SnapWidget.ui" line="54"/>
         <source>Snapshot Mode:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="126"/>
+        <location filename="Snapshot/SnapWidget.ui" line="67"/>
         <source>Select the snapshot mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="133"/>
+        <location filename="Snapshot/SnapWidget.ui" line="74"/>
         <source>Delay:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="142"/>
+        <location filename="Snapshot/SnapWidget.ui" line="83"/>
         <source>Enter the delay before taking the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="148"/>
-        <source> Seconds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="184"/>
+        <location filename="Snapshot/SnapWidget.ui" line="156"/>
         <source>Press to save the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="187"/>
+        <location filename="Snapshot/SnapWidget.ui" line="159"/>
         <source>&amp;Save Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="233"/>
+        <location filename="Snapshot/SnapWidget.ui" line="205"/>
         <source>Press to take a snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="236"/>
+        <location filename="Snapshot/SnapWidget.ui" line="208"/>
         <source>&amp;Take Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="41"/>
+        <location filename="Snapshot/SnapWidget.py" line="57"/>
         <source>Fullscreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="43"/>
+        <location filename="Snapshot/SnapWidget.py" line="59"/>
         <source>Rectangular Selection</source>
         <translation type="unfinished">Прямоугольное выделение</translation>
     </message>
     <message>
+        <location filename="Snapshot/SnapWidget.py" line="111"/>
+        <source>Windows Bitmap File (*.bmp)</source>
+        <translation type="unfinished">Windows Bitmap файл (*.bmp)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="112"/>
+        <source>Graphic Interchange Format File (*.gif)</source>
+        <translation type="unfinished">GIF файл (*.gif)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="113"/>
+        <source>Windows Icon File (*.ico)</source>
+        <translation type="unfinished">Файлы иконок (*.ico)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="114"/>
+        <source>JPEG File (*.jpg)</source>
+        <translation type="unfinished">JPEG файлы (*.jpg)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="115"/>
+        <source>Multiple-Image Network Graphics File (*.mng)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="116"/>
+        <source>Portable Bitmap File (*.pbm)</source>
+        <translation type="unfinished">Bitmap файл (*.bmp)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="117"/>
+        <source>Paintbrush Bitmap File (*.pcx)</source>
+        <translation type="unfinished">Paintbrush Bitmap файл (*.pcx)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="118"/>
+        <source>Portable Graymap File (*.pgm)</source>
+        <translation type="unfinished">Graymap файл (*.pgm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="119"/>
+        <source>Portable Network Graphics File (*.png)</source>
+        <translation type="unfinished">PNG файл (*.png)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="120"/>
+        <source>Portable Pixmap File (*.ppm)</source>
+        <translation type="unfinished">Pixmap файл (*.ppm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="121"/>
+        <source>Silicon Graphics Image File (*.sgi)</source>
+        <translation type="unfinished">Silicon Graphics Image файл (*.sgi)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="122"/>
+        <source>Scalable Vector Graphics File (*.svg)</source>
+        <translation type="unfinished">SVG файл (*.svg)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="123"/>
+        <source>Targa Graphic File (*.tga)</source>
+        <translation type="unfinished">Targa Graphic файл (*.tga)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="124"/>
+        <source>TIFF File (*.tif)</source>
+        <translation type="unfinished">TIFF файл (*.tif)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="125"/>
+        <source>X11 Bitmap File (*.xbm)</source>
+        <translation type="unfinished">X11 Bitmap файл (*.xbm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="126"/>
+        <source>X11 Pixmap File (*.xpm)</source>
+        <translation type="unfinished">X11 Pixmap файл (*.xpm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
+        <source>Save Snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="217"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
+        <translation type="unfinished">&lt;p&gt;Файл &lt;b&gt;{0}&lt;/b&gt; уже сущеструет. Переписать?&lt;/p&gt;</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
+        <source>Cannot write file &apos;{0}:
+{1}.</source>
+        <translation type="unfinished">Невозможно записать файл {0}:
+{1}.</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="182"/>
+        <source>Press to copy the snapshot to the clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="185"/>
+        <source>&amp;Copy</source>
+        <translation type="unfinished">&amp;Копировать</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="89"/>
+        <source> No delay</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="92"/>
+        <source> s</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="125"/>
+        <source>Path Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="132"/>
+        <source>Shows the name of the directory used for saving</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Snapshot/SnapWidget.py" line="61"/>
-        <source>Windows Bitmap File (*.bmp)</source>
-        <translation type="unfinished">Windows Bitmap файл (*.bmp)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="62"/>
-        <source>Graphic Interchange Format File (*.gif)</source>
-        <translation type="unfinished">GIF файл (*.gif)</translation>
+        <source>Ellipical Selection</source>
+        <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Snapshot/SnapWidget.py" line="63"/>
-        <source>Windows Icon File (*.ico)</source>
-        <translation type="unfinished">Файлы иконок (*.ico)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="64"/>
-        <source>JPEG File (*.jpg)</source>
-        <translation type="unfinished">JPEG файлы (*.jpg)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="65"/>
-        <source>Multiple-Image Network Graphics File (*.mng)</source>
+        <source>Freehand Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Snapshot/SnapWidget.py" line="66"/>
-        <source>Portable Bitmap File (*.pbm)</source>
-        <translation type="unfinished">Bitmap файл (*.bmp)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="67"/>
-        <source>Paintbrush Bitmap File (*.pcx)</source>
-        <translation type="unfinished">Paintbrush Bitmap файл (*.pcx)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="68"/>
-        <source>Portable Graymap File (*.pgm)</source>
-        <translation type="unfinished">Graymap файл (*.pgm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="69"/>
-        <source>Portable Network Graphics File (*.png)</source>
-        <translation type="unfinished">PNG файл (*.png)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="70"/>
-        <source>Portable Pixmap File (*.ppm)</source>
-        <translation type="unfinished">Pixmap файл (*.ppm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="71"/>
-        <source>Silicon Graphics Image File (*.sgi)</source>
-        <translation type="unfinished">Silicon Graphics Image файл (*.sgi)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="72"/>
-        <source>Scalable Vector Graphics File (*.svg)</source>
-        <translation type="unfinished">SVG файл (*.svg)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="73"/>
-        <source>Targa Graphic File (*.tga)</source>
-        <translation type="unfinished">Targa Graphic файл (*.tga)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="74"/>
-        <source>TIFF File (*.tif)</source>
-        <translation type="unfinished">TIFF файл (*.tif)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="75"/>
-        <source>X11 Bitmap File (*.xbm)</source>
-        <translation type="unfinished">X11 Bitmap файл (*.xbm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="76"/>
-        <source>X11 Pixmap File (*.xpm)</source>
-        <translation type="unfinished">X11 Pixmap файл (*.xpm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
-        <source>Save Snapshot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="112"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
-        <translation type="unfinished">&lt;p&gt;Файл &lt;b&gt;{0}&lt;/b&gt; уже сущеструет. Переписать?&lt;/p&gt;</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
-        <source>Cannot write file &apos;{0}:
-{1}.</source>
-        <translation type="unfinished">Невозможно записать файл {0}:
-{1}.</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="210"/>
-        <source>Press to copy the snapshot to the clipboard</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="213"/>
-        <source>&amp;Copy</source>
-        <translation type="unfinished">&amp;Копировать</translation>
+        <source>Current Screen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="77"/>
+        <source>snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="452"/>
+        <source>The application contains an unsaved snapshot.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="404"/>
+        <source>Preview of the snapshot image ({0:n} x {1:n})</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SnapshotFreehandGrabber</name>
+    <message>
+        <location filename="Snapshot/SnapshotFreehandGrabber.py" line="65"/>
+        <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SnapshotRegionGrabber</name>
     <message>
-        <location filename="Snapshot/SnapshotRegionGrabber.py" line="93"/>
+        <location filename="Snapshot/SnapshotRegionGrabber.py" line="94"/>
         <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>SnapshotTimer</name>
+    <message numerus="yes">
+        <location filename="Snapshot/SnapshotTimer.py" line="99"/>
+        <source>Snapshot will be taken in %n seconds</source>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+            <numerusform></numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+</context>
+<context>
     <name>SpeedDial</name>
     <message>
         <location filename="Helpviewer/SpeedDial/SpeedDial.py" line="366"/>
--- a/i18n/eric5_tr.ts	Sun Apr 08 12:45:44 2012 +0200
+++ b/i18n/eric5_tr.ts	Mon Apr 09 17:02:31 2012 +0200
@@ -36312,182 +36312,246 @@
 <context>
     <name>SnapWidget</name>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="20"/>
+        <location filename="Snapshot/SnapWidget.py" line="475"/>
         <source>eric5 Snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="113"/>
+        <location filename="Snapshot/SnapWidget.ui" line="54"/>
         <source>Snapshot Mode:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="126"/>
+        <location filename="Snapshot/SnapWidget.ui" line="67"/>
         <source>Select the snapshot mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="133"/>
+        <location filename="Snapshot/SnapWidget.ui" line="74"/>
         <source>Delay:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="142"/>
+        <location filename="Snapshot/SnapWidget.ui" line="83"/>
         <source>Enter the delay before taking the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="148"/>
-        <source> Seconds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="184"/>
+        <location filename="Snapshot/SnapWidget.ui" line="156"/>
         <source>Press to save the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="187"/>
+        <location filename="Snapshot/SnapWidget.ui" line="159"/>
         <source>&amp;Save Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="233"/>
+        <location filename="Snapshot/SnapWidget.ui" line="205"/>
         <source>Press to take a snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="236"/>
+        <location filename="Snapshot/SnapWidget.ui" line="208"/>
         <source>&amp;Take Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="41"/>
+        <location filename="Snapshot/SnapWidget.py" line="57"/>
         <source>Fullscreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="43"/>
+        <location filename="Snapshot/SnapWidget.py" line="59"/>
         <source>Rectangular Selection</source>
         <translation type="unfinished">Köşeli Seçim</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="61"/>
+        <location filename="Snapshot/SnapWidget.py" line="111"/>
         <source>Windows Bitmap File (*.bmp)</source>
         <translation type="unfinished">Windows Bitmap Dosyası (*.bmp)</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="62"/>
-        <source>Graphic Interchange Format File (*.gif)</source>
-        <translation type="unfinished">Graphic Interchange Format Dosyası (*.gif)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="63"/>
-        <source>Windows Icon File (*.ico)</source>
-        <translation type="unfinished">Windows İkon Dosyası (*.ico)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="64"/>
-        <source>JPEG File (*.jpg)</source>
-        <translation type="unfinished">JPEG Dosyası (*.jpg)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="65"/>
-        <source>Multiple-Image Network Graphics File (*.mng)</source>
-        <translation type="unfinished">Çoklu-Resim Ağ Grafik Dosyası (*.mng)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="66"/>
-        <source>Portable Bitmap File (*.pbm)</source>
-        <translation type="unfinished">Portable Bitmap Dosyası (*.pbm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="67"/>
-        <source>Paintbrush Bitmap File (*.pcx)</source>
-        <translation type="unfinished">Paintbrush Bitmap Dosyası (*.pcx)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="68"/>
-        <source>Portable Graymap File (*.pgm)</source>
-        <translation type="unfinished">Portable Graymap Dosyası (*.pgm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="69"/>
-        <source>Portable Network Graphics File (*.png)</source>
-        <translation type="unfinished">Portable Network Graphics Dosyası (*.png)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="70"/>
-        <source>Portable Pixmap File (*.ppm)</source>
-        <translation type="unfinished">Portable Pixmap Dosyası (*.ppm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="71"/>
-        <source>Silicon Graphics Image File (*.sgi)</source>
-        <translation type="unfinished">Silikon Gragik Resim Dosyası (*.sgi)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="72"/>
-        <source>Scalable Vector Graphics File (*.svg)</source>
-        <translation type="unfinished">Ölçeklenebilir Vektörel Grafik Dosyası (*.svg)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="73"/>
-        <source>Targa Graphic File (*.tga)</source>
-        <translation type="unfinished">Targa Gragik Dosyası (*.tga)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="74"/>
-        <source>TIFF File (*.tif)</source>
-        <translation type="unfinished">TIFF Dosyası (*.tif)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="75"/>
-        <source>X11 Bitmap File (*.xbm)</source>
-        <translation type="unfinished">X11 Bitmap Dosyası (*.xbm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="76"/>
-        <source>X11 Pixmap File (*.xpm)</source>
-        <translation type="unfinished">X11 Pixmap Dosyası (*.xpm)</translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
-        <source>Save Snapshot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
         <location filename="Snapshot/SnapWidget.py" line="112"/>
+        <source>Graphic Interchange Format File (*.gif)</source>
+        <translation type="unfinished">Graphic Interchange Format Dosyası (*.gif)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="113"/>
+        <source>Windows Icon File (*.ico)</source>
+        <translation type="unfinished">Windows İkon Dosyası (*.ico)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="114"/>
+        <source>JPEG File (*.jpg)</source>
+        <translation type="unfinished">JPEG Dosyası (*.jpg)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="115"/>
+        <source>Multiple-Image Network Graphics File (*.mng)</source>
+        <translation type="unfinished">Çoklu-Resim Ağ Grafik Dosyası (*.mng)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="116"/>
+        <source>Portable Bitmap File (*.pbm)</source>
+        <translation type="unfinished">Portable Bitmap Dosyası (*.pbm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="117"/>
+        <source>Paintbrush Bitmap File (*.pcx)</source>
+        <translation type="unfinished">Paintbrush Bitmap Dosyası (*.pcx)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="118"/>
+        <source>Portable Graymap File (*.pgm)</source>
+        <translation type="unfinished">Portable Graymap Dosyası (*.pgm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="119"/>
+        <source>Portable Network Graphics File (*.png)</source>
+        <translation type="unfinished">Portable Network Graphics Dosyası (*.png)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="120"/>
+        <source>Portable Pixmap File (*.ppm)</source>
+        <translation type="unfinished">Portable Pixmap Dosyası (*.ppm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="121"/>
+        <source>Silicon Graphics Image File (*.sgi)</source>
+        <translation type="unfinished">Silikon Gragik Resim Dosyası (*.sgi)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="122"/>
+        <source>Scalable Vector Graphics File (*.svg)</source>
+        <translation type="unfinished">Ölçeklenebilir Vektörel Grafik Dosyası (*.svg)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="123"/>
+        <source>Targa Graphic File (*.tga)</source>
+        <translation type="unfinished">Targa Gragik Dosyası (*.tga)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="124"/>
+        <source>TIFF File (*.tif)</source>
+        <translation type="unfinished">TIFF Dosyası (*.tif)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="125"/>
+        <source>X11 Bitmap File (*.xbm)</source>
+        <translation type="unfinished">X11 Bitmap Dosyası (*.xbm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="126"/>
+        <source>X11 Pixmap File (*.xpm)</source>
+        <translation type="unfinished">X11 Pixmap Dosyası (*.xpm)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
+        <source>Save Snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="217"/>
         <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
         <translation type="unfinished">&lt;p&gt;&lt;b&gt;{0}&lt;/b&gt; dosyası halen mevcut. Üzerine yazılsın mı?&lt;/p&gt;</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
         <source>Cannot write file &apos;{0}:
 {1}.</source>
         <translation type="unfinished">Dosyaya yazılamıyor &apos;{0}:
 {1}.</translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="210"/>
+        <location filename="Snapshot/SnapWidget.ui" line="182"/>
         <source>Press to copy the snapshot to the clipboard</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="213"/>
+        <location filename="Snapshot/SnapWidget.ui" line="185"/>
         <source>&amp;Copy</source>
         <translation type="unfinished">&amp;Kopyala</translation>
     </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="89"/>
+        <source> No delay</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="92"/>
+        <source> s</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="125"/>
+        <source>Path Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="132"/>
+        <source>Shows the name of the directory used for saving</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="61"/>
+        <source>Ellipical Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="63"/>
+        <source>Freehand Selection</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="66"/>
+        <source>Current Screen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="77"/>
+        <source>snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="452"/>
+        <source>The application contains an unsaved snapshot.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="404"/>
+        <source>Preview of the snapshot image ({0:n} x {1:n})</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SnapshotFreehandGrabber</name>
+    <message>
+        <location filename="Snapshot/SnapshotFreehandGrabber.py" line="65"/>
+        <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
+        <translation type="unfinished"></translation>
+    </message>
 </context>
 <context>
     <name>SnapshotRegionGrabber</name>
     <message>
-        <location filename="Snapshot/SnapshotRegionGrabber.py" line="93"/>
+        <location filename="Snapshot/SnapshotRegionGrabber.py" line="94"/>
         <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>SnapshotTimer</name>
+    <message numerus="yes">
+        <location filename="Snapshot/SnapshotTimer.py" line="99"/>
+        <source>Snapshot will be taken in %n seconds</source>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+            <numerusform></numerusform>
+        </translation>
+    </message>
+</context>
+<context>
     <name>SpeedDial</name>
     <message>
         <location filename="Helpviewer/SpeedDial/SpeedDial.py" line="366"/>
--- a/i18n/eric5_zh_CN.GB2312.ts	Sun Apr 08 12:45:44 2012 +0200
+++ b/i18n/eric5_zh_CN.GB2312.ts	Mon Apr 09 17:02:31 2012 +0200
@@ -38999,181 +38999,244 @@
 <context>
     <name>SnapWidget</name>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="20"/>
+        <location filename="Snapshot/SnapWidget.py" line="475"/>
         <source>eric5 Snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="113"/>
+        <location filename="Snapshot/SnapWidget.ui" line="54"/>
         <source>Snapshot Mode:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="126"/>
+        <location filename="Snapshot/SnapWidget.ui" line="67"/>
         <source>Select the snapshot mode</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="133"/>
+        <location filename="Snapshot/SnapWidget.ui" line="74"/>
         <source>Delay:</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="142"/>
+        <location filename="Snapshot/SnapWidget.ui" line="83"/>
         <source>Enter the delay before taking the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="148"/>
-        <source> Seconds</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="184"/>
+        <location filename="Snapshot/SnapWidget.ui" line="156"/>
         <source>Press to save the snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="187"/>
+        <location filename="Snapshot/SnapWidget.ui" line="159"/>
         <source>&amp;Save Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="233"/>
+        <location filename="Snapshot/SnapWidget.ui" line="205"/>
         <source>Press to take a snapshot</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.ui" line="236"/>
+        <location filename="Snapshot/SnapWidget.ui" line="208"/>
         <source>&amp;Take Snapshot ...</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="41"/>
+        <location filename="Snapshot/SnapWidget.py" line="57"/>
         <source>Fullscreen</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="Snapshot/SnapWidget.py" line="43"/>
+        <location filename="Snapshot/SnapWidget.py" line="59"/>
         <source>Rectangular Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
+        <location filename="Snapshot/SnapWidget.py" line="111"/>
+        <source>Windows Bitmap File (*.bmp)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="112"/>
+        <source>Graphic Interchange Format File (*.gif)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="113"/>
+        <source>Windows Icon File (*.ico)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="114"/>
+        <source>JPEG File (*.jpg)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="115"/>
+        <source>Multiple-Image Network Graphics File (*.mng)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="116"/>
+        <source>Portable Bitmap File (*.pbm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="117"/>
+        <source>Paintbrush Bitmap File (*.pcx)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="118"/>
+        <source>Portable Graymap File (*.pgm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="119"/>
+        <source>Portable Network Graphics File (*.png)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="120"/>
+        <source>Portable Pixmap File (*.ppm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="121"/>
+        <source>Silicon Graphics Image File (*.sgi)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="122"/>
+        <source>Scalable Vector Graphics File (*.svg)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="123"/>
+        <source>Targa Graphic File (*.tga)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="124"/>
+        <source>TIFF File (*.tif)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="125"/>
+        <source>X11 Bitmap File (*.xbm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="126"/>
+        <source>X11 Pixmap File (*.xpm)</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
+        <source>Save Snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="217"/>
+        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="236"/>
+        <source>Cannot write file &apos;{0}:
+{1}.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="182"/>
+        <source>Press to copy the snapshot to the clipboard</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="185"/>
+        <source>&amp;Copy</source>
+        <translation type="unfinished">复制(&amp;C)</translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="89"/>
+        <source> No delay</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="92"/>
+        <source> s</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="125"/>
+        <source>Path Name:</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.ui" line="132"/>
+        <source>Shows the name of the directory used for saving</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
         <location filename="Snapshot/SnapWidget.py" line="61"/>
-        <source>Windows Bitmap File (*.bmp)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="62"/>
-        <source>Graphic Interchange Format File (*.gif)</source>
+        <source>Ellipical Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Snapshot/SnapWidget.py" line="63"/>
-        <source>Windows Icon File (*.ico)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="64"/>
-        <source>JPEG File (*.jpg)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="65"/>
-        <source>Multiple-Image Network Graphics File (*.mng)</source>
+        <source>Freehand Selection</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
         <location filename="Snapshot/SnapWidget.py" line="66"/>
-        <source>Portable Bitmap File (*.pbm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="67"/>
-        <source>Paintbrush Bitmap File (*.pcx)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="68"/>
-        <source>Portable Graymap File (*.pgm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="69"/>
-        <source>Portable Network Graphics File (*.png)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="70"/>
-        <source>Portable Pixmap File (*.ppm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="71"/>
-        <source>Silicon Graphics Image File (*.sgi)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="72"/>
-        <source>Scalable Vector Graphics File (*.svg)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="73"/>
-        <source>Targa Graphic File (*.tga)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="74"/>
-        <source>TIFF File (*.tif)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="75"/>
-        <source>X11 Bitmap File (*.xbm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="76"/>
-        <source>X11 Pixmap File (*.xpm)</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
-        <source>Save Snapshot</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="112"/>
-        <source>&lt;p&gt;The file &lt;b&gt;{0}&lt;/b&gt; already exists. Overwrite it?&lt;/p&gt;</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.py" line="131"/>
-        <source>Cannot write file &apos;{0}:
-{1}.</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="210"/>
-        <source>Press to copy the snapshot to the clipboard</source>
-        <translation type="unfinished"></translation>
-    </message>
-    <message>
-        <location filename="Snapshot/SnapWidget.ui" line="213"/>
-        <source>&amp;Copy</source>
-        <translation type="unfinished">复制(&amp;C)</translation>
+        <source>Current Screen</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="77"/>
+        <source>snapshot</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="452"/>
+        <source>The application contains an unsaved snapshot.</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location filename="Snapshot/SnapWidget.py" line="404"/>
+        <source>Preview of the snapshot image ({0:n} x {1:n})</source>
+        <translation type="unfinished"></translation>
+    </message>
+</context>
+<context>
+    <name>SnapshotFreehandGrabber</name>
+    <message>
+        <location filename="Snapshot/SnapshotFreehandGrabber.py" line="65"/>
+        <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
+        <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
     <name>SnapshotRegionGrabber</name>
     <message>
-        <location filename="Snapshot/SnapshotRegionGrabber.py" line="93"/>
+        <location filename="Snapshot/SnapshotRegionGrabber.py" line="94"/>
         <source>Select a region using the mouse. To take the snapshot, press the Enter key or double click. Press Esc to quit.</source>
         <translation type="unfinished"></translation>
     </message>
 </context>
 <context>
+    <name>SnapshotTimer</name>
+    <message numerus="yes">
+        <location filename="Snapshot/SnapshotTimer.py" line="99"/>
+        <source>Snapshot will be taken in %n seconds</source>
+        <translation type="unfinished">
+            <numerusform></numerusform>
+        </translation>
+    </message>
+</context>
+<context>
     <name>SpeedDial</name>
     <message>
         <location filename="Helpviewer/SpeedDial/SpeedDial.py" line="366"/>

eric ide

mercurial