Moved configuration to an independent class

Added file properties interface UI
This commit is contained in:
Sergio Costas 2014-07-13 16:28:00 +02:00
parent a60221b57d
commit d960322a5c
10 changed files with 2414 additions and 1280 deletions

View file

@ -22,9 +22,9 @@ class add_files:
last_path = None
def __init__(self,paths):
def __init__(self,config):
self.paths = paths
self.config = config
self.show_title_options = True
def set_type(self,disc_type):
@ -37,9 +37,9 @@ class add_files:
def run(self):
builder = Gtk.Builder()
builder.set_translation_domain("devede_ng")
builder.set_translation_domain(self.config.gettext_domain)
builder.add_from_file(os.path.join(self.paths.glade,"wadd_files.ui"))
builder.add_from_file(os.path.join(self.config.glade,"wadd_files.ui"))
builder.connect_signals(self)
wadd_files = builder.get_object("add_files")
self.wfile_chooser = builder.get_object("filechooserwidget1")

View file

@ -20,16 +20,16 @@ import os
class ask_window:
def __init__(self,paths):
def __init__(self,config):
self.paths = paths
self.config = config
def run(self,text,title):
builder = Gtk.Builder()
builder.set_translation_domain("devede_ng")
builder.set_translation_domain(self.config.gettext_domain)
builder.add_from_file(os.path.join(self.paths.glade,"wask.ui"))
builder.add_from_file(os.path.join(self.config.glade,"wask.ui"))
builder.connect_signals(self)
wask_window = builder.get_object("dialog_ask")
wask_window.set_title(title)

View file

@ -0,0 +1,61 @@
#!/usr/bin/env python3
# Copyright 2014 (C) Raster Software Vigo (Sergio Costas)
#
# This file is part of DeVeDe-NG
#
# DeVeDe-NG is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# DeVeDe-NG is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>
import os
class configuration:
def __init__(self):
self.error = False
is_local = None
try:
os.stat("/usr/share/devede_ng/wselect_disk.ui")
is_local = False
except:
pass
if is_local == None:
try:
os.stat("/usr/local/share/devede_ng/wselect_disk.ui")
is_local = True
except:
pass
if is_local == None:
self.error = True
else:
if (is_local):
# locales must be always at /usr/share/locale because Gtk.Builder always search there
self.share_locale="/usr/share/locale"
self.glade="/usr/local/share/devede_ng"
self.font_path="/usr/local/share/devede_ng"
self.pic_path="/usr/local/share/devede_ng"
self.other_path="/usr/local/share/devede_ng"
self.help_path="/usr/local/share/doc/devede_ng"
else:
self.share_locale="/usr/share/locale"
self.glade="/usr/share/devede_ng"
self.font_path="/usr/share/devede_ng"
self.pic_path="/usr/share/devede_ng"
self.other_path="/usr/share/devede_ng"
self.help_path="/usr/share/doc/devede_ng"
self.gettext_domain = "devede_ng"

View file

@ -21,10 +21,10 @@ class file_movie(GObject.GObject):
counter2 = 0
def __init__(self,paths,file_name):
def __init__(self,config,file_name):
GObject.GObject.__init__(self)
self.paths = paths
self.config = config
self.file_name = file_name
def set_type(self,disc_type):

View file

