コード例 #1
0
ファイル: displayframe.py プロジェクト: nognkantoor/bpbible
IN_POPUP = 1
IN_MENU = 2
IN_BOTH = IN_POPUP | IN_MENU


def process_html_for_module(module, text):
    language_code, (font, size, gui) = \
     fonts.get_font_params(module)

    text = convert_language(text, language_code)

    return '<span module="%s" lang="%s">%s</span>' % (module.Name(),
                                                      language_code, text)


html_settings = config_manager.add_section("Html")
html_settings.add_item("zoom_level", 0, item_type=int)

# some magic zoom constants
zoom_levels = {
    -2: 0.75,
    -1: 0.83,
    0: 1,
    1: 1.2,
    2: 1.44,
    3: 1.73,
    4: 2,
    5: 2.5,
    6: 3,
    7: 3.5
}
コード例 #2
0
import wx
from util.configmgr import config_manager
from util.observerlist import ObserverList
from util.i18n import N_
import guiconfig
import events
from backend.filterutils import filter_settings, set_headwords_module_from_conf

options = config_manager.add_section("Options")
options.add_item("columns", False, item_type=bool)
options.add_item("verse_per_line", False, item_type=bool)
options.add_item("continuous_scrolling", True, item_type=bool)
options.add_item("headings", True, item_type=bool)
options.add_item("cross_references", True, item_type=bool)
options.add_item("footnotes", True, item_type=bool)
options.add_item("strongs_numbers", True, item_type=bool)
options.add_item("strongs_position", "underneath", item_type=str)
options.add_item("highlight_strongs", True, item_type=bool)
options.add_item("morphology", True, item_type=bool)
options.add_item("morph_segmentation", False, item_type=bool)
options.add_item("raw", False, item_type=bool)
options.add_item("show_timing", False, item_type=bool)
options.add_item("colour_speakers", "off", item_type=str)
options.add_item("reference_bar", False, item_type=bool)

sword_options_map = dict(
	strongs_numbers="Strong's Numbers",
	morphology="Morphological Tags",
	morph_segmentation="Morpheme Segmentation",
)
コード例 #3
0
ファイル: i18n.py プロジェクト: nognkantoor/bpbible
"""\
Module to support internationalisation and localisation of the interface.
"""
#python \Python25\Tools\i18n\msgfmt.py -o locales\en\LC_MESSAGES\messages.mo locales\en.po
# python ~/Python-2.5.2/Tools/i18n/msgfmt.py -o locales/en/LC_MESSAGES/messages.mo locales/en.po

# python ~/Python-2.5.2/Tools/i18n/pygettext.py -p locales/ -k N_ `find . -name "*.py"`

import config
import gettext
from util.debug import dprint, WARNING
from util.configmgr import config_manager
from swlib.pysw import SW, change_locale
from swlib import pysw
import os
locale_settings = config_manager.add_section("Locale")
locale_settings.add_item("language", "en", item_type=str)
locale_settings.add_item("language_book_names", {"en": "bpbible"},
                         item_type="pickle")

localedir = "locales"
domain = "messages"  # the translation file is messages.mo

dummy_translator = False


def install_dummy_translator():
    import __builtin__
    __builtin__._ = lambda str: str
    global dummy_translator
    dummy_translator = True
