* src/ArgHandler.py: remove DbPrompter dependency

* src/GrampsGconfKeys.py: Support for saving window size
* src/GrampsIniKeys.py: Support for saving window size
* src/GrampsKeys.py: more gracefully handling missing gconf
* src/Makefile.am: Fixed moved files
* src/Report.py: clean up
* src/ScratchPad.py: use GrampsDisplay instead of gnome.help_display
* src/StartupDialog.py: clean up
* src/ViewManager.py: save window size
* src/gramps_main.py: don't require gnome
* src/data/gramps.schemas: keys for saving window size


svn: r5640
This commit is contained in:
Don Allingham 2005-12-29 18:36:59 +00:00
parent 41d5a71f35
commit 9eb8d4b069
13 changed files with 215 additions and 93 deletions

View File

@ -1,3 +1,16 @@
2005-12-29 Don Allingham <don@gramps-project.org>
* src/ArgHandler.py: remove DbPrompter dependency
* src/GrampsGconfKeys.py: Support for saving window size
* src/GrampsIniKeys.py: Support for saving window size
* src/GrampsKeys.py: more gracefully handling missing gconf
* src/Makefile.am: Fixed moved files
* src/Report.py: clean up
* src/ScratchPad.py: use GrampsDisplay instead of gnome.help_display
* src/StartupDialog.py: clean up
* src/ViewManager.py: save window size
* src/gramps_main.py: don't require gnome
* src/data/gramps.schemas: keys for saving window size
2005-12-29 Martin Hawlisch <Martin.Hawlisch@gmx.de>
* src/PedView.py: Add new submenu showing people that share
the same event. This for example lists witnesses.

View File

@ -144,28 +144,6 @@ then
fi
AC_MSG_RESULT(ok)
AC_MSG_CHECKING(Python bindings for gnome canvas)
cat > conftest.py <<EOF
$pygtk_require
try:
# Do not import gnome.canvas, this can raise a RuntimeError if the
# display cannot be opened. Just search it.
import imp
imp.find_module('gnome/canvas')
out("YES")
except ImportError:
out("NO")
EOF
$PYTHON conftest.py
has_canvas=`cat conftest.out`
rm -f conftest.out conftest.py
if test YES != "$has_canvas"
then
AC_MSG_ERROR([
**** The python bindings for gnome canvas (gnome-python2-canvas) could not be found.])
fi
AC_MSG_RESULT(ok)
AC_MSG_CHECKING(Python bindings for gnome vfs)
cat > conftest.py <<EOF
$pygtk_require

View File

