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