Added 'Copy to clipboard' button to files.out_table
authorEugene Gagarin <mosfet07@ya.ru>
Mon, 18 May 2009 10:36:40 +0000 (14:36 +0400)
committerEugene Gagarin <mosfet07@ya.ru>
Mon, 18 May 2009 10:36:40 +0000 (14:36 +0400)
src/files/out_table.py

index 52b5b9b..6bd66eb 100755 (executable)
@@ -21,7 +21,7 @@ class Cli_Presentation(object):
 class Gtk_Presentation(object):
     def __init__(self, results):   ###
         import gtk
-        global gtk  # for save_results
+        global gtk  # for save_results and copy_results
         import gobject
 
         self.filelist, self.start_path = results
@@ -66,6 +66,7 @@ class Gtk_Presentation(object):
         #====================
 
         toolbar = gtk.Toolbar()
+        toolbar.set_property('icon-size', 'small-toolbar')
 
         relpaths_tbtn = gtk.RadioToolButton(None)
         abspaths_tbtn = gtk.RadioToolButton(relpaths_tbtn)
@@ -76,19 +77,22 @@ class Gtk_Presentation(object):
         relpaths_tbtn.connect('clicked', self._show_relpaths)
         abspaths_tbtn.connect('clicked', self._show_abspaths)
 
-        saveresults_tbtn = gtk.ToolButton()
-        saveresults_tbtn.set_label(_('Save results'))
+        saveresults_tbtn = gtk.ToolButton('gtk-save')
         saveresults_tbtn.connect('clicked', self.save_results)
 
+        copyresults_tbtn = gtk.ToolButton('gtk-copy')
+        copyresults_tbtn.connect('clicked', self.copy_results)
+
         toolbar.insert(relpaths_tbtn, -1)
         toolbar.insert(abspaths_tbtn, -1)
         toolbar.insert(saveresults_tbtn, -1)
+        toolbar.insert(copyresults_tbtn, -1)
 
         #====================
         # Others
         #====================
 
-        vbox = gtk.VBox(False, 4)
+        vbox = gtk.VBox(False, 0)
         vbox.pack_start(swin, True, True, 0)
         vbox.pack_start(toolbar, False, False, 0)
 
@@ -113,7 +117,7 @@ class Gtk_Presentation(object):
                 size, bsize])
 
     def save_results(self, btn):
-        # 'Save to file' dialog
+        """Show 'Save to file' dialog."""
         dialog = gtk.FileChooserDialog(title='Save to...',
                                        action='save',
                                        buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK,
@@ -129,6 +133,18 @@ class Gtk_Presentation(object):
             outfile.close()
         dialog.destroy()
 
+    def copy_results(self, btn):
+        """Copy results to clipboard."""
+        # Form list
+        filelist = ''
+        for bsize, path, size in self.filelist:
+            filelist += `bsize` + '\t' + abspath(path) + '\n'
+
+        # Store in clipboard
+        cb = gtk.Clipboard()
+        cb.set_text(filelist)
+        cb.store()
+
 #==============================================================================
 
 class Hildon_Presentation(object):