Removed unnecessary comments
[findit] / src / main.py
1 #!/usr/bin/env python
2 # -*-coding: utf-8 -*-
3 # vim: sw=4 ts=4 expandtab ai
4 # main.py --search files -o outtable -p ". 3"
5
6 import sys
7
8 from config import Config
9
10 __progname__ = 'FindIT'
11 __version__ = '0.2.0'
12
13 #==============================================================================
14
15 class Control(object):
16     def __init__(self):
17         config = Config ###()
18
19         self.abstrac = Abstraction()
20
21         if(len(sys.argv) > 1):
22             Cli_Presentation()  ###
23         else:
24             Gtk_Presentation(config, self.abstrac)  ###
25
26 #==============================================================================
27
28 class Abstraction(object):
29     pass
30
31 #==============================================================================
32
33 class Cli_Presentation(object):
34
35     def __init__(self):
36         from optparse import OptionParser
37
38         parser = OptionParser()
39         parser.add_option('--search', '-s', dest='search', type='string')
40         parser.add_option('--output', '-o', dest='output', type='string')
41         parser.add_option('--params', '-p', dest='params', type='string')
42         (options, args) = parser.parse_args()
43 #         print options
44 #         print args
45
46         config = {}
47         config['search'] = options.search
48         config['outtype'] = options.output
49         config['ignore_dirs'] = ['/dev', '/proc', '/sys', '/mnt']
50         config['start_path'] = options.params.split(' ')[0]
51         config['count'] = options.params.split(' ')[1]
52
53         self.show_search_toplevel(config)
54
55     def show_search_toplevel(self, config):
56         search_module = __import__(config['search'] + '.search')
57         search_toplevel = search_module.search.Control('cli', config).run()
58
59 #==============================================================================
60
61 class Gtk_Presentation(object):
62     """Main window class."""
63
64     def __init__(self, config, abstrac):
65         import gtk
66
67         self.config = config
68
69         def _create_menu():
70             """Create main menu."""
71             menubar = gtk.MenuBar()
72             fileitem = gtk.MenuItem( '_File' )
73             viewitem = gtk.MenuItem( '_View' )
74             helpitem = gtk.MenuItem( '_Help' )
75             menubar.add(fileitem)
76             menubar.add(viewitem)
77             menubar.add(helpitem)
78             return menubar
79
80         def _create_toolbar():
81             """Create toolbar."""
82             toolbar = gtk.Toolbar()
83             filesearch_tbtn = gtk.RadioToolButton(None)
84             debsearch_tbtn = gtk.RadioToolButton(filesearch_tbtn)
85
86             filesearch_tbtn.set_label('Files search')
87             debsearch_tbtn.set_label('Debs search')
88
89             filesearch_tbtn.connect('clicked', self.show_search_toplevel, 'files')
90             debsearch_tbtn.connect('clicked', self.show_search_toplevel, 'debs')
91
92             toolbar.insert(filesearch_tbtn, -1)
93             toolbar.insert(debsearch_tbtn, -1)
94
95             return toolbar
96
97         window = gtk.Window()
98         window.set_default_size(560, 400)
99         window.set_border_width(4)
100         window.set_wmclass('MainWindow', 'FindIT')
101         window.connect('destroy', gtk.main_quit)
102
103         menu = _create_menu()
104         toolbar = _create_toolbar()
105
106         self.vbox = gtk.VBox(False, 4)
107         self.vbox.pack_start(menu, False, False, 0)
108         self.vbox.pack_start(toolbar, False, False, 0)
109         self.show_search_toplevel(None, self.config['search'])
110
111         window.add(self.vbox)
112         window.show_all()
113         gtk.main()
114
115     def about_dialog(self, btn):
116         from about import About
117         About()
118
119     #=== Search selecting =====================================================
120     def show_search_toplevel(self, btn, searchtype):
121         print 'Entering <' + searchtype + '> search mode...'
122
123         search_module = __import__(searchtype + '.search')
124         search_toplevel = search_module.search.Control('gtk', self.config).run()
125
126         try:
127             self.vbox.remove(self.vbox.get_children()[2])
128         except:
129             pass
130         self.vbox.pack_start(search_toplevel, True, True, 0)
131         search_toplevel.show_all()
132
133 #==============================================================================
134
135 if __name__ == '__main__':
136     Control()