Add bayer mask selection

This commit is contained in:
2024-01-08 15:41:08 +01:00
parent 8fc2078a3a
commit 67355a82b7
5 changed files with 51 additions and 2 deletions
+33
View File
@@ -173,6 +173,26 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
viewMenu->addAction(tr("Zoom Out"), m_imageGL, SLOT(zoomOut()), QKeySequence::ZoomOut);
viewMenu->addAction(tr("Best Fit"), m_imageGL, SLOT(bestFit()), QKeySequence("Ctrl+1"));
viewMenu->addAction(tr("100%"), m_imageGL, SLOT(oneToOne()));
viewMenu->addSeparator();
QMenu *bayerMenu = viewMenu->addMenu(tr("Bayer mask"));
QActionGroup *bayerActionGroup = new QActionGroup(this);
QAction *rggbAction = bayerActionGroup->addAction(tr("RGGB"));//0 0
QAction *grbgAction = bayerActionGroup->addAction(tr("GRBG"));//1 0
QAction *gbrgAction = bayerActionGroup->addAction(tr("GBRG"));//0 1
QAction *bggrAction = bayerActionGroup->addAction(tr("BGGR"));//1 1
rggbAction->setCheckable(true); rggbAction->setData(0);
grbgAction->setCheckable(true); grbgAction->setData(1);
gbrgAction->setCheckable(true); gbrgAction->setData(2);
bggrAction->setCheckable(true); bggrAction->setData(3);
bayerMenu->addActions({rggbAction, grbgAction, gbrgAction, bggrAction});
viewMenu->addMenu(bayerMenu);
connect(bayerActionGroup, &QActionGroup::triggered, [this](QAction *action){
int data = action->data().toInt();
m_imageGL->imageWidget()->setBayerMask(data);
QSettings settings;
settings.setValue("mainwindow/bayermask", data);
});
QAction *thumbnailsAction = viewMenu->addAction(tr("Thumbnails"), [this](bool checked){
if(SettingsDialog::loadThumbsizes())m_ringList->clearThumbnails();
m_imageGL->imageWidget()->allocateThumbnails(m_ringList->imageNames());
@@ -237,6 +257,19 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
QSettings settings;
restoreGeometry(settings.value("mainwindow/geometry").toByteArray());
restoreState(settings.value("mainwindow/state").toByteArray());
int bayermask = settings.value("mainwindow/bayermask", 0).toInt();
switch(bayermask)
{
default:
case 0:
rggbAction->setChecked(true); break;
case 1:
grbgAction->setChecked(true); break;
case 2:
gbrgAction->setChecked(true); break;
case 3:
bggrAction->setChecked(true); break;
}
QStringList standardLocations = QStandardPaths::standardLocations(QStandardPaths::PicturesLocation);
if(standardLocations.size())