Ejemplo n.º 1
0
    def _create_qml_gui(self, filename):
        self.qmlEngine = QDeclarativeEngine()
        self.qmlEngine.addImageProvider('cover', self.cover_provider)

        context = self.qmlEngine.rootContext()

        context.setContextProperty('controller', self.controller)
        context.setContextProperty('configProxy', self.config_proxy)
        context.setContextProperty('mediaButtonsHandler',
                self.media_buttons_handler)
        context.setContextProperty('trackerMinerConfig',
                self.tracker_miner_config)

        # Load the QML UI (this could take a while...)
        self.mainWindow = createQmlComponent(
            filename, self.qmlEngine, context, self
        )
Ejemplo n.º 2
0
class qtPodder(QmlCommonQtPodder):
    def __init__(self, args, gpodder_core, dbus_bus_name):
        QmlCommonQtPodder.__init__(self, args, gpodder_core, dbus_bus_name)

        self.controller = Controller(self)
        self.media_buttons_handler = helper.MediaButtonsHandler()
        self.tracker_miner_config = helper.TrackerMinerConfig()
        self.podcast_model = qml.model.gPodderPodcastListModel()
        self.episode_model = desktopModel.gPodderEpisodeListModel(self.config)
        self.last_episode = None

        # A dictionary of episodes that are currently active
        # in some way (i.e. playing back or downloading)
        self.active_episode_wrappers = {}

        # Add the cover art image provider
        self.cover_provider = images.LocalCachedImageProvider()

        # TODO: clear it, only for debug
        try:
            self._create_qml_gui('MainWindow.qml')

            # Proxy to the "main" QML mainWindow
            # for direct access to Qt Properties
            self.main = QObjectProxy(self.mainWindow.object)

        except AttributeError as ex:
            print "main: ", type(ex)
            print ex.args
            return

        self.main.podcastModel = self._create_model_filter(self.podcast_model)
        self.main.episodeModel = self._create_model_filter(self.episode_model)

        self.mainWindow.setVisible(True)

        self.do_start_progress.connect(self.on_start_progress)
        self.do_end_progress.connect(self.on_end_progress)
        self.do_show_message.connect(self.on_show_message)

        podcasts = self.load_podcasts()

        self.resumable_episodes = None
        self.do_offer_download_resume.connect(self.on_offer_download_resume)
        util.run_in_background(self.find_partial_downloads(podcasts))

    def _create_qml_gui(self, filename):
        self.qmlEngine = QDeclarativeEngine()
        self.qmlEngine.addImageProvider('cover', self.cover_provider)

        context = self.qmlEngine.rootContext()

        context.setContextProperty('controller', self.controller)
        context.setContextProperty('configProxy', self.config_proxy)
        context.setContextProperty('mediaButtonsHandler',
                self.media_buttons_handler)
        context.setContextProperty('trackerMinerConfig',
                self.tracker_miner_config)

        # Load the QML UI (this could take a while...)
        self.mainWindow = createQmlComponent(
            filename, self.qmlEngine, context, self
        )
#        self.view.setWindowTitle('gPodder')

    def _create_model_filter(self, model):
        sortFilterProxyModel = desktopModel.SortFilterProxyModel(self)

        sortFilterProxyModel.setSourceModel(model)
        sortFilterProxyModel.setDynamicSortFilter(True)

        return sortFilterProxyModel

    quit = Signal()

    def on_quit(self):
        # Make sure the audio playback is stopped immediately
#        self.main.togglePlayback(None)
        self.save_pending_data()
        self.mainWindow.setVisible(True)
        del self.mainWindow
        self.core.shutdown()
        self.app.quit()

    do_start_progress = Signal(str, int)

    @Slot(str, int)
    def on_start_progress(self, text, value):
        self.main.startProgress(text, value)

    def start_progress(self, text=_('Please wait...'), progress=0):
        self.do_start_progress.emit(text, progress)
Ejemplo n.º 3
0
from PySide.QtCore import qWarning, QUrl

#include "person.h"
from person import Person


# int main(int argc, char ** argv)
if __name__ == '__main__':
    # QCoreApplication app(argc, argv);
    app = QCoreApplication(sys.argv)

    # qmlRegisterType<Person>("People", 1,0, "Person");
    qmlRegisterType(Person, 'People', 1, 0, 'Person');

    # QDeclarativeEngine engine;
    engine = QDeclarativeEngine()

    # QDeclarativeComponent component(&engine, QUrl("qrc:example.qml"));
    component = QDeclarativeComponent(engine, QUrl("example.qml"))

    # Person *person = qobject_cast<Person *>(component.create());
    person = component.create()

    # if (person) {
    if person:
        # qWarning() << "The person's name is" << person->name();
        # qWarning() << "They wear a" << person->shoeSize() << "sized shoe";
        qWarning("The person's name is {p.name}".format(p=person))
        qWarning("They wear a {p.shoeSize} sized shoe".format(p=person))
    # } else {
    else: