flowblok / Presenter (http://flowblok.selfip.net:8001/trac/presenter)

The presentation tool for control freaks.

Clone this repository (size: 380.5 KB): HTTPS / SSH
$ hg clone http://bitbucket.org/flowblok/presenter/
commit 195: ec402216ed73
parent 194: 4d5e9a0fcd78
branch: default
Started on image folder handler.
Peter Ward / flowblok
7 weeks ago

Changed (Δ1.2 KB):

raw changeset »

presenter/handlers/__init__.py (6 lines added, 2 lines removed)

presenter/handlers/base.py (1 lines added, 0 lines removed)

presenter/interface.glade (8 lines added, 0 lines removed)

presenter/utils/__init__.py (21 lines added, 2 lines removed)

Up to file-list presenter/handlers/__init__.py:

@@ -4,6 +4,8 @@ Package for file handlers for presenter.
4
4
5
5
from collections import defaultdict
6
6
7
from presenter.handlers.base import FileHandler
8
7
9
FILE_HANDLERS = {}
8
10
MIME_HANDLERS = defaultdict(list)
9
11
@@ -14,6 +16,7 @@ handlers = {
14
16
    'lyrics_handler': 'LyricsFileHandler',
15
17
    'message_handler': 'MessageHandler',
16
18
    'image_handler': 'ImageFileHandler',
19
    'image_folder_handler': 'ImageFolderHandler',
17
20
}
18
21
19
22
for module, handler_name in handlers.iteritems():
@@ -28,6 +31,7 @@ for module, handler_name in handlers.ite
28
31
        handler = getattr(items, handler_name)
29
32
30
33
        FILE_HANDLERS[handler.handler_name] = handler
31
        for mime in handler.mime_types:
32
            MIME_HANDLERS[mime].append(handler)
34
        if isinstance(handler, FileHandler):
35
            for mime in handler.mime_types:
36
                MIME_HANDLERS[mime].append(handler)
33
37

Up to file-list presenter/handlers/base.py:

@@ -63,6 +63,7 @@ class Handler(gobject.GObject):
63
63
            attrs.update(properties)
64
64
65
65
            cls = gobject.GObjectMeta.__new__(meta, name, bases, attrs)
66
            gobject.type_register(cls)
66
67
67
68
            for key in properties:
68
69
                # create signals

Up to file-list presenter/interface.glade:

273
273
                                  </object>
274
274
                                </child>
275
275
                                <child>
276
                                  <object class="GtkMenuItem" id="menuitem_image_folder">
277
                                    <property name="visible">True</property>
278
                                    <property name="label" translatable="yes">Image Folder</property>
279
                                    <property name="use_underline">True</property>
280
                                    <signal name="activate" handler="on_handler_add"/>
281
                                  </object>
282
                                </child>
283
                                <child>
276
284
                                  <object class="GtkMenuItem" id="menuitem_video">
277
285
                                    <property name="visible">True</property>
278
286
                                    <property name="label" translatable="yes">Video</property>

Up to file-list presenter/utils/__init__.py:

@@ -2,6 +2,25 @@ import gtk
2
2
import gobject
3
3
import pango
4
4
5
def open_folder(title=None):
6
    dialog = gtk.FileChooserDialog(
7
        action=gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER,
8
        buttons=(
9
            gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
10
            gtk.STOCK_OPEN, gtk.RESPONSE_OK
11
        )
12
    )
13
14
    if title:
15
        dialog.set_title(title)
16
17
    # Run the dialog.
18
    uri = None
19
    if dialog.run() == gtk.RESPONSE_OK:
20
        uri = dialog.get_uri()
21
    dialog.destroy()
22
    return uri
23
5
24
def open_file(title=None, filters=None):
6
25
    if filters is None:
7
26
        filters = ()
@@ -29,10 +48,10 @@ def open_file(title=None, filters=None):
29
48
30
49
def save_file(title=None):
31
50
    dialog = gtk.FileChooserDialog(
32
        action=gtk.FILE_CHOOSER_ACTION_OPEN,
51
        action=gtk.FILE_CHOOSER_ACTION_SAVE,
33
52
        buttons=(
34
53
            gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL,
35
            gtk.STOCK_OPEN, gtk.RESPONSE_OK
54
            gtk.STOCK_SAVE, gtk.RESPONSE_OK
36
55
        )
37
56
    )
38
57
    if title: