Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.90 KB | None | 0 0
  1. #!/usr/bin/env python
  2. from threading import Thread
  3. import pygtk
  4. pygtk.require('2.0')
  5. import gtk, os, gobject
  6. gtk.gdk.threads_init()
  7.  
  8. class main_window():
  9.     def destroy(self, widget, data=None):
  10.         gtk.main_quit()
  11.         print "Program has been destroyed."
  12.  
  13.     # Create the list of "messages"
  14.     def create_list(self, title='Messages'):
  15.         # Create a new scrolled window, with scrollbars only if needed
  16.         scrolled_window = gtk.ScrolledWindow()
  17.         scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
  18.  
  19.         self.model = gtk.ListStore(gobject.TYPE_STRING)
  20.         tree_view = gtk.TreeView(self.model)
  21.         scrolled_window.add_with_viewport (tree_view)
  22.         tree_view.show()
  23.  
  24.         cell = gtk.CellRendererText()
  25.         column = gtk.TreeViewColumn(title, cell, text=0)
  26.         tree_view.append_column(column)
  27.  
  28.         return scrolled_window
  29.  
  30.     # Adauga mesajele date in ListView
  31.     def add_message(self, text):
  32.         iter = self.model.append()
  33.         self.model.set(iter, 0, text)
  34.  
  35.     def locate(self):
  36.         file = self.entry.get_text()
  37.         command = 'locate "%s"' % file
  38.         results = os.popen(command)
  39.         for line in results:
  40.             self.add_message(line[:-1])
  41.    
  42.     message = 'Results found: %s' % len(self.model)
  43.     self.pushmessage(message)
  44.  
  45.     def find(self):
  46.         file = self.entry.get_text()
  47.         command = 'find /home/calin/ -type f -name "*%s*"' % file
  48.         try:
  49.             results = os.popen(command)
  50.             for line in results:
  51.                 self.add_message(line[:-1])
  52.         except: pass
  53.    
  54.     message = 'Results found: %s' % len(self.model)
  55.     self.pushmessage(message)
  56.  
  57.     # Verifica daca un radiobutton este selectat
  58.     # daca da, atunci foloseste functia locate
  59.     def search(self, widget):
  60.         self.model.clear()
  61.         if self.locate_btn.get_active() == 1:
  62.             Thread(target=self.locate,).start()
  63.         else:
  64.             Thread(target=self.find,).start()
  65.  
  66.    
  67.     def pushmessage(self, message):
  68.     self.status.pop(0)
  69.     self.status.push(0, message)
  70.  
  71.     def __init__(self):
  72.         builder = gtk.Builder()
  73.         builder.add_from_file("/home/calin/Dropbox/PyProjects/User Interfaces/file_search.glade")
  74.  
  75.         self.window = builder.get_object("window1")
  76.     self.status = builder.get_object("statusbar1")
  77.         hbox = builder.get_object("hbox1")
  78.         self.entry = builder.get_object("entry1")
  79.         self.add = builder.get_object("button1")
  80.         self.locate_btn = builder.get_object('locate')
  81.         self.find_btn = builder.get_object('Find')
  82.         self.add.connect('clicked', self.search)
  83.     self.entry.connect('activate', self.search)
  84.  
  85.         builder.connect_signals(self)
  86.  
  87.         list = self.create_list()
  88.         hbox.pack_end(list)
  89.  
  90.  
  91.         self.window.show_all()
  92.  
  93. if __name__ == '__main__':
  94.     window = main_window()
  95.     gtk.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement