コード例 #1
0
ファイル: plugin.py プロジェクト: wojas/pomni
 def activate(self):
     component_manager.register(Plugin.provides, self)
     self.active = True
コード例 #2
0
ファイル: review_wdgt.py プロジェクト: wojas/pomni
    #   TODO: everything here will either have to be reimplemented in a
    #   completely different way or will become obsolete.
    #
    ##########################################################################

    def update_dialog(self):
        # Update question and answer font.

        if config()["QA_font"] != None:
            font = QFont()
            font.fromString(config()["QA_font"])
        else:
            font = self.show_button.font()

        #self.question.setFont(font)
        #self.answer.setFont(font)

        # Update question and answer alignment.

        #if get_config("left_align") == True:
        #    alignment = Qt.AlignAuto    | Qt.AlignVCenter | Qt.TextWordWrap
        #else:
        #    alignment = Qt.AlignHCenter | Qt.AlignVCenter | Qt.TextWordWrap

        #self.question.setAlignment(alignment)
        #self.answer.setAlignment(alignment)

# Register widget.

component_manager.register("review_widget", ReviewWdgt)
コード例 #3
0
ファイル: test.py プロジェクト: wojas/pomni
#TODO: clean up

from mnemosyne.libmnemosyne.component_manager import component_manager as cm
from mnemosyne.libmnemosyne.config import config as cfg

from mnemosyne.libmnemosyne.card_types.front_to_back import FrontToBack
from mnemosyne.libmnemosyne.card_types.both_ways import BothWays
from mnemosyne.libmnemosyne.card_types.three_sided import ThreeSided

t1 = FrontToBack(); cm.register("card_type", t1)
t2 = BothWays(); cm.register("card_type", t2)
t3 = ThreeSided(); cm.register("card_type", t3)


cfg.initialise("\dev\\null")
cfg["path"] = "\dev\\null"

from mnemosyne.libmnemosyne import *
#initialise_system_components()
#config.initialise(basedir)
#initialise_lockfile()
#initialise_new_empty_database()

from mnemosyne.libmnemosyne.databases.pickle import Pickle

cm.register("database", Pickle())

from mnemosyne.libmnemosyne.schedulers.SM2_mnemosyne \
                                                   import SM2Mnemosyne

cm.register("scheduler", SM2Mnemosyne())
コード例 #4
0
ファイル: factory.py プロジェクト: wojas/pomni
def ui_factory(interface=None):
    """ Create UI(View in terms of MVC) """

    if interface == 'cmd':
        from pomni.cmd_ui import CmdUiControllerReview, CommandlineUI

        component_manager.register("ui_controller_review",
                                   CmdUiControllerReview())
        component_manager.register("renderer", TextRenderer())
        return CommandlineUI()

    if not interface or interface == "hildon":
        try:
            theme = config()["theme_path"].split("/")[-1]
        except KeyError:
            theme = "eternal"

        from pomni import hildon_ui
        from hildon_ui import HildonUI

        review_class = getattr(hildon_ui,
            theme.capitalize() + 'ControllerReview')
        input_class = getattr(hildon_ui,
            theme.capitalize() + 'ControllerInput')
        main_class = getattr(hildon_ui,
            theme.capitalize() + 'ControllerMain')

        component_manager.register("ui_controller_main", main_class())
        component_manager.register("ui_controller_review", review_class())
        component_manager.register("ui_controller_input", input_class())
        component_manager.register("renderer", TextRenderer())
        return HildonUI()

    # add next gui here
    raise ValueError("No idea how to create %s UI" % interface)
コード例 #5
0
ファイル: __init__.py プロジェクト: wojas/pomni
def initialise_system_components():
    
    """These are now hard coded, but if needed, an application could 
    override this.
    
    """
    
    # Configuration.
    from mnemosyne.libmnemosyne.configuration import Configuration
    component_manager.register("config", Configuration())
    
     # Logger.
    from mnemosyne.libmnemosyne.loggers.txt_logger import TxtLogger
    component_manager.register("log", TxtLogger())   
    
    # Database.
    #from mnemosyne.libmnemosyne.databases.pickle import Pickle
    #component_manager.register("database", Pickle())
    from mnemosyne.libmnemosyne.databases.sqlite import Sqlite
    component_manager.register("database", Sqlite())
    
    # Scheduler.
    from mnemosyne.libmnemosyne.schedulers.SM2_mnemosyne \
                                                   import SM2Mnemosyne
    component_manager.register("scheduler", SM2Mnemosyne())
    
    # Card types.
    from mnemosyne.libmnemosyne.card_types.front_to_back import FrontToBack
    component_manager.register("card_type", FrontToBack())
    from mnemosyne.libmnemosyne.card_types.both_ways import BothWays
    component_manager.register("card_type", BothWays())
    from mnemosyne.libmnemosyne.card_types.three_sided import ThreeSided
    component_manager.register("card_type", ThreeSided())
    
    # Renderer.
    from mnemosyne.libmnemosyne.renderers.html_css import HtmlCss
    component_manager.register("renderer", HtmlCss())
    
    # Filters.
    from mnemosyne.libmnemosyne.filters.escape_to_html \
                                                   import EscapeToHtml
    component_manager.register("filter", EscapeToHtml())
    from mnemosyne.libmnemosyne.filters.expand_paths \
                                                   import ExpandPaths
    component_manager.register("filter", ExpandPaths())
    from mnemosyne.libmnemosyne.filters.latex import Latex
    component_manager.register("filter", Latex())
    
    # File formats.


    # UI controllers.
    from mnemosyne.libmnemosyne.ui_controllers_main.default_main_controller \
                                                   import DefaultMainController
    component_manager.register("ui_controller_main", DefaultMainController())
    from mnemosyne.libmnemosyne.ui_controllers_review.SM2_controller \
                                                   import SM2Controller
    component_manager.register("ui_controller_review", SM2Controller())
    
    # Plugins.
    from mnemosyne.libmnemosyne.card_types.map import Map   
    component_manager.register("plugin", Map())
コード例 #6
0
ファイル: sound.py プロジェクト: wojas/pomni
        if self.music.state == Phonon.PlayingState:
            self.music.enqueue(filename)
        else:
            self.music.enqueue(Phonon.MediaSource(filename));
            self.music.play()

soundmanager = SoundManager()


class SoundPlayer(Filter):

    def run(self, text, fact):
        i = text.lower().find("sound src")
        while i != -1:
            start = text.find("\"", i)
            end   = text.find("\"", start+1)
            if end == -1:
                return
            filename = text[start+1:end]
            try:
                soundmanager.play(filename)
            except:
                print "Unable to play music from file", filename
                i = text.lower().find("sound src", i+1)
        return text


component_manager.register("filter", SoundPlayer())