예제 #1
0
파일: main.cpp 프로젝트: chegestar/butaca
Q_DECL_EXPORT int main(int argc, char *argv[])
{
    QApplication *app;
#ifdef QT_SIMULATOR
    app = new QApplication(argc, argv);
#else
    app = MDeclarativeCache::qApplication(argc, argv);
#endif
    app->setApplicationName("Butaca");
    app->setOrganizationDomain("com.simonpena");
    app->setOrganizationName("simonpena");

    // Assume that strings in source files are UTF-8
    QTextCodec::setCodecForTr(QTextCodec::codecForName("utf8"));

    QString locale(QLocale::system().name());
    QTranslator translator;

    if (translator.load("l10n/butaca." + locale, ":/")) {
        app->installTranslator(&translator);
    } else {
        translator.load("l10n/butaca.en.qm", ":/");
        app->installTranslator(&translator);
    }

    QDeclarativeView *view;
#ifdef QT_SIMULATOR
    view = new QDeclarativeView();
#else
    view = MDeclarativeCache::qDeclarativeView();
#endif

    view->engine()->setOfflineStoragePath(
                QDesktopServices::storageLocation(QDesktopServices::DataLocation));

    QDeclarativeContext *context = view->rootContext();

    // The Movie Database uses "-" as the divider between language and country code
    context->setContextProperty("appLocale", locale.left(locale.indexOf("_")));
    Controller *controller = new Controller(context);

    view->engine()->setNetworkAccessManagerFactory(new CustomNetworkAccessManagerFactory);
    view->setSource(QUrl("qrc:/qml/main.qml"));
    view->showFullScreen();

    int result = app->exec();

    delete controller;
    delete view;
    delete app;

    return result;
}
예제 #2
0
파일: main.cpp 프로젝트: azhi/qcrypt
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QDeclarativeView view;

    view.setSource(QUrl("qrc:/qml/qc_main_from/untitled.qml"));

    srand(time(NULL));
    UiController* uicontr = new UiController(view.rootObject());
    ConnectionController* cc = new ConnectionController(uicontr);

    view.rootContext()->setContextProperty("cc", cc);
    view.rootContext()->setContextProperty("alice", cc->getTransmitterInstance());
    view.rootContext()->setContextProperty("bob", cc->getReceiverInstance());
    view.rootContext()->setContextProperty("eve", cc->getIntercepterInstance());

    //cc->generateKey(100);
    view.show();

    return app.exec();
}
예제 #3
0
//![0]
int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QDeclarativeView view;
    MyClass myClass;
    view.rootContext()->setContextProperty("myObject", &myClass);

    view.setSource(QUrl::fromLocalFile("MyItem.qml"));
    view.show();

    return app.exec();
}
예제 #4
0
파일: main.cpp 프로젝트: OlegZiakun/Tests
Q_DECL_EXPORT int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QDeclarativeView view;
    TadaListEngine tdlEngine(view);

    view.rootContext()->setContextProperty("tdlObject", &tdlEngine);
    tdlEngine.loadView("qml/TadaList/main.qml");

    return app.exec();
}
예제 #5
0
파일: main.cpp 프로젝트: Afreeca/qt
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

//![0]
QDeclarativeView view;
view.rootContext()->setContextProperty("currentDateTime", QDateTime::currentDateTime());
view.setSource(QUrl::fromLocalFile("MyItem.qml"));
view.show();
//![0]

    return app.exec();
}
예제 #6
0
//![0]
int main(int argc, char *argv[]) {
    QApplication app(argc, argv);

    QDeclarativeView view;

    ApplicationData data;
    view.rootContext()->setContextProperty("applicationData", &data);

    view.setSource(QUrl::fromLocalFile("MyItem.qml"));
    view.show();

    return app.exec();
}
예제 #7
0
IconView::IconView(QAbstractItemModel *model, QWidget *parent) :
    QFrame(parent), m_model(model)
{
    QDeclarativeView *view = new QDeclarativeView(this);
    QDeclarativeContext *ctxt = view->rootContext();
    ctxt->setContextProperty("orderModel", m_model);
    ctxt->setContextProperty("sizeData", this);
    view->setSource(QUrl("qrc:IconView.qml"));
    QHBoxLayout *mainLayout = new QHBoxLayout;
    mainLayout->setMargin(0);
    mainLayout->addWidget(view);
    setLayout(mainLayout);
}
예제 #8
0
파일: main.cpp 프로젝트: Hnz/qtmc
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    // Load settings
    QSettings settings;
    settings.setValue("dbtype", "QSQLITE");
    settings.setValue("dbname", "/tmp/testdb.sqlite3");

    // Translator
    QString translationfile = QString("qtmc_nl");
    QTranslator translator;
    if (!translator.load(translationfile) &&
            !translator.load(translationfile,
                             app.applicationDirPath() +  "../lib/qtmc/translations/")) {
        qWarning() << "Failed to load translation file";
    }
    app.installTranslator(&translator);

    // Open database
    QSqlDatabase db = QSqlDatabase::addDatabase(settings.value("dbtype").toString());
    db.setDatabaseName(settings.value("dbname").toString());
    //db.setDatabaseName(":memory:");

    // Check if database is open
    if (!db.open()) {
        qWarning() << app.tr("Cannot open database") << settings.value("dbname");
        return 1;
    }

    // Create mediadb
    MediaDB *mediadb = new MediaDB();
    qDebug() << app.tr("QtMC version") << QString(QTMC_VERSION);
    qDebug() << app.tr("MediaDB version") << mediadb->version();

    // Create qml-view and connect quit-signal
    QDeclarativeView *view = new QDeclarativeView;
    QObject::connect(view->engine(), SIGNAL(quit()), view, SLOT(close()));

    // Expose c++ object to qml
    QDeclarativeContext *ctxt = view->rootContext();
    ctxt->setContextProperty("MediaDB", mediadb);
    ctxt->setContextProperty("Settings", &settings);

    // Run view
    view->setSource(QUrl(app.applicationDirPath() + "/../lib/qtmc/qml/QtMC.qml"));
    view->show();
    //view->showFullScreen();

    return app.exec();
}
예제 #9
0
int
main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    Controller controller;

    QDeclarativeView view;
    view.rootContext()->setContextProperty("controller", &controller);
    view.setSource(QUrl("qrc:/gui.qml"));
    view.showFullScreen();

    return app.exec();
}
//![0]
int main(int argc, char ** argv)
{
    QApplication app(argc, argv);

    QDeclarativeView view;

    QDirModel model;
    view.rootContext()->setContextProperty("dirModel", &model);

    view.setSource(QUrl::fromLocalFile("view.qml"));
    view.show();

    return app.exec();
}
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QDeclarativeView view;
    QDeclarativeContext *context = view.rootContext();
    context->setContextProperty("backgroundColor",
                                QColor(Qt::yellow));

    view.setSource(QUrl::fromLocalFile("main.qml"));
    view.show();

    return app.exec();
}
예제 #12
0
int main(int argc, char **argv)
{
    QApplication app (argc, argv);
    app.setOrganizationName("SfietKonstantin");
    app.setApplicationName("qfb-demo");

    Bridge bridge;

    QDeclarativeView view;
    view.engine()->addImportPath(IMPORT_PATH);
    view.rootContext()->setContextProperty("BRIDGE", &bridge);
    view.setSource(QUrl(MAIN_QML_FILE));
    view.show();

    return app.exec();
}
예제 #13
0
Q_DECL_EXPORT int main(int argc, char *argv[])
{
    qDebug() << "THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";
    QApplication *app = MDeclarativeCache::qApplication(argc, argv);
    app->setOrganizationName("frals");
    app->setOrganizationDomain("frals.se");
    app->setApplicationName("lpmcustomizer");

    QFont font = QFont("Nokia Pure Text Light");
    app->setFont(font);

    QDeclarativeView *view = MDeclarativeCache::qDeclarativeView();
    QDeclarativeContext *ctx = view->rootContext();

    view->setResizeMode(QDeclarativeView::SizeRootObjectToView);
    view->setInputMethodHints(Qt::ImhNoPredictiveText);

    qmlRegisterType<GalleryItem>("LPM", 1, 0, "GalleryItem");

    PlatformIntegration *p = new PlatformIntegration(ctx);
    ImageGenerator *ig = new ImageGenerator();
    ImageSaver *is = new ImageSaver(ig);

    QObject::connect(is, SIGNAL(imageSaved(QString)), p, SLOT(onImageSaved(QString)));

    view->engine()->addImageProvider(QString("logocreator"), ig);

    ctx->setContextProperty("platform", p);
    ctx->setContextProperty("imageSaver", is);

    p->updateGallery();

    QObject::connect(view->engine(), SIGNAL(quit()), app, SLOT(quit()));

//    QString pathInInstallDir = QCoreApplication::applicationDirPath()
//            + QLatin1String("/../") + "qml/lpmcustomizer";

    view->setSource(QUrl("qrc:/qml/main.qml"));
    view->showFullScreen();

//    QmlApplicationViewer viewer;
//    viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
//    viewer.setMainQmlFile(QLatin1String("qml/LPMCustomizer/main.qml"));
//    viewer.showExpanded();

    return app->exec();
}
예제 #14
0
파일: main.cpp 프로젝트: cgaebel/gluon
int main( int argc, char** argv )
{
    QApplication app( argc, argv );
    app.setOrganizationName( "KDE Gluon" );
    app.setApplicationName( "Gluon QML Player" );

    QDeclarativeView view;
    GluonPlayer::Authentication *auth = GluonPlayer::Authentication::instance();
    view.rootContext()->setContextProperty("authentication", auth);
    view.setSource(QUrl("qrc:/main.qml"));
    view.show();

    QObject *obj = view.rootObject();
    QObject *login = obj->findChild<QObject *>("login");
    QObject::connect(auth, SIGNAL(initialized()), login, SLOT(providerSet()));

    return app.exec();
}
예제 #15
0
파일: main.cpp 프로젝트: jedillama/llamaui
int main( int argc, char** argv )
{
	QApplication app( argc, argv );

	Config* config = new Config( &app );

	// If we can't process the command-line or set up the database
	// there's no point continuing
	if ( !processCommandLine() || !setupDatabase() )
		return 0;

	QDeclarativeView view;

	view.connect( view.engine(), SIGNAL(quit()), SLOT(close()) );
	view.setResizeMode( QDeclarativeView::SizeRootObjectToView );

	// Register custom types for access to certail enums from QML
	qmlRegisterType< SoundEngine >( "net.randalflagg.llamaui", 1, 0, "SoundEngine" );
	qmlRegisterType< KeyboardMap >( "net.randalflagg.llamaui", 1, 0, "KeyboardMap" );
	qmlRegisterType< SystemProcess >( "net.randalflagg.llamaui", 1, 0, "SystemProcess" );

	QDeclarativeContext* rootContext = view.rootContext();

	// Initalise the keyboard key/action mapper
	if ( !initKeyboardMap( rootContext ) )
		return 0;

	rootContext->setContextProperty( "config", config );
	initSoundEngine( rootContext );
	initGameMenu( rootContext );
	initEmulatorMenu( rootContext );
	initSystemMenu( rootContext );
	initGameLauncher( rootContext );

	// Create the interface
	QDir dir( Config::instance()->value( "paths", "qmlDir" ).toString() );
	view.setSource( QUrl::fromLocalFile( dir.absoluteFilePath( "main.qml" ) ) );
	view.showFullScreen();

	// Hide the mouse cursor
	app.setOverrideCursor( QCursor( Qt::BlankCursor ) );

	return app.exec();
}
예제 #16
0
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    //QmlApplicationViewer viewer;
    //viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
    //viewer.setMainQmlFile(QLatin1String("qml/untitled2/main.qml"));
    //viewer.showExpanded();
    QDeclarativeView viewer;
    ProcExec processExecuter;
    viewer.rootContext()->setContextProperty("processExecute", &processExecuter);
    viewer.setSource(QUrl::fromLocalFile("qml/launcher.qml"));


    viewer.show();


    return app.exec();
}
예제 #17
0
//![0]
int main(int argc, char ** argv)
{
    QApplication app(argc, argv);

    AnimalModel model;
    model.addAnimal(Animal("Wolf", "Medium"));
    model.addAnimal(Animal("Polar bear", "Large"));
    model.addAnimal(Animal("Quoll", "Small"));

    QDeclarativeView view;
    QDeclarativeContext *ctxt = view.rootContext();
    ctxt->setContextProperty("myModel", &model);
//![0]

    view.setSource(QUrl("qrc:view.qml"));
    view.show();

    return app.exec();
}
예제 #18
0
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    QApplication::setGraphicsSystem("opengl");

    QDeclarativeView* view = new QDeclarativeView();
    QDeclarativeTouchArea::registerQML();

    QGLFormat format = QGLFormat::defaultFormat();
    format.setSampleBuffers(false);

    QGLWidget* glWidget = new QGLWidget(format, view);
    glWidget->setAutoFillBackground(false);

    QDeclarativeContext* context = view->rootContext();

    AudioControl audioControl(context);
    audioControl.start();

    QMutex& waitAudio = audioControl.getStartLock();
    qDebug("main::waiting for Audio thread to initialize");
    waitAudio.lock();
    qDebug("main::Audio thread initialized, setting up qml window");
    waitAudio.unlock();

    QRect screenSize = app.desktop()->screenGeometry();
    context->setContextProperty("ScreenWidth", screenSize.width());
    context->setContextProperty("ScreenHeight", screenSize.height());
    context->setContextProperty("PlayControl", &audioControl);

    view->setViewport(glWidget);
    view->setSource(QUrl("qrc:/qml/funkeysynth/main.qml"));
    view->setResizeMode(QDeclarativeView::SizeRootObjectToView);
    //qDebug("main::showing qml window");
    //view->showFullScreen();    
    view->showNormal();

    app.exec();

    delete view;

    return 0;
}
예제 #19
0
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , plot_(0)
    , zoomer_( 0 )
    , picker_( 0 )
    , panner_( 0 )
    , pMethod_( 0 )
    , pModel_( 0 )
{
    plot_ = new Plot(this);
    setCentralWidget(plot_);

    zoomer_ = new QwtPlotZoomer( QwtPlot::xBottom, QwtPlot::yLeft, plot_->canvas() );
    zoomer_->setMousePattern( QwtEventPattern::MouseSelect2, Qt::RightButton, Qt::ControlModifier );
    zoomer_->setMousePattern( QwtEventPattern::MouseSelect3, Qt::RightButton );
    zoomer_->setRubberBand( QwtPicker::RectRubberBand );

    pMethod_ = new adcontrols::CentroidMethod;
    pModel_ = new CentroidMethodModel;
    int res = qmlRegisterType< CentroidMethodModel >( "com.scienceliaison.qml", 1, 0, "CentroidModel" );


    QDeclarativeView * view = new QDeclarativeView;
    view->setResizeMode(QDeclarativeView::SizeRootObjectToView);

    QDeclarativeContext * ctxt = view->rootContext();
    ctxt->setContextProperty( "centroidModel", pModel_ );

    //view->setSource( QUrl::fromLocalFile( "qml/ProcessMethodEditor.qml" ) );
    view->setSource( QUrl( "qrc:/files/qml/ProcessMethodEditor.qml") );

    QList< QDeclarativeError> errors = view->errors();
    for ( QList<QDeclarativeError>::const_iterator it = errors.begin(); it != errors.end(); ++it )
        QMessageBox::warning( parent, "QDeclarativeError", it->description() );

    view->setMinimumSize( 200, 250 );
    view->resize( QSize( 200, 350 ) );
    QDockWidget * dock = new QDockWidget;
    dock->setWidget( view );

    addDockWidget ( Qt::BottomDockWidgetArea, dock );
    draw_spectrum();
}
예제 #20
0
Q_DECL_EXPORT int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QDeclarativeView viewer;

    Helper helper;
    viewer.rootContext()->setContextProperty("Helper", &helper);

    viewer.setAttribute(Qt::WA_OpaquePaintEvent);
    viewer.setAttribute(Qt::WA_NoSystemBackground);
    viewer.viewport()->setAttribute(Qt::WA_OpaquePaintEvent);
    viewer.viewport()->setAttribute(Qt::WA_NoSystemBackground);

    viewer.setSource(QUrl(QLatin1String("qrc:/qml/main.qml")));
    viewer.showFullScreen();

    return app.exec();
}
예제 #21
0
파일: main.cpp 프로젝트: dididu/HiCast
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);   

    qmlRegisterType<Episode>("PodcastLib", 1, 0, "Episode");

    PodcastListModel model;

    model.addPodcast(Podcast("RT1", "http://feed1here"));
    model.addPodcast(Podcast("RT2", "http://feed2here"));
    model.addPodcast(Podcast("RT3", "http://feed3here"));