コード例 #4
0
"""
import sys
import time
import traceback
import wx

import hashlib

import config
from util.configmgr import config_manager
from util.i18n import N_
import re

from xrc.error_dialog_xrc import xrcErrorDialog

errors = config_manager.add_section("Errors")
errors.add_item("errors_to_ignore", [], item_type="pickle")

COLLAPSED_TEXTS = N_("<< &Details"), N_("&Details >>")
PANE = 2
fixed_width_re = re.compile("``(((?!``)(..?))*)``", re.DOTALL)


class ErrorDialog(xrcErrorDialog):
    def __init__(self, parent):
        super(ErrorDialog, self).__init__(parent)
        self.exception_text.BackgroundColour = \
         self.traceback_text.BackgroundColour = \
          self.panel.BackgroundColour

        self.details_button.Bind(wx.EVT_BUTTON, self.collapse_toggle)
コード例 #5
0
ファイル: displayframe.py プロジェクト: cvillaluz81/bpbible
from gui import fonts

IN_POPUP = 1
IN_MENU = 2
IN_BOTH = IN_POPUP | IN_MENU

def process_html_for_module(module, text):
	language_code, (font, size, gui) = \
		fonts.get_font_params(module)

	text = convert_language(text, language_code)
		
	return '<span module="%s" lang="%s">%s</span>' % (module.Name(), language_code, text)

html_settings = config_manager.add_section("Html")
html_settings.add_item("zoom_level", 0, item_type=int)

# some magic zoom constants
zoom_levels = {-2: 0.75, 
			   -1: 0.83, 
			   	0: 1, 
				1: 1.2, 
				2: 1.44, 
				3: 1.73, 
				4: 2,
				5: 2.5,
				6: 3,
				7: 3.5
				}
コード例 #6
0
ファイル: bibleframe.py プロジェクト: nognkantoor/bpbible
from gui.menu import MenuItem, Separator

from gui.quickselector import QuickSelector
import events
from copyverses import CopyVerseDialog

from util.configmgr import config_manager
from versecompare import VerseCompareFrame
import header_bar
import re
from util.i18n import N_

from guess_verse import GuessVerseFrame
import user_comments

bible_settings = config_manager.add_section("Bible")
bible_settings.add_item("select_verse_on_click", False, item_type=bool)


class BibleFrame(VerseKeyedFrame):
    id = N_("Bible")

    def __init__(self, parent):
        self.panel = wx.Panel(parent)
        super(BibleFrame, self).__init__(self.panel)
        self.header_bar = header_bar.HeaderBar(self.panel, "Genesis 1")
        self.header_bar.on_click += lambda chapter: \
         guiconfig.mainfrm.set_bible_ref(chapter, events.HEADER_BAR)
        self.last_bible_event = None

        sizer = wx.BoxSizer(wx.VERTICAL)
コード例 #7
0
ファイル: filterutils.py プロジェクト: cvillaluz81/bpbible
from swlib import pysw
from swlib.pysw import SW, BOTTOM
import re
from util.debug import dprint, ERROR, WARNING
import traceback
from util.configmgr import config_manager

default_ellipsis_level = 2
filter_settings = config_manager.add_section("Filter")
filter_settings.add_item("use_osis_parser", True, item_type=bool)
filter_settings.add_item("use_thml_parser", True, item_type=bool)
filter_settings.add_item("expand_thml_refs", True, item_type=bool)
filter_settings.add_item("footnote_ellipsis_level", default_ellipsis_level, 
	item_type=int)
filter_settings.add_item("headwords_module", "HeadwordsTransliterated", item_type=str)

parser_modes = (
	NORMAL_PARSER_MODE,
	COPY_VERSES_PARSER_MODE,
) = range(2)

def return_success(func):
	def ret(*args, **kwargs):
		return SW.ReturnSuccess(*func(*args, **kwargs))
	ret.__name__ = func.__name__
	return ret

def report_errors(func):
	def ret(*args, **kwargs):
		try: 
			return func(*args, **kwargs)
コード例 #8
0
ファイル: error_handling.py プロジェクト: cvillaluz81/bpbible
"""
import sys
import time
import traceback
import wx

import hashlib

import config
from util.configmgr import config_manager
from util.i18n import N_
import re

from xrc.error_dialog_xrc import xrcErrorDialog

errors = config_manager.add_section("Errors")
errors.add_item("errors_to_ignore", [], item_type="pickle")

COLLAPSED_TEXTS = N_("<< &Details"), N_("&Details >>")
PANE = 2
fixed_width_re = re.compile("``(((?!``)(..?))*)``", re.DOTALL)

class ErrorDialog(xrcErrorDialog):
	def __init__(self, parent):
		super(ErrorDialog, self).__init__(parent)
		self.exception_text.BackgroundColour = \
			self.traceback_text.BackgroundColour = \
				self.panel.BackgroundColour

		self.details_button.Bind(wx.EVT_BUTTON, self.collapse_toggle)
		sys.excepthook = self.handle_error
コード例 #9
0
ファイル: fonts.py プロジェクト: cvillaluz81/bpbible
import wx
from swlib.pysw import SW
from util.configmgr import config_manager
from util import osutils
from util.observerlist import ObserverList
from backend.bibleinterface import biblemgr


font_settings = config_manager.add_section("Font")
font_settings.add_item("language_fonts", {}, item_type="pickle")
font_settings.add_item("module_fonts", {}, item_type="pickle")
font_settings.add_item("default_fonts", None,#("Arial", 12, False),
		item_type="pickle")

