a7de78853fa2244b193f12438776c7dfdf291554
[findit] / src / config.py
1 #!/usr/bin/env python
2 # -*-coding: utf-8 -*-
3 # vim: sw=4 ts=4 expandtab ai
4
5 import gtk
6 from configobj import ConfigObj
7 from validate import Validator
8
9 class Config_Control(object):
10
11     def __init__(self):
12         self.config = Config_Abstraction('findit.ini', 'config_spec.ini')
13         #conf_ui = Config_Presentation()
14     
15     def get(self, param):
16         return self.config.get_val(param)
17
18 class Config_Abstraction(object):
19
20     def __init__(self, config_file, config_spec_file):
21         self.load_config(config_file, config_spec_file)
22
23     def get_val(self, param):
24         return self.conf[param]
25
26     def set_val(self, param, value):
27         self.conf[param] = value
28
29     def load_config(self, config_file, config_spec_file):
30         self.conf = ConfigObj(config_file, configspec=config_spec_file)
31         val = Validator()
32         test = self.conf.validate(val)
33         if not test:
34             print 'Failed Load Config File'
35
36     def save_config(self, config_file=None):
37         if config_file:
38             self.conf.filename = config_file
39         self.conf.write()
40
41 class Config_Presentation(gtk.Window):
42     def __init__(self):
43         gtk.Window.__init__(self)
44         self.set_border_width(4)
45         self.connect('delete_event', gtk.main_quit)
46
47     def run(self):
48         self.show_all()
49         gtk.main()
50
51
52 if __name__ == '__main__':
53     cfg = Config_Control()
54     #cfg.config.set_val('default_pkg_count',15)
55     print cfg.config.conf
56     print cfg.get('window_width'), type(cfg.get('window_width'))
57     cfg.config.save_config()