//    model.saveModel(QString("hicast.dat"));

    //model.loadModel(QString("hicast.dat"));

    QDeclarativeView view;
    QDeclarativeContext *ctxt = view.rootContext();
    ctxt->setContextProperty("myModel", &model);       

    view.setSource(QUrl("qrc:/qml/Main.qml"));
    view.setResizeMode(QDeclarativeView::SizeRootObjectToView);

    QObject::connect((QObject*)view.engine(), SIGNAL(quit()), &a, SLOT(quit()));


#if defined(Q_WS_MAEMO_5)
    view.setGeometry(QRect(0, 0, 800, 480));
    view.showFullScreen();
#elif defined(Q_WS_S60)
    view.setGeometry(QRect(0, 0, 640, 360));
    view.showFullScreen();
#else
    view.setGeometry(QRect(100, 100, 800, 480));
    view.show();
#endif

    a.exec();

    PodcastStore::getInstance()->close();

    return 0;
}
예제 #22
0
 int main(int argc, char ** argv)
 {
     QApplication app(argc, argv);

     ProductModel model;

     for(int x=0; x<50; x++)
     {
        model.addProduct(Product("Some product " + QString::number(x+1), "$35,00"));
     }

     QDeclarativeView view;
     QDeclarativeContext *ctxt = view.rootContext();
     ctxt->setContextProperty("myModel", &model);

     view.setSource(QUrl("qml/view.qml"));
     view.show();
     view.setWindowTitle("Products List");

     return app.exec();
 }
