~facundo/encuentro/trunk

« back to all changes in this revision

Viewing changes to encuentro/main.py

  • Committer: Facundo Batista
  • Date: 2013-04-16 01:58:03 UTC
  • mfrom: (151.2.7 trunk)
  • Revision ID: facundo@taniquetil.com.ar-20130416015803-btbp3sd6dn5sjyds
Merged trunk back in.

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
 
17
17
"""Main entry point, and initialization of everything we can."""
18
18
 
 
19
import os
19
20
import sys
20
21
 
21
 
from encuentro import logger
 
22
from encuentro import logger, platform
 
23
from encuentro.config import config
22
24
 
23
25
# we put here EpisodeData only for legacy reasons: unpickle of old pickles
24
26
# will try to load EpisodeData from this namespace
 
27
# pylint: disable=W0611
25
28
from encuentro.data import EpisodeData
26
29
 
27
30
import pynotify
28
31
 
29
 
from PyQt4.QtGui import QApplication
 
32
from PyQt4.QtGui import QApplication, QIcon
30
33
 
31
34
 
32
35
def start(version):
35
38
    verbose = len(sys.argv) > 1 and sys.argv[1] == '-v'
36
39
    logger.set_up(verbose)
37
40
 
 
41
    # set up config
 
42
    fname = os.path.join(platform.config_dir, 'encuentro.conf')
 
43
    print "Using configuration file:", repr(fname)
 
44
    config.init(fname)
 
45
 
38
46
    # the order of the lines hereafter are very precise, don't mess with them
39
47
    app = QApplication(sys.argv)
 
48
    icon = QIcon(os.path.join(platform.BASEDIR, "encuentro",
 
49
                              "logos", "icon-192.png"))
 
50
    app.setWindowIcon(icon)
 
51
    # qt4reactor was path-mangled to be available; pylint: disable=F0401
40
52
    import qt4reactor
41
53
    qt4reactor.install()
42
54
    from encuentro.ui.main import MainUI
43
55
    from twisted.internet import reactor
44
56
 
45
 
    def quit():
 
57
    def _quit():
46
58
        """Quit."""
47
 
        # FIXME: if twisted is used (try reloading episodes), this doesn't
48
 
        # really terminates the program, :/
49
59
        app.quit()
 
60
        if reactor.threadpool is not None:
 
61
            reactor.threadpool.stop()
50
62
        reactor.stop()
51
63
 
52
 
    reactor.callWhenRunning(MainUI, version, quit)
 
64
    reactor.callWhenRunning(MainUI, version, _quit)
53
65
    reactor.run()