This repository has been archived by the owner on Feb 3, 2020. It is now read-only.
/
app.py
61 lines (48 loc) · 2.16 KB
/
app.py
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
import gtk
from uxie.actions import Activator, ContextActivator
from uxie.feedback import TextFeedback, FeedbackManager, FeedbackHelper
from uxie.plugins import Manager as PluginManager
import filelist
import clipboard
import fsutils
class App(object):
def __init__(self):
self.wg = gtk.WindowGroup()
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_default_size(700, 415)
self.window.connect('destroy', self.quit)
self.wg.add_window(self.window)
self.clipboard = clipboard.Clipboard()
self.window.feedback = self.feedback = FeedbackManager()
self.activator = Activator()
self.activator.bind_accel('application/quit', 'Quit', '<ctrl>q', self.quit)
self.activator.bind_accel('window/close', 'Close window', '<ctrl>w', self.quit)
self.activator.attach(self.window)
self.context_activator = ContextActivator()
self.context_activator.add_context('filelist', None, lambda: self.filelist)
self.context_activator.map(None, 'copy', '<ctrl>c')
self.context_activator.map(None, 'copy', '<ctrl>Insert')
self.context_activator.map(None, 'cut', '<ctrl>x')
self.context_activator.map(None, 'cut', '<shift>Delete')
self.context_activator.map(None, 'paste', '<ctrl>v')
self.context_activator.map(None, 'paste', '<shift>Insert')
self.context_activator.map(None, 'delete', 'Delete')
self.pm = PluginManager(self.context_activator)
filelist.init(self.context_activator)
self.init_plugins(self.pm)
self.context_activator.attach(self.window)
self.executor = fsutils.Executor()
self.filelist = filelist.FileList(self.clipboard, self.executor)
self.window.add(self.filelist.widget)
self.pm.ready('filelist', self.filelist)
def init_plugins(self, pm):
from plugins import sync_names, places, info, history
pm.add_plugin(sync_names)
pm.add_plugin(places)
pm.add_plugin(info)
pm.add_plugin(history)
def open(self, uri):
self.window.show_all()
self.filelist.set_uri(uri)
def quit(self, *args):
gtk.main_quit()