def _default_font():
	if osutils.is_msw():
		# MSW has MS Shell Dlg 2, which can't be set to.
		# just use arial 12 pt
		return "Arial", 12, False

	return wx.NORMAL_FONT.FaceName, wx.NORMAL_FONT.PointSize, False

def get_font_params(data):
	if isinstance(data, basestring):
		return data, get_language_font_params(data)[1]
	
	if data is None:
		return None, font_settings["default_fonts"] or _default_font()

	return data.Lang(), get_module_font_params(data)[1]
コード例 #10
0
ファイル: bibleframe.py プロジェクト: cvillaluz81/bpbible
from gui.quickselector import QuickSelector
import events
from copyverses import CopyVerseDialog

from util.configmgr import config_manager
from versecompare import VerseCompareFrame
import header_bar
import re
from util.i18n import N_

from guess_verse import GuessVerseFrame
import user_comments


bible_settings = config_manager.add_section("Bible")
bible_settings.add_item("select_verse_on_click", False, item_type=bool)

class BibleFrame(VerseKeyedFrame):
	id = N_("Bible")

	def __init__(self, parent):
		self.panel = wx.Panel(parent)
		super(BibleFrame, self).__init__(self.panel)
		self.header_bar = header_bar.HeaderBar(self.panel, "Genesis 1")
		self.header_bar.on_click += lambda chapter: \
			guiconfig.mainfrm.set_bible_ref(chapter, events.HEADER_BAR)
		self.last_bible_event = None
		
		sizer = wx.BoxSizer(wx.VERTICAL)
		sizer.Add(self.header_bar, 0, wx.GROW)
