#!/usr/bin/env python
# -*-coding: utf-8 -*-
# vim: sw=4 ts=4 expandtab ai
-# main.py --search files -o outtable -p ". 3"
+# main.py --search files -o out_table -p ". 3"
-import sys
+import sys ###
-from config import Config
+from config import config
from misc import _
__progname__ = 'FindIT'
class Control(object):
def __init__(self):
- config = Config ###()
-
self.abstrac = Abstraction()
- if(len(sys.argv) > 1):
- Cli_Presentation(self.abstrac) ###
+ if(len(sys.argv) > 1): ###
+ self.present = Cli_Presentation(self.abstrac)
else:
- Gtk_Presentation(config, self.abstrac) ###
+ self.present = Gtk_Presentation(self.abstrac)
+
+ def run(self):
+ self.present.run()
#==============================================================================
parser.add_option('--license', action='callback', callback=self._license)
(options, args) = parser.parse_args()
- config = {}
- config['search'] = options.search
- config['outtype'] = options.output
- config['ignore_dirs'] = ['/dev', '/proc', '/sys', '/mnt']
- config['start_path'], config['count'] = options.params.split()
+ self.search = options.search
- self.show_search_toplevel(config)
+ self.options = {}
+ self.options['outtype'] = options.output
+ self.options['ignore_dirs'] = config['files']['ignore_dirs']
+
+ self.params = options.params.split()
+ self.options['start_path'] = self.params[0]
+ self.options['count'] = self.params[1]
+ try:
+ self.options['file_filter'] = self.params[2]
+ except IndexError:
+ self.options['file_filter'] = '*.*'
def _about(self, *a):
print self.abstrac.comments
print self.abstrac.license
sys.exit()
- def show_search_toplevel(self, config):
- search_module = __import__(config['search'] + '.search')
- search_toplevel = search_module.search.Control('cli', config).run()
+ def show_search_toplevel(self):
+ search_module = __import__(self.search + '.search')
+ search_toplevel = search_module.search.Control('Cli', self.options).run()
+
+ def run(self):
+ self.show_search_toplevel()
#==============================================================================
class Gtk_Presentation(object):
"""Main window class."""
- def __init__(self, config, abstrac):
+ def _create_menu(self):
+ """Create main menu."""
+ menubar = gtk.MenuBar()
+ fileitem = gtk.MenuItem(_('_File'))
+ viewitem = gtk.MenuItem(_('_View'))
+ helpitem = gtk.MenuItem(_('_Help'))
+ helpitem.connect('activate', self.about_dialog)
+ menubar.add(fileitem)
+ menubar.add(viewitem)
+ menubar.add(helpitem)
+ return menubar
+
+ def _create_toolbar(self):
+ """Create toolbar."""
+ toolbar = gtk.Toolbar()
+ filesearch_tbtn = gtk.RadioToolButton(None)
+ debsearch_tbtn = gtk.RadioToolButton(filesearch_tbtn)
+
+ 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')
+
+ toolbar.insert(filesearch_tbtn, -1)
+ toolbar.insert(debsearch_tbtn, -1)
+
+ search_tbtns = [filesearch_tbtn, debsearch_tbtn]
+
+ # Activate radio tool button
+ for btn in search_tbtns:
+ if btn.get_name() == config['search']:
+ btn.set_active(True)
+
+ return toolbar
+
+ def about_dialog(self, widget):
+ """About dialog window."""
+ dialog = gtk.AboutDialog()
+ dialog.set_name(self.abstrac.progname)
+ dialog.set_version(self.abstrac.version)
+ dialog.set_authors(self.abstrac.authors)
+ dialog.set_comments(self.abstrac.comments)
+ dialog.set_license(self.abstrac.license)
+ dialog.show_all()
+ dialog.run()
+ dialog.destroy()
+
+ def __init__(self, abstrac):
import gtk
+ global gtk # for run()
+ import gobject
+ gobject.set_application_name(__progname__)
+
+ self.abstrac = abstrac
+
+ self.window = gtk.Window()
+ self.window.set_default_size(600, 400)
+ self.window.set_geometry_hints(None, 600, 400)
+ self.window.set_wmclass('MainWindow', 'FindIT')
+ self.window.connect('destroy', gtk.main_quit)
- self.config = config
-
- def _create_menu():
- """Create main menu."""
- menubar = gtk.MenuBar()
- 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
-
- def _create_toolbar():
- """Create toolbar."""
- toolbar = gtk.Toolbar()
- filesearch_tbtn = gtk.RadioToolButton(None)
- debsearch_tbtn = gtk.RadioToolButton(filesearch_tbtn)
-
- 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')
-
- toolbar.insert(filesearch_tbtn, -1)
- toolbar.insert(debsearch_tbtn, -1)
-
- search_tbtns = [filesearch_tbtn, debsearch_tbtn]
-
- # Activate radio tool button
- for btn in search_tbtns:
- if btn.get_name() == self.config['search']:
- btn.set_active(True)
-
- return toolbar
-
- 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)
+ menu = self._create_menu()
+ toolbar = self._create_toolbar()
+
+ self.vbox = gtk.VBox(False, 0)
self.vbox.pack_start(menu, False, False, 0)
self.vbox.pack_start(toolbar, False, False, 0)
- self.show_search_toplevel(None, self.config['search'])
+ self.show_search_toplevel(None, config['search'])
- window.add(self.vbox)
- window.show_all()
- gtk.main()
+ self.window.add(self.vbox)
#=== Search selecting =====================================================
def show_search_toplevel(self, btn, searchtype):
- print 'Entering <' + searchtype + '> search mode...'
-
search_module = __import__(searchtype + '.search')
- search_toplevel = search_module.search.Control('gtk', self.config).run()
-
+ search = search_module.search.Control('Gtk', None)
+ search_toplevel = search.toplevel
try:
self.vbox.remove(self.vbox.get_children()[2])
except:
self.vbox.pack_start(search_toplevel, True, True, 0)
search_toplevel.show_all()
+ def run(self):
+ self.window.show_all()
+ gtk.main()
+
#==============================================================================
class Hildon_Presentation(object):
"""Main window class."""
- def __init__(self, config):
- import gtk
- import hildon
-
- self.config = config
+ def __init__(self):
+ pass
#==============================================================================
if __name__ == '__main__':
- Control()
+ Control().run()