simple-scan-team team mailing list archive
-
simple-scan-team team
-
Mailing list archive
-
Message #00916
[Merge] lp:~mriya3/simple-scan/copy-to-clipboard-branch into lp:simple-scan
Amos Brocco has proposed merging lp:~mriya3/simple-scan/copy-to-clipboard-branch into lp:simple-scan.
Requested reviews:
Simple Scan Development Team (simple-scan-team)
For more details, see:
https://code.launchpad.net/~mriya3/simple-scan/copy-to-clipboard-branch/+merge/163648
The included patch implements "copy to clipboard", to directly copy a scanned page (or a portion of it) to the clipboard.
--
https://code.launchpad.net/~mriya3/simple-scan/copy-to-clipboard-branch/+merge/163648
Your team Simple Scan Development Team is requested to review the proposed merge of lp:~mriya3/simple-scan/copy-to-clipboard-branch into lp:simple-scan.
=== modified file 'data/simple-scan.ui'
--- data/simple-scan.ui 2012-09-07 02:08:34 +0000
+++ data/simple-scan.ui 2013-05-14 06:43:28 +0000
@@ -121,6 +121,17 @@
</object>
</child>
<child>
+ <object class="GtkImageMenuItem" id="copy_to_clipboard_menuitem">
+ <property name="label">gtk-copy</property>
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="use_underline">True</property>
+ <property name="use_stock">True</property>
+ <accelerator key="c" signal="activate" modifiers="GDK_CONTROL_MASK"/>
+ <signal name="activate" handler="copy_to_clipboard_button_clicked_cb"/>
+ </object>
+ </child>
+ <child>
<object class="GtkImageMenuItem" id="email_menuitem">
<property name="label" translatable="yes" comments="Label on email menu item">_Email</property>
<property name="visible">True</property>
@@ -427,6 +438,22 @@
<property name="homogeneous">True</property>
</packing>
</child>
+ <child>
+ <object class="GtkToolButton" id="copy_toolbutton">
+ <property name="visible">True</property>
+ <property name="sensitive">False</property>
+ <property name="tooltip_text" translatable="yes" comments="Tooltip for save toolbar button">Copy document to clipboard</property>
+ <property name="is_important">True</property>
+ <property name="label" translatable="yes">Copy</property>
+ <property name="use_underline">True</property>
+ <property name="stock_id">gtk-copy</property>
+ <signal name="clicked" handler="copy_to_clipboard_button_clicked_cb"/>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="homogeneous">True</property>
+ </packing>
+ </child>
<child>
<object class="GtkToolButton" id="stop_toolbutton">
<property name="visible">True</property>
=== modified file 'src/page.vala'
--- src/page.vala 2013-01-19 02:45:11 +0000
+++ src/page.vala 2013-05-14 06:43:28 +0000
@@ -683,6 +683,14 @@
/* Encode into base64 */
return Base64.encode ((uchar[]) contents.to_utf8 ());
}
+
+ public void copy_to_clipboard (Gtk.Window window)
+ {
+ Gdk.Display display = window.get_display ();
+ Gtk.Clipboard clipboard = Gtk.Clipboard.get_for_display (display, Gdk.SELECTION_CLIPBOARD);
+ var image = get_image (true);
+ clipboard.set_image(image);
+ }
public void save (string type, File file) throws Error
{
=== modified file 'src/ui.vala'
--- src/ui.vala 2013-04-18 08:49:12 +0000
+++ src/ui.vala 2013-05-14 06:43:28 +0000
@@ -31,7 +31,9 @@
private Gtk.MenuItem crop_rotate_menuitem;
private Gtk.MenuItem save_menuitem;
private Gtk.MenuItem save_as_menuitem;
+ private Gtk.MenuItem copy_to_clipboard_menuitem;
private Gtk.ToolButton save_toolbutton;
+ private Gtk.ToolButton copy_toolbutton;
private Gtk.MenuItem stop_menuitem;
private Gtk.ToolButton stop_toolbutton;
@@ -533,6 +535,8 @@
book_uri = null;
book.set_needs_saving (false);
save_as_menuitem.set_sensitive (false);
+ copy_to_clipboard_menuitem.set_sensitive (false);
+ copy_toolbutton.set_sensitive (false);
}
[CCode (cname = "G_MODULE_EXPORT new_button_clicked_cb", instance_pos = -1)]
@@ -1011,6 +1015,14 @@
save_document (false);
}
+ [CCode (cname = "G_MODULE_EXPORT copy_to_clipboard_button_clicked_cb", instance_pos = -1)]
+ public void copy_to_clipboard_button_clicked_cb (Gtk.Widget widget)
+ {
+ var page = book_view.get_selected ();
+ if (page != null)
+ page.copy_to_clipboard (window);
+ }
+
[CCode (cname = "G_MODULE_EXPORT save_as_file_button_clicked_cb", instance_pos = -1)]
public void save_as_file_button_clicked_cb (Gtk.Widget widget)
{
@@ -1272,6 +1284,8 @@
save_toolbutton.set_sensitive (book.get_needs_saving ());
if (book.get_needs_saving ())
save_as_menuitem.set_sensitive (true);
+ copy_to_clipboard_menuitem.set_sensitive (true);
+ copy_toolbutton.set_sensitive (true);
}
private void load ()
@@ -1306,7 +1320,9 @@
crop_rotate_menuitem = (Gtk.MenuItem) builder.get_object ("crop_rotate_menuitem");
save_menuitem = (Gtk.MenuItem) builder.get_object ("save_menuitem");
save_as_menuitem = (Gtk.MenuItem) builder.get_object ("save_as_menuitem");
+ copy_to_clipboard_menuitem = (Gtk.MenuItem) builder.get_object ("copy_to_clipboard_menuitem");
save_toolbutton = (Gtk.ToolButton) builder.get_object ("save_toolbutton");
+ copy_toolbutton = (Gtk.ToolButton) builder.get_object ("copy_toolbutton");
stop_menuitem = (Gtk.MenuItem) builder.get_object ("stop_scan_menuitem");
stop_toolbutton = (Gtk.ToolButton) builder.get_object ("stop_toolbutton");
Follow ups