# vim: sw=4 ts=4 expandtab ai
# pylint: disable-msg=C0301
+"""findIT: Gui prorgram to find various information.
+ At the moment it only finds largest files
+"""
+
import gtk
import gobject
import pango
try:
import hildon
- hildonFound = True
+ HILDON = True
except ImportError:
- hildonFound = False
+ HILDON = False
try:
# Подразумевается, что ru/LC_MESSAGES/program.mo находится в текущем каталоге (sys.path[0])
# Для стандартного /usr/share/locale писать gettext.translation('findit')
#langRU = gettext.translation('findit', sys.path[0], languages=['ru'])
- langRU = gettext.translation('findit')
- langRU.install()
+ LANGRU = gettext.translation('findit')
+ LANGRU.install()
except IOError:
# Закомментировать перед использованием pygettext
def _(text):
for fname in fnames:
flpath = abspath(join(dirpath, fname))
# Выводим текущий опрашиваемый файл в строку статуса
- obj.currFileLbl.set_text(flpath)
+ obj.currfilelbl.set_text(flpath)
# обновляем окно
gtk.main_iteration()
# Останавливаем цикл по нажатию кнопки стоп
def on_key_press(obj, event):
"""Key press callback."""
# Toggle fullscreen on Maemo when hw key is pressed
- if hildonFound and event.keyval == gtk.keysyms.F6:
+ if HILDON and event.keyval == gtk.keysyms.F6:
toggle_fullscreen(obj)
### Properties dialog ##########################################################
class PropertiesDialog(gtk.Dialog):
"""File property dialog window."""
- def __init__(self, path, size, bytesize):
+ def __init__(self, app, path, size, bytesize):
"""Create&show file properties dialog."""
- gtk.Dialog.__init__(self)
- self.set_title( _('File properties') )
- self.set_transient_for(app)
+ gtk.Dialog.__init__(self, _('File properties'), app,
+ buttons=(gtk.STOCK_OK, gtk.RESPONSE_OK))
self.set_wmclass('PropertiesDialog', 'FindIT')
- self.add_buttons(gtk.STOCK_OK, gtk.RESPONSE_OK)
self.set_resizable(False)
# Достаем свойства выбранного файла
table.set_row_spacings(10)
# Надписи (подпись: значение)
- nameLbl = gtk.Label( _('Name') )
- nameValueLbl = gtk.Label(name)
-
- sizeLbl = gtk.Label( _('Size') )
- sizeValueLbl = gtk.Label(size + ' (' + `bytesize` + ' b)')
-
- accessLbl = gtk.Label( _('Opened') )
- accessValueLbl = gtk.Label(access)
-
- modifiedLbl = gtk.Label( _('Modified') )
- modifiedValueLbl = gtk.Label(modified)
-
- # Список надписей
- lbls = [(nameLbl, nameValueLbl), (sizeLbl, sizeValueLbl),
- (accessLbl, accessValueLbl), (modifiedLbl, modifiedValueLbl)]
+ lbls = [(gtk.Label(_(name)), gtk.Label(value)) for name, value in
+ [('Name', name), ('Size', "%s (%d b)" % (size, bytesize)),
+ ('Opened', access), ('Modified', modified)]]
# Упаковка надписей в таблицу и выравнивание
for i, lbl in enumerate(lbls):
if isdir(self.start_path):
self.butt_start.set_sensitive(False)
self.butt_stop.set_sensitive(True)
- self.propertiesBtn.set_sensitive(False)
+ self.propertiesbtn.set_sensitive(False)
# Получаем значение количества файлов из SpinButton
self.fl_cnt = int( self.file_cnt.get_value() )
# Очищаем список
self.mess_window('error','Error in %s' % fpath)
self.butt_start.set_sensitive(True)
self.butt_stop.set_sensitive(False)
- self.propertiesBtn.set_sensitive(True)
+ self.propertiesbtn.set_sensitive(True)
self.srch_p_entr.grab_focus()
else:
# Иначе выводим окошко с ошибкой
def show_properties_dialog(self, *args):
"""Show property dialog window."""
selection = self.treeview.get_selection()
- (model, it) = selection.get_selected()
+ (model, item) = selection.get_selected()
try:
- path = model.get_value(it, 0)
- size = model.get_value(it, 1)
- bytesize = model.get_value(it, 2)
+ path = model.get_value(item, 0)
+ size = model.get_value(item, 1)
+ bytesize = model.get_value(item, 2)
except (TypeError, ValueError):
self.mess_window('error', _('Please select file') )
return
- PropertiesDialog(path, size, bytesize)
+ PropertiesDialog(self, path, size, bytesize)
### Window initialization ##################################################
self.start_path = st_path
self.srch_p_entr.set_text(self.start_path)
# Отключаем автокапитализацию(ввод первой буквы заглавной) на таблетке
- if hildonFound:
+ if HILDON:
self.srch_p_entr.set_property("hildon-input-mode", 'full')
# Нажатие Enter в поле ввода
self.srch_p_entr.connect("activate", self.start_print)
# 4. Окошко ввода количества файлов, мин значение=1 макс=65536 по умолчанию 10
# данные храняться в переменной self.fl_cnt
self.fl_cnt = 10
- if hildonFound:
+ if HILDON:
self.file_cnt = hildon.NumberEditor(1, 99)
self.file_cnt.set_value(self.fl_cnt)
else:
self.stopit = False
# 5.3 Кнопка "Свойства файла"
- self.propertiesBtn = gtk.Button( _('File properties') )
- self.propertiesBtn.connect('clicked', self.show_properties_dialog)
- self.propertiesBtn.set_sensitive(False)
+ self.propertiesbtn = gtk.Button( _('File properties') )
+ self.propertiesbtn.connect('clicked', self.show_properties_dialog)
+ self.propertiesbtn.set_sensitive(False)
# 6. Закладки
# 6.2 Надпись "Найти"
# 6.3 Строка выводящая текущий осматриваемый файл
- self.currFileLbl = gtk.Label()
- self.currFileLbl.set_alignment(0, 0.5)
- self.currFileLbl.set_ellipsize(pango.ELLIPSIZE_MIDDLE)
- self.currFileLbl.set_padding(2, 2)
- currFileFrm = gtk.Frame()
- currFileFrm.add(self.currFileLbl)
+ self.currfilelbl = gtk.Label()
+ self.currfilelbl.set_alignment(0, 0.5)
+ self.currfilelbl.set_ellipsize(pango.ELLIPSIZE_MIDDLE)
+ self.currfilelbl.set_padding(2, 2)
+ currfilefrm = gtk.Frame()
+ currfilefrm.add(self.currfilelbl)
######### Упаковываем элементы ################
# Создаем основной вертикальный контейнер
- main_Vbox = gtk.VBox(False, 4)
+ main_vbox = gtk.VBox(False, 4)
# Создаем вспомогательный горизонтальный контейнер для Надписи1,
# окошка ввода количества файлов и кнопки "Показать"
hbox1.pack_start(self.file_cnt, False, False, 0)
hbox1.pack_start(self.butt_start, True, True, 0)
hbox1.pack_start(self.butt_stop, True, True, 0)
- hbox1.pack_start(self.propertiesBtn, True, True, 0)
+ hbox1.pack_start(self.propertiesbtn, True, True, 0)
# Добавляем элементы в основной контейнер
- main_Vbox.pack_start(self.srch_p_entr, False, False, 0)
- main_Vbox.pack_start(hbox1, False, False, 0)
+ main_vbox.pack_start(self.srch_p_entr, False, False, 0)
+ main_vbox.pack_start(hbox1, False, False, 0)
scrollwind.add(self.treeview)
- main_Vbox.pack_start(scrollwind, True, True, 0)
- main_Vbox.pack_start(currFileFrm, False, False, 0)
+ main_vbox.pack_start(scrollwind, True, True, 0)
+ main_vbox.pack_start(currfilefrm, False, False, 0)
- self.add(main_Vbox)
+ self.add(main_vbox)
def run(self):
"""Show all widgets and run gtk.main()."""
### Main call ##################################################################
-
-if __name__ == '__main__':
+def main():
+ """Main function."""
gobject.set_application_name( _('FindIT') )
if platform == 'win32':
else:
startpath = expanduser('~')
- app = MainWindow(575, 345, startpath)
- app.run()
+ MainWindow(575, 345, startpath).run()
+
+if __name__ == '__main__':
+ main()