예제 #23
0
int main(int argc, char *argv[])
{
    QApplication application(argc, argv);

    Utility utility;

    QDeclarativeView view;
    view.setSource(QUrl(QLatin1String("qrc:///musicbrowser.qml")));
    view.setResizeMode(QDeclarativeView::SizeRootObjectToView);
    view.rootContext()->setContextProperty(QLatin1String("Utility"), &utility);

    QObject::connect(view.engine(), SIGNAL(quit()), qApp, SLOT(quit()));

#if defined(Q_OS_SYMBIAN) || defined(Q_WS_MAEMO_5)
    view.showFullScreen();
#else
    view.show();
#endif

    return application.exec();
}
예제 #24
0
파일: main.cpp 프로젝트: roymuste/Qt
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
//    int xxx = -1;
    unsigned int x = 129;
    char c = x;
    qDebug()<<c;
//    c = c && 0xFF;
    x = c;
    qDebug()<<x;

    SmoothedAnimation list(new BaseObject);
    QDeclarativeView view;
    Controller ctrr(&view);
    QDeclarativeContext* context = view.rootContext();
    context->setContextProperty("Ctrr", &ctrr);
    view.setSource(QUrl::fromLocalFile("SimpleTest.qml"));
    view.show();

    return a.exec();
}
예제 #25
0
파일: main.cpp 프로젝트: Andreas665/qt
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    qmlRegisterType<ImageViewer>("MyLibrary", 1, 0, "ImageViewer");

    QDeclarativeView standalone;
    standalone.setSource(QUrl::fromLocalFile("standalone.qml"));
    standalone.show();

