From 5ccfc505bf06d8b46adcfca60e32e44972358c60 Mon Sep 17 00:00:00 2001 From: Eugene Gagarin Date: Wed, 25 Feb 2009 13:07:27 +0300 Subject: [PATCH] some structuring --- findit | 2 - findit.desktop | 12 -- findit.py | 326 ----------------------------------------- icons/findit_icon_128x128.png | Bin 7297 -> 0 bytes icons/findit_icon_16x16.png | Bin 762 -> 0 bytes icons/findit_icon_26x26.png | Bin 1266 -> 0 bytes icons/findit_icon_32x32.png | Bin 1626 -> 0 bytes icons/findit_icon_64x64.png | Bin 3373 -> 0 bytes icons/uuencode_b64_26x26.en | 29 ---- ru.po | 65 -------- 10 files changed, 434 deletions(-) delete mode 100755 findit delete mode 100644 findit.desktop delete mode 100755 findit.py delete mode 100644 icons/findit_icon_128x128.png delete mode 100644 icons/findit_icon_16x16.png delete mode 100644 icons/findit_icon_26x26.png delete mode 100644 icons/findit_icon_32x32.png delete mode 100644 icons/findit_icon_64x64.png delete mode 100644 icons/uuencode_b64_26x26.en delete mode 100755 ru.po diff --git a/findit b/findit deleted file mode 100755 index c198574..0000000 --- a/findit +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -exec python -O /usr/share/findit/findit.py diff --git a/findit.desktop b/findit.desktop deleted file mode 100644 index e627894..0000000 --- a/findit.desktop +++ /dev/null @@ -1,12 +0,0 @@ -[Desktop Entry] -Version=1.0 -Encoding=UTF-8 -Name=FindIT -Exec=/usr/bin/findit -Icon=findit -Type=Application -StartupWMClass=MainWindow -X-Icon-path=/usr/share/icons -X-Window-Icon=findit -X-HildonDesk-ShowInToolbar=true -X-Osso-Type=application/x-executable diff --git a/findit.py b/findit.py deleted file mode 100755 index 015d113..0000000 --- a/findit.py +++ /dev/null @@ -1,326 +0,0 @@ -#!/usr/bin/env python -# -*-coding: utf-8 -*- -# vim: sw=4 ts=4 expandtab ai - -import gtk -import gobject -import pango -from os import walk -from os.path import join, abspath, normcase, basename, \ - isdir, getsize, getatime, getmtime -from heapq import nlargest -import gettext -import sys -import time - -try: import hildon; hildonFound = True -except: hildonFound = 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() -except: - # Закомментировать перед использованием pygettext - def _(text): return text - - -### Common functions ########################################################### - -# Функция которая возвращает строку из числа и единиц для столбца "Размер"("Size") -def size_convert(size): - for i, unit in enumerate(['%d b', '%.1f Kb', '%.2f Mb', '%.3f Gb', '%.4f Tb']): - if size < 1024**(i+1): - return unit % (size/1024.**i) - return '>1024 Tb' - -# Функция поставляющая размер файла и путь к нему -def filegetter(startpath, obj): - # Список игнорируемых каталогов: - ignore_dirs = ['/dev', '/proc', '/sys', '/mnt'] - # Проходим по всем папкам вглубь от заданного пути - for dirpath, dirnames, fnames in walk(startpath): - # Исключаем каталоги из поиска в соответствии со списком исключений - for ign_dir in ignore_dirs[:]: - for dirname in dirnames[:]: - if ign_dir == normcase(join(abspath(dirpath), dirname)): - dirnames.remove(dirname) - ignore_dirs.remove(ign_dir) - - for fname in fnames: - flpath = abspath(join(dirpath, fname)) - # Выводим текущий опрашиваемый файл в строку статуса - obj.currFileLbl.set_text(flpath) - # обновляем окно - gtk.main_iteration() - # Останавливаем цикл по нажатию кнопки стоп - if obj.stopit: - obj.stopit = False - raise StopIteration - # Проверяем можем ли мы определить размер файла - иначе пропускаем его - try: flsize = getsize(flpath) - except: continue - # Возвращаем размер и полный путь файла - yield flsize, flpath - -# Fullscreen -def toggle_fullscreen(obj): - if obj.fullscreen: - obj.window.unfullscreen() - else: obj.window.fullscreen() - obj.fullscreen = not obj.fullscreen - -# Нажатие на кнопку клавиатуры -def on_key_press(obj, event): - if hildonFound and event.keyval == gtk.keysyms.F6: - toggle_fullscreen(obj) - -### Properties dialog ########################################################## - -class PropertiesDialog(gtk.Dialog): - def __init__(self, path, size, bytesize): - gtk.Dialog.__init__(self) - self.set_title( _('File properties') ) - self.set_transient_for(app) - self.set_wmclass('PropertiesDialog', 'FindIT') - self.add_buttons(gtk.STOCK_OK, gtk.RESPONSE_OK) - self.set_resizable(False) - - # Достаем свойства выбранного файла - name = basename(path) - access = time.strftime('%x %X', time.localtime(getatime(path))) - modified = time.strftime('%x %X', time.localtime(getmtime(path))) - - # Таблица надписей - table = gtk.Table() - table.set_border_width(10) - table.set_col_spacings(10) - 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)] - - # Упаковка надписей в таблицу и выравнивание - for i, lbl in enumerate(lbls): - name, value = lbl - table.attach(name, 0, 1, i, i+1) - table.attach(value, 1, 2, i, i+1) - name.set_alignment(1, 0.5) - value.set_alignment(0, 0.5) - - # Упаковка таблицы в vbox диалога - self.vbox.add(table) - self.show_all() - self.run() - self.destroy() - -### Main window ################################################################ - -class MainWindow(gtk.Window): - - # Окно сообщения заданного типа с заданным текстом - def mess_window(self, mestype, content): - dialog = gtk.MessageDialog(parent=self, flags=gtk.DIALOG_MODAL, - type=mestype, buttons=gtk.BUTTONS_OK, - message_format=content) - dialog.set_wmclass('ErrorDialog', 'FindIT') - dialog.set_title( _('Error!') ) - dialog.run() - dialog.destroy() - - # Функция выполняющаяся при нажатии на кнопку "Показать" - def start_print(self, widget): - self.start_path = self.srch_p_entr.get_text() - # Проверяем правильное ли значение введено - if isdir(self.start_path): - self.butt_start.set_sensitive(False) - self.butt_stop.set_sensitive(True) - self.propertiesBtn.set_sensitive(False) - # Получаем значение количества файлов из SpinButton - self.fl_cnt = int( self.file_cnt.get_value() ) - # Очищаем список - self.treestore.clear() - # Получаем нужное количество самых больших файлов - for fsize, fpath in nlargest(self.fl_cnt, filegetter(self.start_path, self)): - # Возвращаем значения в treeview в таком порядке - путь, - # размер в Мб строкой и размер в байтах - # self.treestore.append(None, [fpath.replace(self.start_path,'', 1), - # size_convert(fsize), fsize]) - - # Выдает какую-то перманентную ошибку при присвоении значений treestore - - # кто увидит скажите - нужна статистика - try: self.treestore.append(None, [fpath, size_convert(fsize), fsize]) - except: 'error', fpath, size_convert(fsize), fsize - self.butt_start.set_sensitive(True) - self.butt_stop.set_sensitive(False) - self.propertiesBtn.set_sensitive(True) - else: - # Иначе выводим окошко с ошибкой - self.mess_window('error', _('Invalid directory') ) - - # Функция выполняющаяся при нажатии на кнопку "Стоп" - def stop_print(self, widget): - self.stopit = True - - # Функция выполняющаяся при нажатии на кнопку "Свойства файла" - def show_properties_dialog(self, btn): - selection = self.treeview.get_selection() - (model, it) = selection.get_selected() - try: - path = model.get_value(it, 0) - size = model.get_value(it, 1) - bytesize = model.get_value(it, 2) - except: - self.mess_window('error', _('Please select file') ) - return - PropertiesDialog(path, size, bytesize) - - ### Window initialization ################################################## - - def __init__(self, win_width, win_height, st_path): - # Создаем новое окно - gtk.Window.__init__(self) - self.set_default_size(win_width, win_height) - self.set_border_width(4) - self.fullscreen = False - self.connect('delete_event', gtk.main_quit) - self.connect("key-press-event", on_key_press) - self.set_wmclass('MainWindow', 'FindIT') - - ######### Добавляем элементы ################ - # 1. Строка ввода каталога с которого начинать поиск - # переменная в которой храниться стартовый каталог = self.start_path - self.srch_p_entr = gtk.Entry() - self.start_path = st_path - self.srch_p_entr.set_text(self.start_path) - # Отключаем автокапитализацию(ввод первой буквы заглавной) на таблетке - if hildonFound: - self.srch_p_entr.set_property("hildon-input-mode", 'full') - # Нажатие Enter в поле ввода - self.srch_p_entr.connect("activate", self.start_print) - - # 2. Кнопка "Обзор" - - # 3. Надпись1 "Количество отображаемых файлов:" - label1 = gtk.Label( _('Files quantity') ) - - # 4. Окошко ввода количества файлов, мин значение=1 макс=65536 по умолчанию 10 - # данные храняться в переменной self.fl_cnt - self.fl_cnt = 10 - if hildonFound: - self.file_cnt = hildon.NumberEditor(1, 99) - self.file_cnt.set_value(self.fl_cnt) - else: - adj = gtk.Adjustment(self.fl_cnt, 1, 65536, 1, 5, 0) - self.file_cnt = gtk.SpinButton(adj, 0, 0) - - # 5.1 Кнопка "Показать" - self.butt_start = gtk.Button( _('Go') ) - self.butt_start.connect('clicked', self.start_print) - - # 5.2 Кнопка "Остановить" - self.butt_stop = gtk.Button( _('Stop') ) - self.butt_stop.set_sensitive(False) - self.butt_stop.connect('clicked', self.stop_print) - self.stopit = False - - # 5.3 Кнопка "Свойства файла" - self.propertiesBtn = gtk.Button( _('File properties') ) - self.propertiesBtn.connect('clicked', self.show_properties_dialog) - self.propertiesBtn.set_sensitive(False) - - # 6. Закладки - - # 6.1 Список файлов - scrollwind = gtk.ScrolledWindow() - scrollwind.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) - - # Определяем переменную в которой будет храниться выводимый список - self.treestore = gtk.TreeStore(str, str, int) - self.treeview = gtk.TreeView(self.treestore) - # На таблетке не отображаються заголовки столбцов по умолчанию - - # след строка заставляет их отображаться принудительно - self.treeview.set_headers_visible(1) - - self.treestore.append(None, ['','', 0]) - - # Создаем и настраиваем колонку с размером файла - size_col = gtk.TreeViewColumn( _('Size') ) - cell = gtk.CellRendererText() - cell.set_property('width', 90) - size_col.pack_start(cell, True) - size_col.add_attribute(cell, 'text', 1) - self.treeview.append_column(size_col) - # Создаем и настраиваем колонку с именем файла - path_col = gtk.TreeViewColumn( _('Path') ) - cell2 = gtk.CellRendererText() - path_col.pack_start(cell2, True) - path_col.add_attribute(cell2, 'text', 0) - self.treeview.append_column(path_col) - - # Добавляем сортировку для колонок - self.treeview.set_search_column(1) - path_col.set_sort_column_id(0) - size_col.set_sort_column_id(2) - - # 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) - - ######### Упаковываем элементы ################ - # Создаем основной вертикальный контейнер - main_Vbox = gtk.VBox(False, 4) - - # Создаем вспомогательный горизонтальный контейнер для Надписи1, - # окошка ввода количества файлов и кнопки "Показать" - hbox1 = gtk.HBox(False, 5) - # Добавляем вышеперечисленные элементы во вспомогат. контейнер - hbox1.pack_start(label1, False, False, 5) - 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) - - # Добавляем элементы в основной контейнер - 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) - - self.add(main_Vbox) - - def run(self): - self.show_all() - gtk.main() - return 0 - - -### Main call ################################################################## - -if __name__ == '__main__': - gobject.set_application_name( _('FindIT') ) - app = MainWindow(575, 345, '.') - app.run() diff --git a/icons/findit_icon_128x128.png b/icons/findit_icon_128x128.png deleted file mode 100644 index c087dcec5bf34c6c510afff673b8e58bccbe773d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7297 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 b4siTGXE8Z=W>gHZ00000NkvXXu0mjf4&n}# diff --git a/icons/findit_icon_16x16.png b/icons/findit_icon_16x16.png deleted file mode 100644 index 5657ae997a2b54af4258a2060f4002a634cb5f98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 762 zcmV(M&<`W zQdXD+l9gZv20~OIbfE;5gb9)aB}GJ0Mj3b`idU9|Sk4bp=h8x_rlmDE-S&UG&|tnejhTtTiB_i1@^ z18~0eqPgA8kH+){V@_E`<*}>-hyU87rt0#PV`$I-UDE>SDud`!6ZH7ML} zq{fU8004-h)_AhaCJB1`xEgtl>#5_8mMV4<5v`UiSHPC3M9RgmfJmKQ@AY~hk<&55 z+4}-;wyAOarUk>!4K&(n!N`z+9r*;cjl%uLgrwxIP1ZO|--qtez zVrWt{f~}Dt5fiCczR*N55tWFNK*Z4S2qZ-OfPs)&(Fg`n64XMwwzfc#(5$76ly+(9 z&bIrQ;|HvkcH6Cq;Uwq7O#c7#yZ6qWdoD3E?nDT8gaSbNFJhPG*&dDRYY3n*3(E4f zNdL{JnE8B4kVJl`84GiC>~CV`#K;0fq*`tES57y!ONvDub1>^)d(m;?*wGmPZUYG( zI$W7Wm;UhLT$hG@^;u|Z&!phd4En0dL2u6+rY-UZ@?+yc0HF2!Zw%n_=$T^ndI^E- zp%)^2nIe28GUk++QT%=;ojo>)Q#$};=H?a10PyAEgS7R%DxCy@B~fBgl312aMm!!D z`g+5i%>3&p5J9>QAR7SUXgF>l{6iA$mjrmcA~NR^YO$~$L zp6(3*4gipcB{Oqps+mejbRHKmZB7hlYHwg|X^hXsM~a-ZX^yOhYNq;@2}Tlhx%FZU zzy)TGjJuA*LWtq#&l!FFG1OJ3f&f4-zY{dXR^8{%F+j|rD;;(ls%B0U0sz7dels|T zA3tF9M#mElMD;1zKEELdWQ4<^n1Th5OrjI}R9dc02m}D#cy>zy7bcG-A|j{BY=)v( z5bn7SS(d|Hy!eGALZ_`*U87O;!gL@Bxb+1^(rQg~Z&8fv8dK;3le2w;0F+SMWs2&N zNiNOP1{Yv}Bw~B5)3*0YU!;C6GpAhse}32`hkF%z(yUV1GddqUHbR%16UdhUAiuDP zYrbz3@b^v~in67T=Q<+qegvR073j9JZh*h76W~lbXyfy@jYg8D2l5N80H7!qOquHA z;iHM{LV@Qu%ZT1KNc|0F8L&iNm5nk_vK+Fs)UM+Hq zA1BsTG$&65Lvfqk(Us0K%)45_5|x?LH@*mVvpcZA*Q@|lFNH*tkl&Ne^Y2d6F4$1H zdDN~OBLe>1e4)I;Z_In*q9OKgn&hQlYFxB!aXO<2Uxo<}y{^&D;5OS!tEqg!vl?7RiMBOVhS;htoCN=MRVg`1gw~ zdLpSeckzNF4yxK^#?xel3iKU5;V};z|gM=aOK(Y)_oFk3jsiYcTrl9Ac|8m zyjcK%rr=osXaayf{;(Oq8aq{PQBYDLqu^x;g^#AH!H9^I?z-i0x^~(f&N9WKCjacb z+R=ZrFJ*f$)5DsI@tVl1p>`mFIZ)h6#xJL07*qoM6N<$f)ph^SpWb4 diff --git a/icons/findit_icon_32x32.png b/icons/findit_icon_32x32.png deleted file mode 100644 index 9e225994f547c66231a54a37168e23c3536b0870..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1626 zcmV-g2BrClP)gZVOs$=_r- z7(Qtz$}tqx1NClZ;^iBiSIC>sMS1brsBY>~wWpQ^rzpUo1N&svqYoy4lx11sa=VSo zmq_P#*D#6)u_s?DLOJ$v55IPhpDxpc$C+3{M6j{P<#n$PIce`W%l;A1Tdmi0Rf zDG}9B+hM1dZ%+5h+)<-E6PaFJ+uhIGOHv%~&PG5)Dl4k0-3V%o*vF3@h+BNd&SmBH ze0g%lMFRln((k?-=fi{9SmE{gYl7vK4uHPi2)&UWcMre3H_850Zf5;HAR8VK5xFP; z08w6f*rsP{7BW?(Ls#%fN4toK0#}B)y*i52hr==O+FN^)dpo0v)i1o7^!oe>kJlGJfB2KeShkD0Co%=$1-T$kR@`AImM;C? zhLK=JWD>~H-3L!4Js$6vhW+IGi}d|%v5=QL?hosoY2Seh5=pl%-w4jy0(s@$QTQwK z^2f(AZ4Pjxqdn2j8*2sYwt%d^EgfIlY#5N2R|}5z(|UWuIcAZ2YHF`;*tm6v2jH2f zens1XeTk8>eUTpBz4Lvys+IyL#`E&?VE;9&i(btd06>9kehQquVHT`VRa-vSU!8X+17wyNqshJZ^R4Zl&MFLmn!E$4A&3X%fec%+b~cXD~S z+UxWGW$DjWr1o}36T1(dPB3@_K9%jO=i~05x|vmY-b@C&lUiHgUKiIWaXlB6WO{CC<1iZvOUS#(ogK0zTRN_{o{6AN&+h2&l_`jyi8Ru z3c&R_xp}d@ozcYRt)WCk;7vOqjmPqNW&uONob4!P-=B(T*_u@h45P|PrNIP1b!{;@ ztj6$mb_x*_Ynz~k{&mrtp30d_n- zK-cM09^g=yF4-?4+wxhn(8aY&+}yC*#Y`qhTZa;Dw&`jSESE5DS{_f=IH{~UtJ84B zSF;A-w5(up$s_>U_P2^LCYeg5+5v{jw??3Gu*#mX)IsHJ!8IAUWelzEtO3}z9o@P8 zZ{+0W%a+aSaeKVm`+6f6T*0v3{W|b^KsMA_RNpM*e9=(w1w&v&0!eC;)^%BTMk4Yx zuh0LGF=j$4m2B;g#g?mTOJ+&%$+yOPm|O28_<1E3NpbRcindUPx#07*qoM6N<$g5lvF>i_@% diff --git a/icons/findit_icon_64x64.png b/icons/findit_icon_64x64.png deleted file mode 100644 index 3ab3f4da7efae7f1efefcbade4a3251a43bab945..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3373 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, YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2009-02-17 15:19+Russian Standard Time\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: ENCODING\n" -"Generated-By: pygettext.py 1.5\n" - - -#: findit.py:83 findit.py:231 -msgid "File properties" -msgstr "Свойства файла" - -#: findit.py:96 -msgid "Name" -msgstr "Имя" - -#: findit.py:99 findit.py:251 -msgid "Size" -msgstr "Размер" - -#: findit.py:102 -msgid "Opened" -msgstr "Открыт" - -#: findit.py:105 -msgid "Modified" -msgstr "Изменен" - -#: findit.py:131 -msgid "Error!" -msgstr "Ошибка!" - -#: findit.py:163 -msgid "Invalid directory" -msgstr "Каталог не существует" - -#: findit.py:178 -msgid "Please select file" -msgstr "Выберите файл в списке" - -#: findit.py:208 -msgid "Files quantity" -msgstr "Количество файлов" - -#: findit.py:221 -msgid "Go" -msgstr "Пуск" - -#: findit.py:225 -msgid "Stop" -msgstr "Стоп" - -#: findit.py:258 -msgid "Path" -msgstr "Путь" - -- 1.7.9.5