aboutsummaryrefslogtreecommitdiffstats
path: root/mvc/widgets/gtk/__init__.py
blob: 8e58700cbb8e0184cc28d671cc616d291a380d62 (plain)
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
import os
import sys
import gtk
import gobject

def initialize(app):
    from gtkmenus import MainWindowMenuBar
    app.menubar = MainWindowMenuBar()
    app.startup()
    app.run()

def attach_menubar():
    from mvc.widgets import app
    app.widgetapp.vbox.pack_start(app.widgetapp.menubar)

def mainloop_start():
    gobject.threads_init()
    gtk.main()

def mainloop_stop():
    gtk.main_quit()

def idle_add(callback, periodic=None):
    if periodic is not None and periodic < 0:
        raise ValueError('periodic cannot be negative')
    def wrapper():
        callback()
        return periodic is not None
    delay = periodic
    if delay is not None:
        delay *= 1000    # milliseconds
    else:
        delay = 0
    return gobject.timeout_add(delay, wrapper)

def idle_remove(id_):
    gobject.source_remove(id_)

def check_kde():
    return os.environ.get("KDE_FULL_SESSION", None) != None

def open_file_linux(filename):
    if check_kde():
        os.spawnlp(os.P_NOWAIT, "kfmclient", "kfmclient", # kfmclient is part of konqueror
                   "exec", "file://" + filename)
    else:
        os.spawnlp(os.P_NOWAIT, "gnome-open", "gnome-open", filename)

def reveal_file(filename):
    if hasattr(os, 'startfile'): # Windows
        os.startfile(os.path.dirname(filename))
    else:
        open_file_linux(filename)

def get_conversion_directory_windows():
    from mvc.windows import specialfolders
    return specialfolders.base_movies_directory

def get_conversion_directory_linux():
    return os.path.expanduser('~')

if sys.platform == 'win32':   
    get_conversion_directory = get_conversion_directory_windows
else:
    get_conversion_directory = get_conversion_directory_linux