//![connections]
ImageViewer viewer;

QDeclarativeView view;
view.rootContext()->setContextProperty("imageViewer", &viewer);

view.setSource(QUrl::fromLocalFile("MyItem.qml"));
view.show();
//![connections]

    return app.exec();
}
예제 #26
0
Q_DECL_EXPORT int main(int argc, char *argv[])
{
/*
    QScopedPointer<QApplication> app(createApplication(argc, argv));

    QmlApplicationViewer viewer;
    viewer.setOrientation(QmlApplicationViewer::ScreenOrientationLockLandscape);
    viewer.setMainQmlFile(QLatin1String("qml/KidPuzzle/main.qml"));
    //viewer.showExpanded();
    viewer.showFullScreen();

    Ponger ponger(&viewer);
    viewer.rootContext()->setContextProperty("ponger", &ponger);
*/

    QApplication *app = new QApplication(argc, argv);
    QDeclarativeView *view = new QDeclarativeView();

    Flipper flipper;
    flipper.setView(view);
    view->rootContext()->setContextProperty("ponger", &flipper);

    view->setSource(QUrl("file:///opt/KidPuzzle/qml/KidPuzzle/main.qml"));
    view->showFullScreen();
    view->setWindowTitle("Puzzle");
    //Flickr removal
    view->setAttribute(Qt::WA_OpaquePaintEvent);
    view->setAttribute(Qt::WA_NoSystemBackground);
    view->viewport()->setAttribute(Qt::WA_OpaquePaintEvent);
    view->viewport()->setAttribute(Qt::WA_NoSystemBackground);
    QObject::connect(view->engine(), SIGNAL(quit()), view, SLOT(close()));
/*
    Ponger ponger(view);
    view->rootContext()->setContextProperty("ponger", &ponger);
*/

    return app->exec();

}
예제 #27
0
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    QMainWindow window;

    QDeclarativeView* v = new QDeclarativeView;
    window.setCentralWidget(v);
    v->setSource(QUrl::fromLocalFile(("qml/on-networks_new/main.qml")));
    // expose window object to QML
    v->rootContext()->setContextProperty("mainwindow",&window);

