예제 #1
0
파일: mainwindow.py 프로젝트: encukou/qdex
 def populateMenu(self):
     """Populate the app's main menu"""
     _ = self.g.translator
     self.setWindowTitle(_(u'Pokédex'))
     self.menuBar().clear()
     fileMenu = self.menuBar().addMenu(_(u"&Pokédex"))
     icon = QtGui.QIcon(resource_filename('qdex', 'icons/star.png'))
     self.addMenuItem(fileMenu, _(u'&About…'), self.about, icon=icon)
     fileMenu.addSeparator()
     icon = QtGui.QIcon(resource_filename('qdex', 'icons/cross-button.png'))
     self.addMenuItem(fileMenu, _('&Exit'), QtGui.QApplication.exit,
             icon=icon)
     self.settingsMenu = self.menuBar().addMenu(_(u"Settings"))
     self.uilangMenu = self.settingsMenu.addMenu(_(u"Program &Language"))
     self.uilangMenu.aboutToShow.connect(self.fillUilangMenu)
     self.gamelangMenu = self.settingsMenu.addMenu(_(u"Game &Language"))
     self.gamelangMenu.aboutToShow.connect(self.fillGamelangMenu)
예제 #2
0
 def populateMenu(self):
     """Populate the app's main menu"""
     _ = self.g.translator
     self.setWindowTitle(_(u'Pokédex'))
     self.menuBar().clear()
     fileMenu = self.menuBar().addMenu(_(u"&Pokédex"))
     icon = QtGui.QIcon(resource_filename('qdex', 'icons/star.png'))
     self.addMenuItem(fileMenu, _(u'&About…'), self.about, icon=icon)
     fileMenu.addSeparator()
     icon = QtGui.QIcon(resource_filename('qdex', 'icons/cross-button.png'))
     self.addMenuItem(fileMenu,
                      _('&Exit'),
                      QtGui.QApplication.exit,
                      icon=icon)
     self.settingsMenu = self.menuBar().addMenu(_(u"Settings"))
     self.uilangMenu = self.settingsMenu.addMenu(_(u"Program &Language"))
     self.uilangMenu.aboutToShow.connect(self.fillUilangMenu)
     self.gamelangMenu = self.settingsMenu.addMenu(_(u"Game &Language"))
     self.gamelangMenu.aboutToShow.connect(self.fillGamelangMenu)
예제 #3
0
파일: metamodel.py 프로젝트: encukou/qdex
 def __init__(self, g, model=None):
     super(MetaModel, self).__init__()
     self.g = g
     self.g.registerRetranslate(self.retranslated)
     if model is None:
         defaultfile = open(resource_filename('qdex', 'metamodel.yaml'))
         model = yaml.load(defaultfile)
     self.root = MetamodelItem.load(model, g=g)
     # XXX: Only have one category of lists now; show a flat list
     self.root = self.root.children[0]
예제 #4
0
 def __init__(self, g, model=None):
     super(MetaModel, self).__init__()
     self.g = g
     self.g.registerRetranslate(self.retranslated)
     if model is None:
         defaultfile = open(resource_filename('qdex', 'metamodel.yaml'))
         model = yaml.load(defaultfile)
     self.root = MetamodelItem.load(model, g=g)
     # XXX: Only have one category of lists now; show a flat list
     self.root = self.root.children[0]
예제 #5
0
파일: mainwindow.py 프로젝트: encukou/qdex
 def _scope(lang):
     language = query.filter_by(identifier=lang).one()
     icon = os.path.join('flags', language.iso3166 + '.png')
     icon = QtGui.QIcon(resource_filename('qdex', icon))
     try:
         name = language.name_map[language]
     except KeyError:
         name = self.g.name(language)
     def _retranslate():
         self.g.langs = [lang]
     self.addMenuItem(self.uilangMenu, name, _retranslate,
             icon=icon,
             checkable=True,
             checked=self.g.langs[0] == language.identifier,
         )
예제 #6
0
파일: mainwindow.py 프로젝트: encukou/qdex
 def _scope(language):
     def _retranslate():
         self.g.session.expunge_all()
         self.g.session.default_language_id = language.id
         self.g.langs = self.g.langs
         self.retranslate.emit()
     name = self.g.name(language)
     icon = os.path.join('flags', language.iso3166 + '.png')
     icon = QtGui.QIcon(resource_filename('qdex', icon))
     self.addMenuItem(self.gamelangMenu, name, _retranslate,
             icon=icon,
             checkable=True,
             checked=self.g.session.default_language_id ==
                     language.id,
         )
예제 #7
0
파일: metamodel.py 프로젝트: encukou/qdex
 def __init__(self, name, icon=None, children=(), g=None, model=None):
     self.parent = None
     self.icon = icon
     if isinstance(icon, basestring):
         self._icon = QtGui.QIcon(icon)
     elif isinstance(icon, list):
         self._icon = QtGui.QIcon(resource_filename(*icon))
     else:
         #raise AssertionError("Can't set icon directly")
         self._icon = icon
     self.name = name
     self.g = g
     self.children = [MetamodelItem.load(child, g=g) for child in children]
     if model:
         self.model = TableModel.load(model, g=g)
     for child in self.children:
         child.parent = self
예제 #8
0
 def __init__(self, name, icon=None, children=(), g=None, model=None):
     self.parent = None
     self.icon = icon
     if isinstance(icon, basestring):
         self._icon = QtGui.QIcon(icon)
     elif isinstance(icon, list):
         self._icon = QtGui.QIcon(resource_filename(*icon))
     else:
         #raise AssertionError("Can't set icon directly")
         self._icon = icon
     self.name = name
     self.g = g
     self.children = [MetamodelItem.load(child, g=g) for child in children]
     if model:
         self.model = TableModel.load(model, g=g)
     for child in self.children:
         child.parent = self
예제 #9
0
            def _scope(language):
                def _retranslate():
                    self.g.session.expunge_all()
                    self.g.session.default_language_id = language.id
                    self.g.langs = self.g.langs
                    self.retranslate.emit()

                name = self.g.name(language)
                icon = os.path.join('flags', language.iso3166 + '.png')
                icon = QtGui.QIcon(resource_filename('qdex', icon))
                self.addMenuItem(
                    self.gamelangMenu,
                    name,
                    _retranslate,
                    icon=icon,
                    checkable=True,
                    checked=self.g.session.default_language_id == language.id,
                )
예제 #10
0
            def _scope(lang):
                language = query.filter_by(identifier=lang).one()
                icon = os.path.join('flags', language.iso3166 + '.png')
                icon = QtGui.QIcon(resource_filename('qdex', icon))
                try:
                    name = language.name_map[language]
                except KeyError:
                    name = self.g.name(language)

                def _retranslate():
                    self.g.langs = [lang]

                self.addMenuItem(
                    self.uilangMenu,
                    name,
                    _retranslate,
                    icon=icon,
                    checkable=True,
                    checked=self.g.langs[0] == language.identifier,
                )
예제 #11
0
파일: mainwindow.py 프로젝트: encukou/qdex
    def __init__(self, **globalArgs):
        super(MainWindow, self).__init__()
        self.g = Global(mainwindow=self, **globalArgs)
        self.g.registerRetranslate(self.retranslateUi)
        icon = resource_filename('pokedex-media', 'items/poke-ball.png')
        self.setWindowIcon(QtGui.QIcon(icon))

        splitter = QtGui.QSplitter(self)
        self.setCentralWidget(splitter)

        metaview = MetaModelView(self)
        metaview.setModel(MetaModel(self.g))
        splitter.addWidget(metaview)

        self.mainlistview = QueryView()
        splitter.addWidget(self.mainlistview)

        metaview.selectionModel().currentChanged.connect(lambda index:
                metaview.model().setModelOnView(index, self.mainlistview)
            )
        metaview.selectionModel().select(
                metaview.model().defaultIndex(),
                QtGui.QItemSelectionModel.ClearAndSelect,
            )

        self.resize(800, 600)

        # XXX: The min-size resizing should be done with default data shown,
        # and custom collapsed
        metaview.resizeColumnToContents(0)
        metaview.setMinimumWidth(metaview.columnWidth(0))
        splitter.setStretchFactor(0, 0)
        splitter.setStretchFactor(1, 1)
        splitter.setCollapsible(1, False)
        splitter.setSizes([1, 1])
        splitter.setCollapsible(0, True)

        self.retranslateUi()
예제 #12
0
    def __init__(self, **globalArgs):
        super(MainWindow, self).__init__()
        self.g = Global(mainwindow=self, **globalArgs)
        self.g.registerRetranslate(self.retranslateUi)
        icon = resource_filename('pokedex-media', 'items/poke-ball.png')
        self.setWindowIcon(QtGui.QIcon(icon))

        splitter = QtGui.QSplitter(self)
        self.setCentralWidget(splitter)

        metaview = MetaModelView(self)
        metaview.setModel(MetaModel(self.g))
        splitter.addWidget(metaview)

        self.mainlistview = QueryView()
        splitter.addWidget(self.mainlistview)

        metaview.selectionModel().currentChanged.connect(
            lambda index: metaview.model().setModelOnView(
                index, self.mainlistview))
        metaview.selectionModel().select(
            metaview.model().defaultIndex(),
            QtGui.QItemSelectionModel.ClearAndSelect,
        )

        self.resize(800, 600)

        # XXX: The min-size resizing should be done with default data shown,
        # and custom collapsed
        metaview.resizeColumnToContents(0)
        metaview.setMinimumWidth(metaview.columnWidth(0))
        splitter.setStretchFactor(0, 0)
        splitter.setStretchFactor(1, 1)
        splitter.setCollapsible(1, False)
        splitter.setSizes([1, 1])
        splitter.setCollapsible(0, True)

        self.retranslateUi()
예제 #13
0
파일: mainwindow.py 프로젝트: encukou/qdex
    def about(self):
        """Create and show the About box
        """
        _ = self.g.translator
        about = QtGui.QDialog(self)
        about.setWindowTitle(_(u"About Pokédex"))
        layout = QtGui.QGridLayout(about)

        labels = []
        expanding = QtGui.QSizePolicy(
                QtGui.QSizePolicy.MinimumExpanding,
                QtGui.QSizePolicy.MinimumExpanding,
            )
        iconArgs = []
        for i, thing in enumerate((
                ('pokedex-media', u'items/poke-ball.png'),
                _(u'''<strong>Pokédex 0.1</strong>
                    <br>
                    by Petr “En-Cu-Kou” Viktorin &lt;<a
                    href="*****@*****.**">[email protected]</a>&gt;
                    <br>
                    Provided under the open-source MIT license'''),
                ('pokedex-media', u'pokemon/icons/133.png'),
                _(u'''Data from the veekun database: see <a
                    href="http://veekun.com">http://veekun.com</a>
                    <br>
                    Thanks to Eevee, Zhorken, magical and everyone else who
                    contributed'''),
                ('qdex', u'icons/palette.png'),
                _(u'''Fugue icon set by Yusuke Kamiyamane &lt;<a
                    href="http://p.yusukekamiyamane.com"
                    >http://p.yusukekamiyamane.com</a>&gt;
                    <br>
                    Used under the <a
                    href="http://creativecommons.org/licenses/by/3.0"
                    >Creative Commons Attribution 3.0 license</a>'''),
                ('qdex', u'icons/globe.png'),
                _(u'''Flag icons from <a
                    href="http://www.famfamfam.com/lab/icons/flags/"
                    >famfamfam.com</a> by Mark James'''),
                ('qdex', u'icons/auction-hammer--exclamation.png'),
                _(u'''Pokémon and everything related to them is intellectual
                    property of Nintendo, Creatures, inc., and GAME FREAK, inc.
                    and is protected by various copyrights and trademarks.
                    The author believes that the use of this intellectual
                    property for a fan reference is covered by fair use and
                    that the software is significantly impaired without said
                    property included. Any use of this copyrighted property
                    is at your own legal risk.'''),
            )):
            try:
                package, path = thing
            except (ValueError, TypeError):
                label = QtGui.QLabel(
                        ' '.join(thing.split()),
                        textInteractionFlags=Qt.LinksAccessibleByMouse
                                |Qt.TextSelectableByMouse,
                        sizePolicy=expanding,
                        wordWrap=len(thing) > 300,
                    )
                layout.addWidget(label, i, 1)
                labels.append(label)
                iconArgs[-1][3] += 1
            else:
                if i:
                    layout.setRowStretch(i, 1)
                filename = resource_filename(package, path)
                iconArgs.append([
                        QtGui.QLabel(
                                pixmap=QtGui.QPixmap(filename),
                                alignment=Qt.AlignVCenter|Qt.AlignHCenter,
                            ),
                        i + 1, 0, 0, 1
                    ])
        for args in iconArgs:
            layout.addWidget(*args)

        layout.setRowStretch(i + 1, 1)
        buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
        buttonBox.accepted.connect(about.accept)
        layout.addWidget(buttonBox, i + 2, 0, 1, 2)

        about.exec_()
