#!/usr/bin/env python
# -*-coding: utf-8 -*-
# vim: sw=4 ts=4 expandtab ai
-# main.py --search files -o=table -p ". 7"
+# main.py --search files -o outtable -p ". 3"
import sys
+from config import config
+from misc import _
+
__progname__ = 'FindIT'
__version__ = '0.2.0'
class Control(object):
def __init__(self):
+
+ self.abstrac = Abstraction()
+
if(len(sys.argv) > 1):
- Cli_Presentation()
+ Cli_Presentation(self.abstrac) ###
else:
- Gtk_Presentation()
+ Gtk_Presentation(self.abstrac) ###
#==============================================================================
class Abstraction(object):
- pass
+ def __init__(self):
+ self.progname = __progname__
+ self.version = __version__
+ self.authors = [ 'Alex Taker\n * Email: alteker@gmail.com\n',
+ 'Eugene Gagarin\n * Email: mosfet07@ya.ru\n',
+ 'Alexandr Popov\n * Email: popov2al@gmail.com' ]
+ self.comments = 'Tool for find some information on computer.'
+ self.license = \
+'This program is free software; you can redistribute it and/or\nmodify it \
+under the terms of the GNU General Public License\nas published by the Free \
+Software Foundation; either version 3\nof the License, or (at your option) \
+any later version.'
#==============================================================================
class Cli_Presentation(object):
- def __init__(self):
+ def __init__(self, abstrac):
from optparse import OptionParser
+ import sys
+
+ self.abstrac = abstrac
- parser = OptionParser()
+ parser = OptionParser(version=__progname__ + ' ' + __version__)
parser.add_option('--search', '-s', dest='search', type='string')
parser.add_option('--output', '-o', dest='output', type='string')
parser.add_option('--params', '-p', dest='params', type='string')
+ parser.add_option('--about', action='callback', callback=self._about)
+ parser.add_option('--license', action='callback', callback=self._license)
(options, args) = parser.parse_args()
- print options
- print args
- self.show_search_toplevel(options.search, options.output, options.params)
+ self.show_search_toplevel()
+
+ def _about(self, *a):
+ print self.abstrac.comments
+ sys.exit()
+
+ def _license(self, *a):
+ print self.abstrac.license
+ sys.exit()
- def show_search_toplevel(self, search, output, params):
- search_present = __import__(search + '.search', globals(), locals(), 'Cli_Presentation')
+ def show_search_toplevel(self):
+ search_module = __import__(config['search'] + '.search')
+ search_toplevel = search_module.search.Control('cli').run()
#==============================================================================
class Gtk_Presentation(object):
"""Main window class."""
- def __init__(self):
+ def __init__(self, abstrac):
import gtk
def _create_menu():
- """ Create main menu """
+ """Create main menu."""
menubar = gtk.MenuBar()
- fileitem = gtk.MenuItem( '_File' )
- viewitem = gtk.MenuItem( '_View' )
- helpitem = gtk.MenuItem( '_Help' )
+ fileitem = gtk.MenuItem(_('_File'))
+ viewitem = gtk.MenuItem(_('_View'))
+ helpitem = gtk.MenuItem(_('_Help'))
+ helpitem.connect('activate', about_dialog)
menubar.add(fileitem)
menubar.add(viewitem)
menubar.add(helpitem)
return menubar
- window = gtk.Window()
- window.set_default_size(560, 400)
- window.set_border_width(4)
- window.set_wmclass('MainWindow', 'FindIT')
- window.connect('destroy', gtk.main_quit)
+ def _create_toolbar():
+ """Create toolbar."""
+ toolbar = gtk.Toolbar()
+ filesearch_tbtn = gtk.RadioToolButton(None)
+ debsearch_tbtn = gtk.RadioToolButton(filesearch_tbtn)
- menu = _create_menu()
+ filesearch_tbtn.set_name('files')
+ debsearch_tbtn.set_name('debs')
+
+ filesearch_tbtn.set_label(_('Files search'))
+ debsearch_tbtn.set_label(_('Debs search'))
+
+ filesearch_tbtn.connect('clicked', self.show_search_toplevel, 'files')
+ debsearch_tbtn.connect('clicked', self.show_search_toplevel, 'debs')
- about_btn = gtk.Button('About')
- about_btn.set_size_request(-1, 30)
- about_btn.connect('clicked', self.about_dialog)
+ toolbar.insert(filesearch_tbtn, -1)
+ toolbar.insert(debsearch_tbtn, -1)
- quit_btn = gtk.Button('Exit')
- quit_btn.connect('clicked', gtk.main_quit)
+ search_tbtns = [filesearch_tbtn, debsearch_tbtn]
- file_btn = gtk.Button('Files search')
- file_btn.connect('clicked', self.show_search_toplevel, 'files')
+ # Activate radio tool button
+ for btn in search_tbtns:
+ if btn.get_name() == config['search']:
+ btn.set_active(True)
- deb_btn = gtk.Button('Debs search')
- deb_btn.connect('clicked', self.show_search_toplevel, 'debs')
+ return toolbar
- toolbar = gtk.HBox(True, 4)
- toolbar.pack_start(file_btn)
- toolbar.pack_start(deb_btn)
- toolbar.pack_start(about_btn)
- toolbar.pack_start(quit_btn)
+ def about_dialog(widget):
+ """About dialog window."""
+ dialog = gtk.AboutDialog()
+ dialog.set_name(abstrac.progname)
+ dialog.set_version(abstrac.version)
+ dialog.set_authors(abstrac.authors)
+ dialog.set_comments(abstrac.comments)
+ dialog.set_license(abstrac.license)
+ dialog.show_all()
+ dialog.run()
+ dialog.destroy()
+
+ window = gtk.Window()
+ window.set_default_size(600, 400)
+ window.set_geometry_hints(None, 600, 400)
+ window.set_border_width(4)
+ window.set_wmclass('MainWindow', 'FindIT')
+ window.connect('destroy', gtk.main_quit)
+
+ menu = _create_menu()
+ toolbar = _create_toolbar()
self.vbox = gtk.VBox(False, 4)
self.vbox.pack_start(menu, False, False, 0)
self.vbox.pack_start(toolbar, False, False, 0)
- self.show_search_toplevel(None, 'files') ###
+ self.show_search_toplevel(None, config['search'])
window.add(self.vbox)
window.show_all()
gtk.main()
- def about_dialog(self, btn):
- from about import About
- About()
-
#=== Search selecting =====================================================
def show_search_toplevel(self, btn, searchtype):
print 'Entering <' + searchtype + '> search mode...'
-# search_present = __import__(searchtype + '.search')
-# toplevel = search_present.search.Gtk_Presentation().get_toplevel()
- search_control = __import__(searchtype + '.search')
- toplevel = search_control.search.Control().run()
+ search_module = __import__(searchtype + '.search')
+ search_toplevel = search_module.search.Control('gtk').run()
try:
self.vbox.remove(self.vbox.get_children()[2])
except:
pass
- self.vbox.pack_start(toplevel, True, True, 0)
+ self.vbox.pack_start(search_toplevel, True, True, 0)
+ search_toplevel.show_all()
+
+#==============================================================================
+
+class Hildon_Presentation(object):
+ """Main window class."""
+
+ def __init__(self):
+ import gtk
+ import hildon
+
#==============================================================================