예제 #1
0
파일: config.py 프로젝트: krrr/Hazama
def saveSettings():
    try:
        with open('config.ini', 'w', encoding='utf-8') as f:
            settings.write(f)
    except OSError:
        from hazama import ui
        ui.showErrors('cantFile', 'config.ini')
예제 #2
0
def saveSettings():
    try:
        with open('config.ini', 'w', encoding='utf-8') as f:
            settings.write(f)
    except OSError as e:
        from hazama import ui
        ui.showErrors('cantFile', info=str(e))
예제 #3
0
def main_entry():
    import time
    start_time = time.clock()
    import logging
    import sys
    from hazama import config

    config.changeCWD()
    config.init()

    level = logging.DEBUG if config.settings['Main'].getboolean(
        'debug') else logging.INFO
    logging.basicConfig(format='%(levelname)s: %(message)s', level=level)
    logging.info('Hazama v%s  (%s, Py%d.%d.%d)', __version__, sys.platform,
                 *sys.version_info[:3])
    logging.info(str(config.db))

    from hazama import ui, diarybook, updater
    app = ui.init()
    from hazama.ui.mainwindow import MainWindow

    w = MainWindow()
    w.show()
    logging.debug('startup took %.2f sec', time.clock() - start_time)

    if config.settings['Font'].getboolean('enhanceRender'):
        from hazama import mactype
        mactype.enable()

    if config.settings['Main'].getboolean('backup'):
        try:
            diarybook.backup()
        except OSError as e:
            from hazama.ui import showErrors
            showErrors('cantFile',
                       str(e))  # message not correct here, ignore it...

    if config.settings['Update'].getboolean('needClean'):
        updater.cleanBackup()
        config.settings['Update']['needClean'] = str(False)

    app.aboutToQuit.connect(onAboutToQuit)
    ret = app.exec_()
    del w  # force close all child window of MainWindow

    # segfault might happen if not wait for them
    for i in [updater.checkUpdateTask, updater.installUpdateTask]:
        if i is not None:
            logging.debug('waiting for %s to exit', i)
            i.wait()
    return ret
예제 #4
0
def main_entry():
    import time
    start_time = time.clock()
    import logging
    import sys
    from hazama import config

    config.changeCWD()
    config.init()

    level = logging.DEBUG if config.settings['Main'].getboolean(
        'debug') else logging.INFO
    logging.basicConfig(format='%(levelname)s: %(message)s', level=level)
    logging.info('Hazama v%s  (%s, Py%d.%d.%d)', __version__, sys.platform,
                 *sys.version_info[:3])
    logging.info(str(config.nikki))

    from hazama import ui, db, updater
    from hazama import updater
    app = ui.init()
    from hazama.ui.mainwindow import MainWindow

    w = MainWindow()
    w.show()
    logging.debug('startup took %.2f sec', time.clock() - start_time)

    if config.settings['Main'].getboolean('backup'):
        try:
            db.backup()
        except OSError as e:
            from hazama.ui import showErrors
            showErrors('cantFile', info=str(e))

    if config.settings['Update'].getboolean('needClean'):
        updater.cleanBackup()
        config.settings['Update']['needClean'] = str(False)

    ret = app.exec_()
    del w  # force close all child window of MainWindow

    db.Nikki.getinstance().disconnect()
    config.saveSettings()

    # segfault might happen if not wait for them
    for i in [updater.checkUpdateTask, updater.installUpdateTask]:
        if i is not None:
            logging.debug('waiting for %s to exit', i)
            i.wait()
    return ret
예제 #5
0
def main_entry():
    import time
    start_time = time.clock()
    import logging
    import sys
    from hazama import config

    config.changeCWD()
    config.init()

    level = logging.DEBUG if config.settings['Main'].getboolean('debug') else logging.INFO
    logging.basicConfig(format='%(levelname)s: %(message)s', level=level)
    logging.info('Hazama v%s  (%s, Py%d.%d.%d)', __version__, sys.platform, *sys.version_info[:3])
    logging.info(str(config.db))

    from hazama import ui, diarybook, updater
    app = ui.init()
    from hazama.ui.mainwindow import MainWindow

    w = MainWindow()
    w.show()
    logging.debug('startup took %.2f sec', time.clock()-start_time)

    if config.settings['Font'].getboolean('enhanceRender'):
        from hazama import mactype
        mactype.enable()

    if config.settings['Main'].getboolean('backup'):
        try:
            diarybook.backup()
        except OSError as e:
            from hazama.ui import showErrors
            showErrors('cantFile', str(e))  # message not correct here, ignore it...

    if config.settings['Update'].getboolean('needClean'):
        updater.cleanBackup()
        config.settings['Update']['needClean'] = str(False)

    app.aboutToQuit.connect(onAboutToQuit)
    ret = app.exec_()
    del w  # force close all child window of MainWindow

    # segfault might happen if not wait for them
    for i in [updater.checkUpdateTask, updater.installUpdateTask]:
        if i is not None:
            logging.debug('waiting for %s to exit', i)
            i.wait()
    return ret
예제 #6
0
def init():
    """Load config.ini under CWD, initialize settings and nikki."""
    try:
        # utf-8 with BOM will kill ConfigParser
        with open('config.ini', encoding='utf-8-sig') as f:
            settings.read_file(f)
    except FileNotFoundError:
        pass

    try:
        nikki.connect(settings['Main']['dbPath'])
    except db.DatabaseError as e:
        from hazama import ui
        ui.showErrors('dbError', hint=str(e))
        sys.exit(-1)
    except db.DatabaseLockedError:
        from hazama import ui
        ui.showErrors('dbLocked')
        sys.exit(-1)
예제 #7
0
파일: config.py 프로젝트: krrr/Hazama
def init():
    """Load config.ini under CWD, initialize settings and diary book."""
    try:
        # utf-8 with BOM will kill ConfigParser
        with open('config.ini', encoding='utf-8-sig') as f:
            settings.read_file(f)
    except ParsingError:
        from hazama import ui
        ui.showErrors('fileCorrupted', 'config.ini', exit_=True)
    except FileNotFoundError:
        pass

    try:
        db.connect(settings['Main']['dbPath'])
    except diarybook.DatabaseError as e:
        from hazama import ui
        if str(e).startswith('unable to open'):
            ui.showErrors('cantFile', settings['Main']['dbPath'], exit_=True)
        else:
            ui.showErrors('dbError', str(e), exit_=True)
    except diarybook.DatabaseLockedError:
        from hazama import ui
        ui.showErrors('dbLocked', exit_=True)
예제 #8
0
def init():
    """Load config.ini under CWD, initialize settings and diary book."""
    try:
        # utf-8 with BOM will kill ConfigParser
        with open('config.ini', encoding='utf-8-sig') as f:
            settings.read_file(f)
    except ParsingError:
        from hazama import ui
        ui.showErrors('fileCorrupted', 'config.ini', exit_=True)
    except FileNotFoundError:
        pass

    try:
        db.connect(settings['Main']['dbPath'])
    except diarybook.DatabaseError as e:
        from hazama import ui
        if str(e).startswith('unable to open'):
            ui.showErrors('cantFile', settings['Main']['dbPath'], exit_=True)
        else:
            ui.showErrors('dbError', str(e), exit_=True)
    except diarybook.DatabaseLockedError:
        from hazama import ui
        ui.showErrors('dbLocked', exit_=True)