aboutsummaryrefslogtreecommitdiffstats
path: root/lvc/widgets/gtk/__init__.py
blob: 6ce69d87b6e530dba5931fe194eec579eb7d02a5 (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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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 lvc.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) is not None


def check_xorg():
    return os.environ.get("XDG_SESSION_ID", None) is not None


def open_file_linux(filename):
    if check_kde():
        os.spawnlp(os.P_NOWAIT, "kfmclient", "kfmclient",
                   "exec", "file://" + filename)
    elif check_xorg():
        os.spawnlp(os.P_NOWAIT, "xdg-open", "xdg-open", filename)
    else:
        os.spawnlp(os.P_NOWAIT, "gnome-open", "gnome-open", filename)

    """ kfmclient is part of konqueror """


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


def get_conversion_directory_windows():
    from lvc.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