#!/usr/bin/env python
# -*-coding: utf-8 -*-
# vim: sw=4 ts=4 expandtab ai
+# pylint: disable-msg=C0301
import gtk
import gobject
import pango
from os import walk
from os.path import join, abspath, normcase, basename, \
- isdir, getsize, getatime, getmtime
+ isdir, getsize, getatime, getmtime, expanduser
from heapq import nlargest
import gettext
-import sys
import time
+from sys import platform
-try: import hildon; hildonFound = True
-except: hildonFound = False
+try:
+ import hildon
+ hildonFound = True
+except ImportError:
+ hildonFound = False
try:
# Подразумевается, что ru/LC_MESSAGES/program.mo находится в текущем каталоге (sys.path[0])
#langRU = gettext.translation('findit', sys.path[0], languages=['ru'])
langRU = gettext.translation('findit')
langRU.install()
-except:
+except IOError:
# Закомментировать перед использованием pygettext
- def _(text): return text
+ def _(text):
+ return text
### Common functions ###########################################################
return '>1024 Tb'
# Функция поставляющая размер файла и путь к нему
-def filegetter(startpath, obj):
+def filegetter(startdir, obj):
# Список игнорируемых каталогов:
ignore_dirs = ['/dev', '/proc', '/sys', '/mnt']
# Проходим по всем папкам вглубь от заданного пути
- for dirpath, dirnames, fnames in walk(startpath):
+ for dirpath, dirnames, fnames in walk(startdir):
# Исключаем каталоги из поиска в соответствии со списком исключений
for ign_dir in ignore_dirs[:]:
for dirname in dirnames[:]:
obj.stopit = False
raise StopIteration
# Проверяем можем ли мы определить размер файла - иначе пропускаем его
- try: flsize = getsize(flpath)
- except: continue
- # Возвращаем размер и полный путь файла
- yield flsize, flpath
+ try:
+ # Возвращаем размер и полный путь файла
+ yield getsize(flpath), flpath
+ except OSError:
+ continue
# Fullscreen
def toggle_fullscreen(obj):
if obj.fullscreen:
- obj.window.unfullscreen()
- else: obj.window.fullscreen()
+ obj.window.unfullscreen()
+ else:
+ obj.window.fullscreen()
obj.fullscreen = not obj.fullscreen
# Нажатие на кнопку клавиатуры
# Выдает какую-то перманентную ошибку при присвоении значений treestore -
# кто увидит скажите - нужна статистика
- try: self.treestore.append(None, [fpath, size_convert(fsize), fsize])
- except: 'error', fpath, size_convert(fsize), fsize
+ try:
+ self.treestore.append(None, [fpath, size_convert(fsize), fsize])
+ except SystemError:
+# print 'error', fpath, size_convert(fsize), fsize
+ 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.srch_p_entr.grab_focus()
else:
# Иначе выводим окошко с ошибкой
self.mess_window('error', _('Invalid directory') )
path = model.get_value(it, 0)
size = model.get_value(it, 1)
bytesize = model.get_value(it, 2)
- except:
+ except (TypeError, ValueError):
self.mess_window('error', _('Please select file') )
return
PropertiesDialog(path, size, bytesize)
self.treeview.set_headers_visible(1)
self.treeview.connect('row-activated', self.show_properties_dialog)
- self.treestore.append(None, ['','', 0])
+ self.treestore.append(None, ['', '', 0])
# Создаем и настраиваем колонку с размером файла
size_col = gtk.TreeViewColumn( _('Size') )
def run(self):
self.show_all()
gtk.main()
- return 0
### Main call ##################################################################
if __name__ == '__main__':
gobject.set_application_name( _('FindIT') )
- app = MainWindow(575, 345, '.')
+
+ if platform == 'win32':
+ startpath = 'c:\\'
+ else:
+ startpath = expanduser('~')
+
+ app = MainWindow(575, 345, startpath)
app.run()