Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- from threading import Thread
- import pygtk
- pygtk.require('2.0')
- import gtk, os, gobject
- gtk.gdk.threads_init()
- class main_window():
- def destroy(self, widget, data=None):
- gtk.main_quit()
- print "Program has been destroyed."
- # Create the list of "messages"
- def create_list(self, title='Messages'):
- # Create a new scrolled window, with scrollbars only if needed
- scrolled_window = gtk.ScrolledWindow()
- scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
- self.model = gtk.ListStore(gobject.TYPE_STRING)
- tree_view = gtk.TreeView(self.model)
- scrolled_window.add_with_viewport (tree_view)
- tree_view.show()
- cell = gtk.CellRendererText()
- column = gtk.TreeViewColumn(title, cell, text=0)
- tree_view.append_column(column)
- return scrolled_window
- # Adauga mesajele date in ListView
- def add_message(self, text):
- iter = self.model.append()
- self.model.set(iter, 0, text)
- def locate(self):
- file = self.entry.get_text()
- command = 'locate "%s"' % file
- results = os.popen(command)
- for line in results:
- self.add_message(line[:-1])
- message = 'Results found: %s' % len(self.model)
- self.pushmessage(message)
- def find(self):
- file = self.entry.get_text()
- command = 'find /home/calin/ -type f -name "*%s*"' % file
- try:
- results = os.popen(command)
- for line in results:
- self.add_message(line[:-1])
- except: pass
- message = 'Results found: %s' % len(self.model)
- self.pushmessage(message)
- # Verifica daca un radiobutton este selectat
- # daca da, atunci foloseste functia locate
- def search(self, widget):
- self.model.clear()
- if self.locate_btn.get_active() == 1:
- Thread(target=self.locate,).start()
- else:
- Thread(target=self.find,).start()
- def pushmessage(self, message):
- self.status.pop(0)
- self.status.push(0, message)
- def __init__(self):
- builder = gtk.Builder()
- builder.add_from_file("/home/calin/Dropbox/PyProjects/User Interfaces/file_search.glade")
- self.window = builder.get_object("window1")
- self.status = builder.get_object("statusbar1")
- hbox = builder.get_object("hbox1")
- self.entry = builder.get_object("entry1")
- self.add = builder.get_object("button1")
- self.locate_btn = builder.get_object('locate')
- self.find_btn = builder.get_object('Find')
- self.add.connect('clicked', self.search)
- self.entry.connect('activate', self.search)
- builder.connect_signals(self)
- list = self.create_list()
- hbox.pack_end(list)
- self.window.show_all()
- if __name__ == '__main__':
- window = main_window()
- gtk.main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement