MsmWindow::MsmWindow(QWidget *parent) :
    QMainWindow(parent)
{
    // Prepare the view area
    stackedWidget = new QStackedWidget(this);
    setCentralWidget(stackedWidget);

    QQuickView *view = new QQuickView();
    menuView = QWidget::createWindowContainer(view, this);
    menuView->setFocusPolicy(Qt::TabFocus);
    view->setSource(QUrl("qrc:/qml/main.qml"));
    stackedWidget->addWidget(menuView);
    stackedWidget->setCurrentWidget(menuView);

    moduleView = new ModuleView();
    stackedWidget->addWidget(moduleView);

    QQuickItem *rootObject = view->rootObject();
    QQuickItem::connect(rootObject, SIGNAL(itemClicked(QString)),
                     this, SLOT(loadModule(QString)));

    ModuleView::connect(moduleView, &ModuleView::closeRequest,
                        [=]() {
        moduleView->resolveChanges();
        moduleView->closeModules();
        stackedWidget->setCurrentWidget(menuView);
    });

    init();
    readPositionSettings();
}
Ejemplo n.º 2
0
MsmWindow::MsmWindow( QWidget* parent ) :
    QMainWindow( parent ),
    ui( new Ui::MsmWindow )
{
    ui->setupUi( this );

    /* Center the window */
    move( qApp->desktop()->availableGeometry().center() - rect().center() );

    readPositionSettings();

    // Trigger method to setup titles and icons
    buttonShowAllSettings_clicked();

    ui->listWidget->setWordWrap( true );
    ui->listWidget->addSeparator( tr( "System" ) );
    addPageWidget( pageLanguage );
    addPageWidget( pageLanguagePackages );
    addPageWidget( pageKernel );
    addPageWidget( pageUsers );
    addPageWidget( pageTimeDate );
    ui->listWidget->addSeparator( tr( "Hardware" ) );
    addPageWidget( pageKeyboard );
    addPageWidget( pageMhwd );

    // Connect signals and slots
    connect( ui->buttonQuit, &QPushButton::clicked,
             qApp, &qApp->closeAllWindows );
    connect( ui->listWidget, &ListWidget::itemActivated,
             this, &MsmWindow::listWidget_itemActivated );
    connect( ui->buttonAllSettings, &QPushButton::clicked,
             this, &MsmWindow::buttonShowAllSettings_clicked );
    connect( ui->buttonApply, &QPushButton::clicked,
             this, &MsmWindow::buttonApply_clicked );

    ui->buttonAllSettings->setIcon( QIcon::fromTheme( "draw-arrow-back", QIcon( ":/images/resources/back.png" ) ) );
    ui->buttonApply->setIcon( QIcon::fromTheme( "dialog-ok-apply", QIcon( ":/images/resources/apply.png" ) ) );
    ui->buttonQuit->setIcon( QIcon::fromTheme( "gtk-quit", QIcon( ":/images/resources/quit.png" ) ) );
}