File: App.py

package info (click to toggle)
lodju 2.2-1
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 456 kB
  • ctags: 814
  • sloc: python: 4,698; ansic: 139; makefile: 64; sh: 21
file content (77 lines) | stat: -rw-r--r-- 1,945 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import gconf
import gtk


import MetaData
import TrashCan
import Window


class Model:

    def __init__(self):
	self.gconf = gconf.client_get_default()
	self.gconf.add_dir("/apps/Lodju", gconf.CLIENT_PRELOAD_NONE)
	self.windows = []
	self.trash = TrashCan.View(self)
	self.clipboard = None

    def quit(self):
	self.trash.model.doc.storage.discard()
    	gtk.main_quit()

    def get_main_window_default_size(self):
    	width = self.gconf.get_int("/apps/Lodju/saved-width")
    	height = self.gconf.get_int("/apps/Lodju/saved-height")
	return width, height

    def save_main_window_default_size(self, width, height):
    	self.gconf.set_int("/apps/Lodju/saved-width", width)
    	self.gconf.set_int("/apps/Lodju/saved-height", height)

    def get_hpaned_default_position(self):
    	return self.gconf.get_int("/apps/Lodju/saved-hpaned-position")

    def save_hpaned_default_position(self, position):
    	self.gconf.set_int("/apps/Lodju/saved-hpaned-position", position)

    def get_vpaned_default_position(self):
    	return self.gconf.get_int("/apps/Lodju/saved-vpaned-position")

    def save_vpaned_default_position(self, position):
    	self.gconf.set_int("/apps/Lodju/saved-vpaned-position", position)

    def new_window(self):
    	Window.View(self, MetaData.Document())

    def add_window(self, window):
    	self.windows.append(window)

    def remove_window(self, window):
    	self.windows.remove(window)
	if not self.windows:
	    self.quit()

    def unsaved_changes(self):
    	return map(lambda window: window.model.doc,
	    	   filter(lambda w: w.model.doc.is_dirty(), self.windows))

    def set_clipboard(self, value):
    	self.clipboard = value

    def get_clipboard(self):
    	return self.clipboard


class View:

    def __init__(self):
    	self.model = Model()
	self.controller = Controller(self.model, self)


class Controller:

    def __init__(self, model, view):
    	self.model = model
	self.view = view