예제 #1
0
void MainWindow::editPreferences()
{
    PreferencesDialog dlg(this, &m_appSettings);
    dlg.setModal(true);
    QObject::connect(&dlg, SIGNAL(preferenceChanged()), m_glModelWidget, SLOT(updateGL()));
    dlg.exec();
}
예제 #2
0
void GridPage::setGridColor(const QColor& value)
{
    m_pAppSettings->setValue("GLModelWidget/gridColor", value);
    emit preferenceChanged();
}
예제 #3
0
void GridPage::setgridCellSize(int value)
{
    m_pAppSettings->setValue("GLModelWidget/gridCellSize", value);
    emit preferenceChanged();
}
예제 #4
0
void VoxelPage::setDrawSmooth(int value)
{
    m_pAppSettings->setValue("GLModelWidget/drawSmoothVoxels", value);
    emit preferenceChanged();
}
예제 #5
0
void VoxelPage::setDrawOutlines(int value)
{
    m_pAppSettings->setValue("GLModelWidget/drawVoxelOutlines", value);
    emit preferenceChanged();
}
예제 #6
0
void ModelViewPage::setPreviewEnabled(int state)
{
    m_pAppSettings->setValue("GLModelWidget/previewEnabled", state);
    emit preferenceChanged();
}
예제 #7
0
void ModelViewPage::setBackgroundColor(const QColor& value)
{
    m_pAppSettings->setValue("GLModelWidget/backgroundColor", value);
    emit preferenceChanged();
}
예제 #8
0
void GeneralPage::setFrameOnOpen(int state)
{
    m_pAppSettings->setValue("frameOnOpen", state);
    emit preferenceChanged();
}
예제 #9
0
void GeneralPage::setSaveWindowPositions(int state)
{
    m_pAppSettings->setValue("saveUILayout", state);
    emit preferenceChanged();
}
예제 #10
0
////////////////////////////////////////////////////////////////////////////////
// Main preferences dialog /////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
PreferencesDialog::PreferencesDialog(QWidget* parent, QSettings* appSettings) :
    QDialog(parent),
    m_pAppSettings(appSettings)
{
    m_pContentsWidget = new QListWidget;
    m_pContentsWidget->setMovement(QListView::Static);
    m_pContentsWidget->setSelectionMode(QAbstractItemView::SingleSelection);
    m_pContentsWidget->setMinimumWidth(128);
    m_pContentsWidget->setMaximumWidth(128);
    m_pContentsWidget->setCurrentRow(0);

    QListWidgetItem* generalItem = new QListWidgetItem(m_pContentsWidget);
    generalItem->setText(tr("General"));
    generalItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);

    QListWidgetItem* modelViewItem = new QListWidgetItem(m_pContentsWidget);
    modelViewItem->setText(tr("Model View"));
    modelViewItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);

    QListWidgetItem* voxelItem = new QListWidgetItem(m_pContentsWidget);
    voxelItem->setText(tr("  Voxel"));
    voxelItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);

    QListWidgetItem* gridItem = new QListWidgetItem(m_pContentsWidget);
    gridItem->setText(tr("  Grid"));
    gridItem->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);

    QListWidgetItem* lightingItem = new QListWidgetItem(m_pContentsWidget);
    lightingItem->setText(tr("  Lighting"));
    lightingItem->setFlags(Qt::ItemIsSelectable);

    QListWidgetItem* guidesItem = new QListWidgetItem(m_pContentsWidget);
    guidesItem->setText(tr("  Image Guides"));
    guidesItem->setFlags(Qt::ItemIsSelectable);

    QListWidgetItem* paletteItem = new QListWidgetItem(m_pContentsWidget);
    paletteItem->setText(tr("Palette"));
    paletteItem->setFlags(Qt::ItemIsSelectable);

    QListWidgetItem* keysItem = new QListWidgetItem(m_pContentsWidget);
    keysItem->setText(tr("Custom Keys"));
    keysItem->setFlags(Qt::ItemIsSelectable);

    m_pContentsWidget->setCurrentItem(generalItem);

    connect(m_pContentsWidget,
            SIGNAL(currentItemChanged(QListWidgetItem*,QListWidgetItem*)),
            this, SLOT(changePage(QListWidgetItem*,QListWidgetItem*)));

    m_pPagesWidget = new QStackedWidget;
    m_pGeneralPage = new GeneralPage(this, m_pAppSettings);
    m_pPagesWidget->addWidget(m_pGeneralPage);
    m_pModelViewPage = new ModelViewPage(this, m_pAppSettings);
    m_pPagesWidget->addWidget(m_pModelViewPage);
    m_pVoxelPage = new VoxelPage(this, m_pAppSettings);
    m_pPagesWidget->addWidget(m_pVoxelPage);
    m_pGridPage = new GridPage(this, m_pAppSettings);
    m_pPagesWidget->addWidget(m_pGridPage);
    m_pLightingPage = new LightingPage(this, m_pAppSettings);
    m_pPagesWidget->addWidget(m_pLightingPage);
    m_pGuidesPage = new GuidesPage(this, m_pAppSettings);
    m_pPagesWidget->addWidget(m_pGuidesPage);
    m_pPalettePage = new PalettePage(this, m_pAppSettings);
    m_pPagesWidget->addWidget(m_pPalettePage);
    m_pWIPPage = new WIPPage(this, m_pAppSettings);
    m_pPagesWidget->addWidget(m_pWIPPage);

    QPushButton* cancelButton = new QPushButton(tr("Cancel"));
    connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));

    QPushButton* okButton = new QPushButton(tr("OK"));
    connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
	QHBoxLayout* horizontalLayout = new QHBoxLayout;

    horizontalLayout->addWidget(m_pContentsWidget);
    horizontalLayout->addWidget(m_pPagesWidget, 1);

    QHBoxLayout* buttonsLayout = new QHBoxLayout;
    buttonsLayout->addStretch(1);
    buttonsLayout->addWidget(okButton);
    buttonsLayout->addWidget(cancelButton);

    QVBoxLayout* mainLayout = new QVBoxLayout;
    mainLayout->addLayout(horizontalLayout);
    mainLayout->addStretch(1);
    mainLayout->addSpacing(12);
    mainLayout->addLayout(buttonsLayout);
    setLayout(mainLayout);

    setWindowTitle(tr("Sproxel Settings"));
    resize(QSize(530, 300));

    // Daisy chain the signals
    QObject::connect(m_pGeneralPage,   SIGNAL(preferenceChanged()), this, SIGNAL(preferenceChanged()));
    QObject::connect(m_pModelViewPage, SIGNAL(preferenceChanged()), this, SIGNAL(preferenceChanged()));
    QObject::connect(m_pVoxelPage,     SIGNAL(preferenceChanged()), this, SIGNAL(preferenceChanged()));
    QObject::connect(m_pGridPage,      SIGNAL(preferenceChanged()), this, SIGNAL(preferenceChanged()));
}