예제 #14
0
    def about(self):
        """Create and show the About box
        """
        _ = self.g.translator
        about = QtGui.QDialog(self)
        about.setWindowTitle(_(u"About Pokédex"))
        layout = QtGui.QGridLayout(about)

        labels = []
        expanding = QtGui.QSizePolicy(
            QtGui.QSizePolicy.MinimumExpanding,
            QtGui.QSizePolicy.MinimumExpanding,
        )
        iconArgs = []
        for i, thing in enumerate((
            ('pokedex-media', u'items/poke-ball.png'),
                _(u'''<strong>Pokédex 0.1</strong>
                    <br>
                    by Petr “En-Cu-Kou” Viktorin &lt;<a
                    href="*****@*****.**">[email protected]</a>&gt;
                    <br>
                    Provided under the open-source MIT license'''),
            ('pokedex-media', u'pokemon/icons/133.png'),
                _(u'''Data from the veekun database: see <a
                    href="http://veekun.com">http://veekun.com</a>
                    <br>
                    Thanks to Eevee, Zhorken, magical and everyone else who
                    contributed'''),
            ('qdex', u'icons/palette.png'),
                _(u'''Fugue icon set by Yusuke Kamiyamane &lt;<a
                    href="http://p.yusukekamiyamane.com"
                    >http://p.yusukekamiyamane.com</a>&gt;
                    <br>
                    Used under the <a
                    href="http://creativecommons.org/licenses/by/3.0"
                    >Creative Commons Attribution 3.0 license</a>'''),
            ('qdex', u'icons/globe.png'),
                _(u'''Flag icons from <a
                    href="http://www.famfamfam.com/lab/icons/flags/"
                    >famfamfam.com</a> by Mark James'''),
            ('qdex', u'icons/auction-hammer--exclamation.png'),
                _(u'''Pokémon and everything related to them is intellectual
                    property of Nintendo, Creatures, inc., and GAME FREAK, inc.
                    and is protected by various copyrights and trademarks.
                    The author believes that the use of this intellectual
                    property for a fan reference is covered by fair use and
                    that the software is significantly impaired without said
                    property included. Any use of this copyrighted property
                    is at your own legal risk.'''),
        )):
            try:
                package, path = thing
            except (ValueError, TypeError):
                label = QtGui.QLabel(
                    ' '.join(thing.split()),
                    textInteractionFlags=Qt.LinksAccessibleByMouse
                    | Qt.TextSelectableByMouse,
                    sizePolicy=expanding,
                    wordWrap=len(thing) > 300,
                )
                layout.addWidget(label, i, 1)
                labels.append(label)
                iconArgs[-1][3] += 1
            else:
                if i:
                    layout.setRowStretch(i, 1)
                filename = resource_filename(package, path)
                iconArgs.append([
                    QtGui.QLabel(
                        pixmap=QtGui.QPixmap(filename),
                        alignment=Qt.AlignVCenter | Qt.AlignHCenter,
                    ), i + 1, 0, 0, 1
                ])
        for args in iconArgs:
            layout.addWidget(*args)

        layout.setRowStretch(i + 1, 1)
        buttonBox = QtGui.QDialogButtonBox(QtGui.QDialogButtonBox.Ok)
        buttonBox.accepted.connect(about.accept)
        layout.addWidget(buttonBox, i + 2, 0, 1, 2)

        about.exec_()