//    window.setStyleSheet("background:transparent;");
//    window.setAttribute(Qt::WA_TranslucentBackground);
    window.setWindowFlags(Qt::FramelessWindowHint);
    window.show();

//    window.setWindowFlags(Qt::FramelessWindowHint); //隐藏边框和标题栏
      window.setGeometry(QRect(100,20,850,700));  //设置窗体的位置和大小
//    window.setWindowTitle("on networks coach");

    app.exec();
}
예제 #28
0
/**
 * @short Main
 *
 * Entry point of the application.
 *
 * @param argc argc.
 * @param argv argv.
 * @return exit code.
 */
Q_DECL_EXPORT int main(int argc, char *argv[])
{
#ifdef MEEGO_EDITION_HARMATTAN
    QScopedPointer<QApplication> scopedApp(MDeclarativeCache::qApplication(argc, argv));
    QScopedPointer<QDeclarativeView> scopedView (MDeclarativeCache::qDeclarativeView());
    QApplication *app = scopedApp.data();
    QDeclarativeView *view = scopedView.data();
#else
    QApplication *app = new QApplication(argc, argv);
    QDeclarativeView *view = new QDeclarativeView();
#endif
    app->setApplicationName("Widgets");
    app->setOrganizationName("SfietKonstantin");


    qmlRegisterType<RemoteSettingsManager>("org.SfietKonstantin.widgets.app", 1, 0,
                                           "RemoteSettingsManager");
    qmlRegisterType<ImageSupport>("org.SfietKonstantin.widgets.app", 1, 0, "ImageSupport");
    qmlRegisterType<WebAndMailHandler>("org.SfietKonstantin.widgets.app", 1, 0,
                                       "WebAndMailHandler");
    view->rootContext()->setContextProperty("BACKGROUND_FOLDER", BACKGROUND_FOLDER);


#ifdef IMPORT_DIR
    view->engine()->addImportPath(IMPORT_DIR);
#endif
    view->setSource(QUrl(MAIN_QML_PATH));

    QObject::connect(view->engine(), SIGNAL(quit()), view, SLOT(close()));
#ifdef MEEGO_EDITION_HARMATTAN
    view->showFullScreen();
#else
    view->show();
#endif

    return app->exec();
}
예제 #29
0
int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    BookModel bookModel;

    QSortFilterProxyModel proxy;
    proxy.setSourceModel(&bookModel);

    proxy.setFilterRole(BookModel::NameRole);
    proxy.setFilterCaseSensitivity(Qt::CaseInsensitive);

    proxy.setSortRole(BookModel::NameRole);
    proxy.setDynamicSortFilter(true);
    proxy.sort(0);


    QDeclarativeView view;
    view.rootContext()->setContextProperty("bookModel", &proxy);
    view.setSource(QUrl::fromLocalFile("main.qml"));
    view.show();

    return app.exec();
}
예제 #30
0
int Dialog::showDialog(const QString& view, QObject* viewModel, int type)
{
    QDialog* dialog = NULL;
    QMainWindow* mainWindow = NULL;
    QWidget* windowWidget = NULL;
    QWidget* layoutWidget = NULL;

    switch (type)
    {
    case Dialog::MainWindow:
        mainWindow = new QMainWindow();
        windowWidget = mainWindow;
        layoutWidget = new QWidget(windowWidget);
        mainWindow->setCentralWidget(layoutWidget);
        break;

    case Dialog::ModalDialog:
        dialog = new QDialog(QApplication::activeWindow());
        windowWidget = dialog;
        layoutWidget = dialog;
        break;

    default:
        dialog = new QDialog();
        windowWidget = dialog;
        layoutWidget = dialog;
        break;
    }

    QGridLayout* layout = new QGridLayout(layoutWidget);

    // Create view

    QDeclarativeView* v = new QDeclarativeView(layoutWidget);

    if (viewModel)
    {
        int count = viewModel->metaObject()->propertyCount();
        for (int i = 0; i < count; ++i)
        {
            QMetaProperty p = viewModel->metaObject()->property(i);
            if (p.isReadable() && p.typeName() == QString("QDeclarativeImageProvider*"))
            {
                QString name = p.name();
                QDeclarativeImageProvider* value = p.read(viewModel).value<QDeclarativeImageProvider*>();

                v->engine()->addImageProvider(name.toLatin1(), new ProxyImageProvider(value));
            }
        }

        v->rootContext()->setContextProperty("dataContext", viewModel);
    }

    QString path;
    foreach (path, importPaths)
        v->engine()->addImportPath(path);
    foreach (path, pluginPaths)
        v->engine()->addPluginPath(path);

    v->setSource(QUrl(view));
    v->setResizeMode(QDeclarativeView::SizeRootObjectToView);

    // Initialize dialog

    QGraphicsObject* root = v->rootObject();

    QVariant property = root->property("dialogTitle");
    if (property.isValid())
        windowWidget->setWindowTitle(property.toString());

    property = root->property("dialogMinWidth");
    if (property.isValid())
        layoutWidget->setMinimumWidth(property.toInt());

    property = root->property("dialogMinHeight");
    if (property.isValid())
        layoutWidget->setMinimumHeight(property.toInt());

    property = root->property("dialogMaxWidth");
    if (property.isValid())
        layoutWidget->setMaximumWidth(property.toInt());

    property = root->property("dialogMaxHeight");
    if (property.isValid())
        layoutWidget->setMaximumHeight(property.toInt());

    property = root->property("dialogResizable");
    if (property.isValid() && !property.toBool())
        layout->setSizeConstraint(QLayout::SetFixedSize);

    Qt::WindowStates states = windowWidget->windowState();
    Qt::WindowFlags flags = windowWidget->windowFlags();

    property = root->property("dialogMinimizeButton");
    if (property.isValid())
        flags = property.toBool() ? flags | Qt::WindowMinimizeButtonHint : flags & ~Qt::WindowMinimizeButtonHint;

    property = root->property("dialogMaximizeButton");
    if (property.isValid())
        flags = property.toBool() ? flags | Qt::WindowMaximizeButtonHint : flags & ~Qt::WindowMaximizeButtonHint;

    property = root->property("dialogCloseButton");
    if (property.isValid())
        flags = property.toBool() ? flags | Qt::WindowCloseButtonHint : flags & ~Qt::WindowCloseButtonHint;

    property = root->property("dialogFullScreen");
    if (property.isValid())
        states = property.toBool() ? states | Qt::WindowFullScreen : states & ~Qt::WindowFullScreen;

    flags = flags & ~Qt::WindowContextHelpButtonHint;

    windowWidget->setWindowFlags(flags);
    windowWidget->setWindowState(states);

    property = root->property("dialogToolBar");
    if (type == Dialog::MainWindow && property.isValid() && property.typeName() == QString("QDeclarativeListProperty<QDeclarativeItem>"))
    {
        QToolBar* toolbar = new QToolBar(mainWindow);
        toolbar->setMovable(false);
        toolbar->setFloatable(false);
        toolbar->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);
        toolbar->setAllowedAreas(Qt::TopToolBarArea);

        QDeclarativeListProperty<QDeclarativeItem> btnList = property.value< QDeclarativeListProperty<QDeclarativeItem> >();
        int btnCount = btnList.count(&btnList);

        for (int i = 0; i < btnCount; ++i)
        {
            QDeclarativeItem* item = btnList.at(&btnList, i);

            if (!item->property("text").isValid())
                continue;

            QString itemText = item->property("text").toString();
            QString itemTooltip = item->property("tooltip").isValid() ? item->property("tooltip").toString() : "";
            QString itemIconSource = item->property("iconSource").isValid() ? item->property("iconSource").toString() : "";
            int itemIconSize = item->property("iconSize").isValid() ? item->property("iconSize").toInt() : -1;

            if (itemText == "|")
            {
                toolbar->addSeparator();
            }
            else if (itemText == "-")
            {
                QWidget* spacer = new QWidget();
                spacer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Minimum);
                toolbar->addWidget(spacer);
            }
            else
            {
                QAction* action = new QAction(mainWindow);
                action->setText(itemText);
                action->setToolTip(itemTooltip);
                action->setIcon(QIcon(itemIconSource));
                QObject::connect(action, SIGNAL(triggered()), item, SLOT(trigger()));

                if (item->property("enabled").isValid())
                    new PropertyBinding(action, "enabled", item, "enabled", PropertyBinding::OneWay, NULL, this);

                if (item->property("visible").isValid())
                    new PropertyBinding(action, "visible", item, "visible", PropertyBinding::OneWay, NULL, this);

                toolbar->addAction(action);
            }

            if (itemIconSize != -1)
                toolbar->setIconSize(QSize(itemIconSize, itemIconSize));
        }

        mainWindow->setUnifiedTitleAndToolBarOnMac(true);
        mainWindow->addToolBar(toolbar);
    }

    property = root->property("dialogMenu");
    if (type == Dialog::MainWindow && property.isValid() && property.typeName() == QString("QDeclarativeListProperty<QDeclarativeItem>"))
    {
        QDeclarativeListProperty<QDeclarativeItem> list = property.value< QDeclarativeListProperty<QDeclarativeItem> >();
        int count = list.count(&list);

        for (int i = 0; i < count; ++i)
        {
            QDeclarativeItem* item = list.at(&list, i);

            if (!item->property("text").isValid())
                continue;

            QString itemText = item->property("text").toString();
            QMenu * menuItem = mainWindow->menuBar()->addMenu(itemText);

            if (!item->property("submenu").isValid() || item->property("submenu").typeName() != QString("QDeclarativeListProperty<QDeclarativeItem>"))
                continue;

            QDeclarativeListProperty<QDeclarativeItem> innerList = item->property("submenu").value< QDeclarativeListProperty<QDeclarativeItem> >();
            int innerCount = innerList.count(&innerList);

            for (int j = 0; j < innerCount; ++j)
            {
                QDeclarativeItem* innerItem = innerList.at(&innerList, j);

                if (!innerItem->property("text").isValid())
                    continue;

                QString innerItemText = innerItem->property("text").toString();
                QString innerItemShortcut = innerItem->property("shortcut").isValid() ? innerItem->property("shortcut").toString() : "";
                QString innerItemIconSource = innerItem->property("iconSource").isValid() ? innerItem->property("iconSource").toString() : "";

                if (innerItemText == "-")
                {
                    menuItem->addSeparator();
                }
                else
                {
                    QAction * action = menuItem->addAction(QIcon(innerItemIconSource), innerItemText);
                    action->setShortcut(QKeySequence(innerItemShortcut));

                    QObject::connect(action, SIGNAL(triggered()), innerItem, SLOT(trigger()));

                    if (innerItem->property("enabled").isValid())
                        new PropertyBinding(action, "enabled", innerItem, "enabled", PropertyBinding::OneWay, NULL, this);

                    if (innerItem->property("visible").isValid())
                        new PropertyBinding(action, "visible", innerItem, "visible", PropertyBinding::OneWay, NULL, this);
                }
            }
        }
    }

    new DialogCallbacks(windowWidget, v, root);

    // Initialize layout

    layout->setMargin(0);
    layout->addWidget(v, 0, 0);

    // Execute

    switch (type)
    {
    case Dialog::ModalDialog:
        dialog->exec();
        break;

    case Dialog::MainWindow:
    {
        if (mainWindowGeometry.isEmpty())
        {
            mainWindow->adjustSize();
            mainWindow->move(QApplication::desktop()->screen()->rect().center() - mainWindow->rect().center());
        }
        else
            mainWindow->restoreGeometry(mainWindowGeometry);
    }

    default:
        windowWidget->setAttribute(Qt::WA_DeleteOnClose);
        windowWidget->show();
        break;
    }

    int result = 0;

    property = root->property("dialogResult");
    if (property.isValid())
        result = property.toInt();

    if (type == Dialog::ModalDialog)
        delete dialog;

    return result;
}