Add additional colormaps
This commit is contained in:
@@ -207,6 +207,29 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
|
||||
settings.setValue("mainwindow/bayermask", data);
|
||||
});
|
||||
|
||||
QStringList colormaps = {"Autumn", "Bone", "Jet", "Winter", "Rainbow", "Ocean", "Summer", "Spring", "Cool", "HSV", "Pink", "Hot", "Parula", "Magma",
|
||||
"Inferno", "Plasma", "Viridis", "Cividis", "Twilight", "Twilight shifted", "Turbo", "Deepgreen"};
|
||||
QMenu *colormapMenu = viewMenu->addMenu(tr("Colormap"));
|
||||
QActionGroup *colormapActionGroup = new QActionGroup(this);
|
||||
int idx = 0;
|
||||
QImage cmImg(":/colormap.png");
|
||||
for(QString &colormap : colormaps)
|
||||
{
|
||||
QImage icon = cmImg.copy(0, idx, cmImg.width(), 1).scaled(32, 32);
|
||||
QAction *action = colormapActionGroup->addAction(colormap);
|
||||
action->setIcon(QPixmap::fromImage(icon));
|
||||
action->setCheckable(true); action->setData(idx++);
|
||||
colormapMenu->addAction(action);
|
||||
}
|
||||
viewMenu->addMenu(colormapMenu);
|
||||
connect(colormapActionGroup, &QActionGroup::triggered, [this](QAction *action){
|
||||
int data = action->data().toInt();
|
||||
m_image->setColormap(data);
|
||||
QSettings settings;
|
||||
settings.setValue("mainwindow/colormap", data);
|
||||
});
|
||||
|
||||
|
||||
QAction *thumbnailsAction = viewMenu->addAction(tr("Thumbnails"), Qt::Key_F2, [this](bool checked){
|
||||
if(SettingsDialog::loadThumbsizes())m_ringList->clearThumbnails();
|
||||
m_image->allocateThumbnails(m_ringList->imageNames());
|
||||
@@ -291,6 +314,12 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
|
||||
case 3:
|
||||
bggrAction->setChecked(true); break;
|
||||
}
|
||||
int colormap = settings.value("mainwindow/colormap", 4).toInt();
|
||||
if(colormap >= 0 && colormap < colormapActionGroup->actions().size())
|
||||
colormapActionGroup->actions().at(colormap)->setChecked(true);
|
||||
|
||||
m_image->setBayerMask(bayermask);
|
||||
m_image->setColormap(colormap);
|
||||
|
||||
QStringList standardLocations = QStandardPaths::standardLocations(QStandardPaths::PicturesLocation);
|
||||
if(standardLocations.size())
|
||||
|
||||
Reference in New Issue
Block a user