@ -25,9 +25,9 @@ import devede.add_files
class devede_project:
def __init__(self,paths):
def __init__(self,config):
self.paths = paths
self.config = config
self.destroy_all()
@ -68,9 +68,9 @@ class devede_project:
return
builder = Gtk.Builder()
builder.set_translation_domain("devede_ng")
builder.set_translation_domain(self.config.gettext_domain)
builder.add_from_file(os.path.join(self.paths.glade,"wselect_disk.ui"))
builder.add_from_file(os.path.join(self.config.glade,"wselect_disk.ui"))
builder.connect_signals(self)
self.wask_window = builder.get_object("wselect_disk")
self.wask_window.show_all()
@ -239,9 +239,9 @@ class devede_project:
self.current_title = None
builder = Gtk.Builder()
builder.set_translation_domain("devede_ng")
builder.set_translation_domain(self.config.gettext_domain)
builder.add_from_file(os.path.join(self.paths.glade,"wmain.ui"))
builder.add_from_file(os.path.join(self.config.glade,"wmain.ui"))
builder.connect_signals(self)
# Interface widgets
@ -280,7 +280,7 @@ class devede_project:
def on_wmain_window_delete_event(self,b,e=None):
ask = devede.ask.ask_window(self.paths)
ask = devede.ask.ask_window(self.config)
if (ask.run(_("Abort the current DVD and exit?"),_("Exit DeVeDe"))):
Gtk.main_quit()
return True
@ -290,7 +290,7 @@ class devede_project:
self.get_current_title()
new_title = devede.title.title(self.paths,self.wfiles,self.wliststore_files)
new_title = devede.title.title(self.config,self.wfiles,self.wliststore_files)
new_title.set_type(self.disc_type)
self.wliststore_titles.append([new_title.title_name, new_title])
self.set_interface_status(None)
@ -301,20 +301,20 @@ class devede_project:
if (element == None):
return
ask_files = devede.add_files.add_files(self.paths)
ask_files = devede.add_files.add_files(self.config)
ask_files.set_type(self.disc_type)
if (ask_files.run()):
for efile in ask_files.files:
new_file = devede.file_movie.file_movie(self.paths,efile)
new_file = devede.file_movie.file_movie(self.config,efile)
new_file.set_type(self.disc_type)
if (ask_files.add_to_current_title):
element.add_file(new_file)
else:
if (ask_files.use_filename_as_title):
filename = os.path.splitext(os.path.basename(efile))[0]
new_title = devede.title.title(self.paths,self.wfiles,self.wliststore_files,filename)
new_title = devede.title.title(self.config,self.wfiles,self.wliststore_files,filename)
else:
new_title = devede.title.title(self.paths,self.wfiles,self.wliststore_files)
new_title = devede.title.title(self.config,self.wfiles,self.wliststore_files)
new_title.set_type(self.disc_type)
self.wliststore_titles.append([new_title.title_name, new_title])
new_title.add_file(new_file)
@ -327,7 +327,7 @@ class devede_project:
if (element == None):
return
ask_w = devede.ask.ask_window(self.paths)
ask_w = devede.ask.ask_window(self.config)
if (ask_w.run(_("The title <b>%(X)s</b> will be removed.") % {"X":element.title_name},_("Delete title"))):
element.delete_title()
model.remove(treeiter)
@ -339,7 +339,7 @@ class devede_project:
if (element == None):
return
ask_w = devede.ask.ask_window(self.paths)
ask_w = devede.ask.ask_window(self.config)
if (ask_w.run(_("The file <b>%(X)s</b> will be removed.") % {"X":element.file_name},_("Delete file"))):
element.delete_file()
model.remove(treeiter)

View file

@ -22,10 +22,10 @@ class title(GObject.GObject):
counter = 0
def __init__(self,paths,file_treeview,original_liststore,title_name = None):
def __init__(self,config,file_treeview,original_liststore,title_name = None):
GObject.GObject.__init__(self)
self.paths = paths
self.config = config
self.file_treeview = file_treeview
if (title_name == None):
title.counter += 1
@ -46,9 +46,9 @@ class title(GObject.GObject):
def properties(self):
builder = Gtk.Builder()
builder.set_translation_domain("devede_ng")
builder.set_translation_domain(self.config.gettext_domain)
builder.add_from_file(os.path.join(self.paths.glade,"wtitle_properties.ui"))
builder.add_from_file(os.path.join(self.config.glade,"wtitle_properties.ui"))
builder.connect_signals(self)
# Interface widgets

View file

@ -18,66 +18,31 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>
import sys
import os
import gettext
import locale
from gi.repository import Gtk
import devede.project
import devede.configuration_data
class config_paths:
config_data = devede.configuration_data.configuration()
def __init__(self,is_local):
if (is_local):
# locales must be always at /usr/share/locale because Gtk.Builder always search there
self.share_locale="/usr/share/locale"
self.glade="/usr/local/share/devede_ng"
self.font_path="/usr/local/share/devede_ng"
self.pic_path="/usr/local/share/devede_ng"
self.other_path="/usr/local/share/devede_ng"
self.help_path="/usr/local/share/doc/devede_ng"
else:
self.share_locale="/usr/share/locale"
self.glade="/usr/share/devede_ng"
self.font_path="/usr/share/devede_ng"
self.pic_path="/usr/share/devede_ng"
self.other_path="/usr/share/devede_ng"
self.help_path="/usr/share/doc/devede_ng"
paths = None
try:
os.stat("/usr/share/devede_ng/wselect_disk.ui")
paths = config_paths(False)
except:
pass
if paths == None:
try:
os.stat("/usr/local/share/devede_ng/wselect_disk.ui")
paths = config_paths(True)
except:
pass
if paths == None:
if config_data.error:
print ("Can't locate extra files. Aborting.")
sys.exit(1)
gettext.bindtextdomain('devede_ng',paths.share_locale)
gettext.bindtextdomain(config_data.gettext_domain,config_data.share_locale)
try:
locale.setlocale(locale.LC_ALL,"")
except locale.Error:
pass
gettext.textdomain('devede_ng')
gettext.install("devede_ng",localedir=paths.share_locale)
gettext.textdomain(config_data.gettext_domain)
gettext.install(config_data.gettext_domain,localedir=config_data.share_locale)
_ = gettext.gettext
Gtk.init(sys.argv)
mwindow = devede.project.devede_project(paths)
mwindow = devede.project.devede_project(config_data)
mwindow.ask_type()
Gtk.main()