@ -43,7 +43,6 @@ from gettext import gettext as _
import const
import GrampsDb
import GrampsMime
import DbPrompter
import QuestionDialog
import GrampsKeys
import RecentFiles
@ -277,7 +276,7 @@ class ArgHandler:
"following dialog will let you select "
"the new database."),
self.parent.topWindow)
prompter = DbPrompter.NewNativeDbPrompter(self.parent)
prompter = NewNativeDbPrompter(self.parent)
if not prompter.chooser():
QuestionDialog.ErrorDialog(
_("New GRAMPS database was not set up"),
@ -636,3 +635,91 @@ class ArgHandler:
else:
print "Unknown action: %s." % action
os._exit(1)
#-------------------------------------------------------------------------
#
# NewNativeDbPrompter
#
#-------------------------------------------------------------------------
class NewNativeDbPrompter:
"""
This class allows to set up a new empty native (grdb) database.
The filename is forced to have an '.grdb' extension. If not given,
it is appended.
"""
def __init__(self,parent,parent_window=None):
self.parent = parent
self.parent_window = parent_window
def chooser(self):
"""
Select the new file. Suggest the Untitled_X.grdb name.
Return 1 when selection is made and 0 otherwise.
"""
choose = gtk.FileChooserDialog(_('GRAMPS: Create GRAMPS database'),
self.parent_window,
gtk.FILE_CHOOSER_ACTION_SAVE,
(gtk.STOCK_CANCEL,
gtk.RESPONSE_CANCEL,
gtk.STOCK_OPEN,
gtk.RESPONSE_OK))
self.parent.clear_database()
# Always add automatic (macth all files) filter
add_all_files_filter(choose)
add_grdb_filter(choose)
# Suggested folder: try last open file, import, then last export,
# then home.
default_dir = os.path.split(GrampsKeys.get_lastfile())[0] + os.path.sep
if len(default_dir)<=1:
default_dir = GrampsKeys.get_last_import_dir()
if len(default_dir)<=1:
default_dir = GrampsKeys.get_last_export_dir()
if len(default_dir)<=1:
default_dir = '~/'
new_filename = Utils.get_new_filename('grdb',default_dir)
choose.set_current_folder(default_dir)
choose.set_current_name(os.path.split(new_filename)[1])
while (True):
response = choose.run()
if response == gtk.RESPONSE_OK:
filename = choose.get_filename()
if filename == None:
continue
if os.path.splitext(filename)[1] != ".grdb":
filename = filename + ".grdb"
choose.destroy()
self.parent.db = GrampsDb.gramps_db_factory(const.app_gramps)()
self.parent.read_file(filename)
# Add the file to the recent items
RecentFiles.recent_files(filename,const.app_gramps)
self.parent.build_recent_menu()
return True
else:
choose.destroy()
return False
choose.destroy()
return False
def add_all_files_filter(chooser):
"""
Add an all-permitting filter to the file chooser dialog.
"""
mime_filter = gtk.FileFilter()
mime_filter.set_name(_('All files'))
mime_filter.add_pattern('*')
chooser.add_filter(mime_filter)
def add_grdb_filter(chooser):
"""
Add a GRDB filter to the file chooser dialog.
"""
mime_filter = gtk.FileFilter()
mime_filter.set_name(_('GRAMPS databases'))
mime_filter.add_mime_type(const.app_gramps)
chooser.add_filter(mime_filter)

View File

@ -60,6 +60,18 @@ def get_default_view():
def save_default_view(val):
set_int("/apps/gramps/interface/defaultview",val,(0,1))
def get_height():
return get_int("/apps/gramps/interface/height")
def save_height(val):
set_int("/apps/gramps/interface/height",val)
def get_width():
return get_int("/apps/gramps/interface/width")
def save_width(val):
set_int("/apps/gramps/interface/width",val)
def get_family_view():
return get_int("/apps/gramps/interface/familyview",(0,1))

View File

@ -211,6 +211,18 @@ def get_default_view():
def save_default_view(val):
set_int("interface", "defaultview",val,(0,1))
def get_height():
return get_int("interface", "height")
def save_height(val):
set_int("interface", "height",val)
def get_width():
return get_int("interface", "width")
def save_width(val):
set_int("interface", "width",val)
def get_family_view():
return get_int("interface", "familyview", (0,1))

View File

@ -18,9 +18,8 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
import const
if const.no_gconf:
from GrampsIniKeys import *
else:
try:
from GrampsGconfKeys import *
except:
from GrampsIniKeys import *

View File

@ -1,7 +1,7 @@
# $Id$
# This is the src level Makefile for Gramps
SUBDIRS = docgen plugins dates data po
SUBDIRS = docgen plugins dates data po GrampsDb RelLib
# For intl. support, how do we compile?
MOSTLYCLEANFILES =
@ -41,7 +41,6 @@ gdir_PYTHON = \
DateParser.py\
DateHandler.py\
DateDisplay.py\
DbPrompter.py\
DdTargets.py\
DisplayModels.py\
DisplayTrace.py\
@ -52,24 +51,16 @@ gdir_PYTHON = \
EventEdit.py\
FamilyView.py\
FontScale.py\
GedcomInfo.py\
GenericFilter.py\
GnomeMime.py\
GrampsCfg.py\
GrampsBSDDB.py\
GrampsDbBase.py\
GrampsDBCallback.py\
GrampsDisplay.py\
GrampsInMemDB.py\
GrampsXMLDB.py\
GrampsGEDDB.py\
GrampsMime.py\
gramps_main.py\
gramps.py\
ImageSelect.py\
ImgManip.py\
latin_ansel.py\
latin_utf8.py\
ListBox.py\
ListModel.py\
LocEdit.py\
@ -89,11 +80,8 @@ gdir_PYTHON = \
PluginMgr.py\
PythonMime.py\
QuestionDialog.py\
ReadGedcom.py \
ReadXML.py\
Relationship.py\
RelImage.py\
RelLib.py\
Report.py\
ReportUtils.py\
ScratchPad.py\
@ -114,8 +102,6 @@ gdir_PYTHON = \
UrlEdit.py\
Utils.py\
Witness.py\
WriteGedcom.py \
WriteXML.py\
SelectPerson.py\
ArgHandler.py\
Exporter.py\
@ -124,8 +110,6 @@ gdir_PYTHON = \
GrampsGconfKeys.py\
RecentFiles.py\
ReportOptions.py\
ReadGrdb.py\
WriteGrdb.py\
EventView.py\
SelectEvent.py\
Spell.py\

View File

@ -41,6 +41,33 @@ from types import ClassType, InstanceType
#-------------------------------------------------------------------------
import gtk
#-------------------------------------------------------------------------
#
# GRAMPS modules
#
#-------------------------------------------------------------------------
import const
import Utils
import Plugins
import PluginMgr
import BaseDoc
import StyleEditor
import GrampsKeys
import PaperMenu
import Errors
import GenericFilter
import NameDisplay
from QuestionDialog import ErrorDialog, OptionDialog
#-------------------------------------------------------------------------
#
# Import XML libraries
#
#-------------------------------------------------------------------------
try:
from xml.sax import make_parser,handler,SAXParseException
except:
from _xmlplus.sax import make_parser,handler,SAXParseException
class FileEntry(gtk.HBox):
def __init__(self,defname,title):
@ -109,36 +136,6 @@ class FileEntry(gtk.HBox):
def set_directory_entry(self,opt):
self.dir = opt
#from gnome.ui import FileEntry
#-------------------------------------------------------------------------
#
# GRAMPS modules
#
#-------------------------------------------------------------------------
import const
import Utils
import Plugins
import PluginMgr
import BaseDoc
import StyleEditor
import GrampsKeys
import PaperMenu
import Errors
import GenericFilter
import NameDisplay
from QuestionDialog import ErrorDialog, OptionDialog
#-------------------------------------------------------------------------
#
# Import XML libraries
#
#-------------------------------------------------------------------------
try:
from xml.sax import make_parser,handler,SAXParseException
except:
from _xmlplus.sax import make_parser,handler,SAXParseException
#-------------------------------------------------------------------------
#
# Constants

View File

@ -38,7 +38,6 @@ from gettext import gettext as _
import gtk
import gtk.glade
from gtk.gdk import ACTION_COPY, BUTTON1_MASK
from gnome import help_display
#-------------------------------------------------------------------------
#
@ -48,6 +47,7 @@ from gnome import help_display
import const
import TreeTips
import DateHandler
import GrampsDisplay
from DdTargets import DdTargets
@ -902,7 +902,7 @@ class ScratchPadWindow:
def on_help_clicked(self,obj):
"""Display the relevant portion of GRAMPS manual"""
help_display('gramps-manual','tools-util-scratch-pad')
GrampsDisplay.help('tools-util-scratch-pad')
def on_close_scratchpad(self,obj):
self.remove_itself_from_menu()

View File

@ -229,9 +229,10 @@ class StartupDialog:
box.set_spacing(12)
p.append_item("",box,"")
label = gtk.Label(_('In order to create valid GEDCOM files, the following information '
'needs to be entered. If you do not plan to generate GEDCOM files, '
'you may leave this empty.'))
label = gtk.Label(
_('In order to create valid GEDCOM files, the following '
'information needs to be entered. If you do not plan to '
'generate GEDCOM files, you may leave this empty.'))
label.set_line_wrap(True)
box.pack_start(label)
@ -297,10 +298,12 @@ class StartupDialog:
box.set_spacing(12)
p.append_item("",box,"")
label = gtk.Label(_('GRAMPS has support for LDS Ordinances, which are special event types\n'
'related to the Church of Jesus Christ of Latter Day Saints.\n\n'
'You may choose to either enable or disable this support. You may\n'
'change this option in the future in the Preferences dialog.'))
label = gtk.Label(
_('GRAMPS has support for LDS Ordinances, which are special '
'event types\nrelated to the Church of Jesus Christ of '
'Latter Day Saints.\n\nYou may choose to either enable '
'or disable this support. You may\nchange this option in '
'the future in the Preferences dialog.'))
box.add(label)
align = gtk.Alignment(0.5,0)

View File

@ -162,8 +162,15 @@ class ViewManager:
self.pages = []
self.window = gtk.Window()
self.window.connect('destroy', self.quit)
self.window.set_size_request(775,500)
try:
width = GrampsKeys.get_width()
height = GrampsKeys.get_height()
print width,height
self.window.set_default_size(width,height)
except:
self.window.set_default_size(775,500)
self.statusbar = gtk.Statusbar()
self.RelClass = PluginMgr.relationship_class
@ -234,6 +241,10 @@ class ViewManager:
def quit(self,obj=None):
self.state.db.close()
(width,height) = self.window.get_size()
GrampsKeys.save_width(width)
GrampsKeys.save_height(height)
GrampsKeys.sync()
gtk.main_quit()
def set_color(self,obj):

View File

@ -94,6 +94,30 @@
</locale>
</schema>
<schema>
<key>/schemas/apps/gramps/interface/height</key>
<applyto>/apps/gramps/interface/height</applyto>
<owner>gramps</owner>
<type>int</type>
<default>500</default>
<locale name="C">
<short>Height of the interface.</short>
<long>Specifies the height of the interface when GRAMPS starts.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/gramps/interface/width</key>
<applyto>/apps/gramps/interface/width</applyto>
<owner>gramps</owner>
<type>int</type>
<default>775</default>
<locale name="C">
<short>Width of the interface.</short>
<long>Specifies the width of the interface when GRAMPS starts.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/gramps/interface/familyview</key>
<applyto>/apps/gramps/interface/familyview</applyto>

View File

@ -26,7 +26,6 @@
#
#-------------------------------------------------------------------------
import gtk
import gnome
#-------------------------------------------------------------------------
#
@ -58,7 +57,6 @@ import TipOfDay
from GrampsMime import mime_type_is_defined
from QuestionDialog import ErrorDialog
iconpaths = [".",const.rootDir]
def register_stock_icons ():
@ -113,16 +111,20 @@ class Gramps:
def __init__(self,args):
try:
import gnome
self.program = gnome.program_init('gramps',const.version,
gnome.libgnome_module_info_get(),
args, const.popt_table)
except:
self.program = gnome.program_init('gramps',const.version)
self.program.set_property('app-libdir','%s/lib' % const.prefixdir)
self.program.set_property('app-datadir','%s/share/gramps' % const.prefixdir)
self.program.set_property('app-sysconfdir','%s/etc' % const.prefixdir)
self.program.set_property('app-prefix', const.prefixdir)
self.program.set_property('app-libdir',
'%s/lib' % const.prefixdir)
self.program.set_property('app-datadir',
'%s/share/gramps' % const.prefixdir)
self.program.set_property('app-sysconfdir',
'%s/etc' % const.prefixdir)
self.program.set_property('app-prefix', const.prefixdir)
except:
pass
try:
GrampsCfg.loadConfig()