mirror of
https://github.com/gryf/pygtktalog.git
synced 2025-12-17 11:30:19 +01:00
76 lines
1.9 KiB
Python
76 lines
1.9 KiB
Python
"""
|
|
Project: pyGTKtalog
|
|
Description: Application main launch file.
|
|
Type: core
|
|
Author: Roman 'gryf' Dobosz, gryf73@gmail.com
|
|
Created: 2007-05-01
|
|
"""
|
|
import sys
|
|
import os
|
|
import locale
|
|
import gettext
|
|
|
|
import gtk
|
|
import pygtk
|
|
pygtk.require("2.0")
|
|
|
|
import gtkmvc
|
|
gtkmvc.require("1.2.2")
|
|
|
|
from src.lib.globs import TOPDIR
|
|
from src.lib.globs import APPL_SHORT_NAME
|
|
sys.path = [os.path.join(TOPDIR, "src")] + sys.path
|
|
from models.m_config import ConfigModel
|
|
from models.m_main import MainModel
|
|
from ctrls.c_main import MainController
|
|
from views.v_main import MainView
|
|
|
|
def check_requirements():
|
|
"""Checks versions and other requirements"""
|
|
|
|
conf = ConfigModel()
|
|
conf.load()
|
|
|
|
if conf.confd['thumbs'] and conf.confd['retrive']:
|
|
try:
|
|
import Image
|
|
except ImportError:
|
|
print _("WARNING: You'll need Python Imaging Library (PIL), if "
|
|
"you want to make thumbnails!")
|
|
raise
|
|
return
|
|
|
|
def run():
|
|
"""Create model, controller and view and launch it."""
|
|
# Directory from where pygtkatalog was invoced. We need it for calculate
|
|
# path for argument (catalog file)
|
|
execution_dir = os.path.abspath(os.path.curdir)
|
|
|
|
# Directory, where this files lies. We need it to setup private source
|
|
# paths
|
|
libraries_dir = os.path.dirname(__file__)
|
|
if libraries_dir:
|
|
os.chdir(libraries_dir)
|
|
|
|
# Setup i18n
|
|
locale.setlocale(locale.LC_ALL, '')
|
|
gettext.install(APPL_SHORT_NAME, 'locale', unicode=True)
|
|
|
|
check_requirements()
|
|
|
|
model = MainModel()
|
|
if len(sys.argv) > 1:
|
|
model.open(os.path.join(execution_dir, sys.argv[1]))
|
|
controler = MainController(model)
|
|
view = MainView(controler)
|
|
|
|
try:
|
|
gtk.main()
|
|
except KeyboardInterrupt:
|
|
model.config.save()
|
|
model.cleanup()
|
|
gtk.main_quit
|
|
|
|
if __name__ == "__main__":
|
|
run()
|