コード例 #11
0
ファイル: i18n.py プロジェクト: cvillaluz81/bpbible
Module to support internationalisation and localisation of the interface.
"""
#python \Python25\Tools\i18n\msgfmt.py -o locales\en\LC_MESSAGES\messages.mo locales\en.po
# python ~/Python-2.5.2/Tools/i18n/msgfmt.py -o locales/en/LC_MESSAGES/messages.mo locales/en.po

# python ~/Python-2.5.2/Tools/i18n/pygettext.py -p locales/ -k N_ `find . -name "*.py"`


import config
import gettext
from util.debug import dprint, WARNING
from util.configmgr import config_manager
from swlib.pysw import SW, change_locale
from swlib import pysw
import os
locale_settings = config_manager.add_section("Locale")
locale_settings.add_item("language", "en", item_type=str)
locale_settings.add_item("language_book_names", {"en": "bpbible"}, item_type="pickle")

localedir = "locales"
domain = "messages"             # the translation file is messages.mo

dummy_translator = False
def install_dummy_translator():
	import __builtin__
	__builtin__._ = lambda str: str
	global dummy_translator
	dummy_translator = True
	
def initialize():
	global langid, mytranslation, ngettext
コード例 #12
0
import wx
import config, guiconfig
from backend.bibleinterface import biblemgr
from backend.verse_template import SmartVerseTemplate
import protocol_handlers
from swlib.pysw import VerseParsingError, GetBestRange

from gui import guiutil
from gui.guiutil import bmp
import re
from util.configmgr import config_manager

from util import osutils
from util.debug import dprint, TOOLTIP, WARNING

tooltip_settings = config_manager.add_section("Tooltip")

tooltip_settings.add_item("plain_xrefs", False, item_type=bool)


class TooltipBaseMixin(object):
    set_toolbar_background = False
    do_not_show_tooltip = False

    def __init__(self, *args, **kwargs):
        self.text = None
        self.target = None
        self.new_target = None
        self._tooltip_config = None
        self.toolbar_creator = None
        self.toolbar = None
コード例 #13
0
ファイル: versecompare.py プロジェクト: cvillaluz81/bpbible
from gui.multichoice import MultiChoiceDialog
from gui import guiutil

from gui.menu import MenuItem
from backend.bibleinterface import biblemgr
from backend.book import get_module_css_text_direction
from protocols import protocol_handler
from util import noop
from util.configmgr import config_manager
from displayframe import IN_POPUP, process_html_for_module
from swlib.pysw import SW, VerseList, GetBestRange
from util.unicode import to_str

from util.i18n import N_

verse_comparison_settings = config_manager.add_section("Verse Comparison")
verse_comparison_settings.add_item(
	"comparison_modules",
	biblemgr.bible.GetModuleList,
	is_initial_lazy=True,
	item_type="pickle"
)

verse_comparison_settings.add_item(
	"parallel",
	False,
	item_type=bool
)

verse_comparison_settings.add_item(
	"reference",
コード例 #14
0
ファイル: tooltip.py プロジェクト: cvillaluz81/bpbible
import wx
import config, guiconfig
from backend.bibleinterface import biblemgr
from backend.verse_template import SmartVerseTemplate
import protocol_handlers
from swlib.pysw import VerseParsingError, GetBestRange

from gui import guiutil
from gui.guiutil import bmp
import re
from util.configmgr import config_manager

from util import osutils
from util.debug import dprint, TOOLTIP, WARNING

tooltip_settings = config_manager.add_section("Tooltip")

tooltip_settings.add_item("plain_xrefs", False, item_type=bool)

class TooltipBaseMixin(object):
	set_toolbar_background = False
	do_not_show_tooltip = False
	
	def __init__(self, *args, **kwargs):
		self.text = None
		self.target = None
		self.new_target = None
		self._tooltip_config = None
		self.toolbar_creator = None
		self.toolbar = None
		self.html = None
コード例 #15
0
ファイル: versecompare.py プロジェクト: nognkantoor/bpbible
from gui.multichoice import MultiChoiceDialog
from gui import guiutil

from gui.menu import MenuItem
from backend.bibleinterface import biblemgr
from backend.book import get_module_css_text_direction
from protocols import protocol_handler
from util import noop
from util.configmgr import config_manager
from displayframe import IN_POPUP, process_html_for_module
from swlib.pysw import SW, VerseList, GetBestRange
from util.unicode import to_str

from util.i18n import N_

verse_comparison_settings = config_manager.add_section("Verse Comparison")
verse_comparison_settings.add_item("comparison_modules",
                                   biblemgr.bible.GetModuleList,
                                   is_initial_lazy=True,
                                   item_type="pickle")

verse_comparison_settings.add_item("parallel", False, item_type=bool)

verse_comparison_settings.add_item("reference", "", item_type=str)


def on_bible_version(frame, href, url):
    module_name = SW.URL.decode(url.getPath()).c_str()
    biblemgr.bible.SetModule(module_name)

コード例 #16
0
ファイル: settings.py プロジェクト: nognkantoor/bpbible
from util.configmgr import config_manager

SECTION_NAME = "Topics"
topic_settings = config_manager.add_section(SECTION_NAME)
topic_settings.add_item("display_tags", True, item_type=bool)
topic_settings.add_item("expand_topic_passages", False, item_type=bool)
topic_settings.add_item("last_selected_topic", [], item_type="pickle")

class Settings(object):
	def get_display_tags(self):
		return topic_settings["display_tags"]

	def set_display_tags(self, display_tags):
		topic_settings["display_tags"] = display_tags

	display_tags = property(get_display_tags, set_display_tags)

	def get_expand_topic_passages(self):
		return topic_settings["expand_topic_passages"]

	def set_expand_topic_passages(self, expand_topic_passages):
		topic_settings["expand_topic_passages"] = expand_topic_passages

	expand_topic_passages = property(get_expand_topic_passages, set_expand_topic_passages)

	def get_last_selected_topic(self):
		from passage_list import get_primary_passage_list_manager
		return get_primary_passage_list_manager().find_topic_by_path(
				topic_settings["last_selected_topic"])

	def set_last_selected_topic(self, topic):
コード例 #17
0
import wx
from swlib.pysw import SW
from util.configmgr import config_manager
from util import osutils
from util.observerlist import ObserverList
from backend.bibleinterface import biblemgr

font_settings = config_manager.add_section("Font")
font_settings.add_item("language_fonts", {}, item_type="pickle")
font_settings.add_item("module_fonts", {}, item_type="pickle")
font_settings.add_item(
    "default_fonts",
    None,  #("Arial", 12, False),
    item_type="pickle")


def _default_font():
    if osutils.is_msw():
        # MSW has MS Shell Dlg 2, which can't be set to.
        # just use arial 12 pt
        return "Arial", 12, False

    return wx.NORMAL_FONT.FaceName, wx.NORMAL_FONT.PointSize, False


def get_font_params(data):
    if isinstance(data, basestring):
        return data, get_language_font_params(data)[1]

    if data is None:
        return None, font_settings["default_fonts"] or _default_font()