Moved configuration to an independent class
Added file properties interface UI
This commit is contained in:
parent
a60221b57d
commit
d960322a5c
10 changed files with 2414 additions and 1280 deletions
|
|
@ -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")
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
61
src/devede/configuration_data.py
Normal file
61
src/devede/configuration_data.py
Normal 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"
|
||||
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue