Change stretchpanel to QToolBar

This commit is contained in:
2022-04-18 10:20:19 +02:00
parent ce836a8ff3
commit ea834ebd16
6 changed files with 29 additions and 44 deletions
+1 -1
View File
@@ -34,7 +34,7 @@ set(TENMON_SRC
rawimage.cpp
starfit.cpp
stfslider.cpp
stretchpanel.cpp
stretchtoolbar.cpp
)
qt5_add_resources(TENMON_SRC resources.qrc)
+6 -9
View File
@@ -41,11 +41,11 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
m_imageGL = new ImageScrollAreaGL(this);
setCentralWidget(m_imageGL);
m_stretchPanel = new StretchPanel(this);
m_stretchPanel = new StretchToolbar(this);
connect(m_stretchPanel, SIGNAL(paramChanged(float,float,float)), m_imageGL->imageWidget(), SLOT(setMTFParams(float,float,float)));
connect(m_stretchPanel, &StretchPanel::autoStretch, [&](){ m_stretchPanel->stretchImage(m_ringList->currentImage().get()); });
connect(m_stretchPanel, &StretchPanel::invert, m_imageGL->imageWidget(), &ImageWidget::invert);
connect(m_stretchPanel, &StretchPanel::superPixel, m_imageGL->imageWidget(), &ImageWidget::superPixel);
connect(m_stretchPanel, &StretchToolbar::autoStretch, [&](){ m_stretchPanel->stretchImage(m_ringList->currentImage().get()); });
connect(m_stretchPanel, &StretchToolbar::invert, m_imageGL->imageWidget(), &ImageWidget::invert);
connect(m_stretchPanel, &StretchToolbar::superPixel, m_imageGL->imageWidget(), &ImageWidget::superPixel);
m_ringList = new ImageRingList(this);
m_filesystem = new FilesystemWidget(m_ringList, this);
@@ -58,10 +58,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
m_databaseView = new DataBaseView(m_database, this);
connect(m_databaseView, SIGNAL(loadFile(QString)), this, SLOT(loadFile(QString)));
QDockWidget *stretchDock = new QDockWidget(tr("Stretch"), this);
stretchDock->setWidget(m_stretchPanel);
stretchDock->setObjectName("strechDock");
addDockWidget(Qt::TopDockWidgetArea, stretchDock);
addToolBar(Qt::TopToolBarArea, m_stretchPanel);
QDockWidget *filesystemDock = new QDockWidget(tr("Filesystem"), this);
filesystemDock->setWidget(m_filesystem);
@@ -144,7 +141,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
QMenu *dockMenu = new QMenu(tr("Docks"), this);
dockMenu->addAction(infoDock->toggleViewAction());
dockMenu->addAction(stretchDock->toggleViewAction());
dockMenu->addAction(m_stretchPanel->toggleViewAction());
dockMenu->addAction(filesystemDock->toggleViewAction());
dockMenu->addAction(databaseViewDock->toggleViewAction());
menuBar()->addMenu(dockMenu);
+2 -2
View File
@@ -9,7 +9,7 @@
#include "imageinfo.h"
#include "imagescrollareagl.h"
#include "filesystemwidget.h"
#include "stretchpanel.h"
#include "stretchtoolbar.h"
#include "databaseview.h"
class MainWindow : public QMainWindow
@@ -18,7 +18,7 @@ class MainWindow : public QMainWindow
ImageScrollArea *m_image;
ImageScrollAreaGL *m_imageGL;
ImageRingList *m_ringList;
StretchPanel *m_stretchPanel;
StretchToolbar *m_stretchPanel;
Database *m_database;
ImageInfo *m_info;
FilesystemWidget *m_filesystem;
+2
View File
@@ -12,6 +12,8 @@ static float clamp(float x)
STFSlider::STFSlider(QWidget *parent) : QWidget(parent)
{
setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
setMinimumWidth(100);
setMinimumHeight(15);
setMaximumHeight(15);
setMouseTracking(true);
+12 -26
View File
@@ -1,4 +1,4 @@
#include "stretchpanel.h"
#include "stretchtoolbar.h"
#include <QVBoxLayout>
#include <QDebug>
#include <QToolButton>
@@ -15,45 +15,31 @@ float MTF(float x, float m)
return ((m - 1) * x) / ((2 * m - 1) * x - m);
}
StretchPanel::StretchPanel(QWidget *parent) : QWidget(parent)
StretchToolbar::StretchToolbar(QWidget *parent) : QToolBar(tr("Stretch toolbar"), parent)
{
QHBoxLayout *layout = new QHBoxLayout(this);
setLayout(layout);
setObjectName("stretchtoolbar");
m_stfSlider = new STFSlider(this);
layout->addWidget(m_stfSlider);
addWidget(m_stfSlider);
connect(m_stfSlider, SIGNAL(paramChanged(float, float, float)), this, SIGNAL(paramChanged(float,float,float)));
QToolButton *autoStretchButton = new QToolButton(this);
autoStretchButton->setIcon(QIcon(":/nuke.png"));
autoStretchButton->setToolTip(tr("Auto Stretch F12"));
QAction *autoStretchButton = addAction(QIcon(":/nuke.png"), tr("Auto Stretch F12"));
autoStretchButton->setShortcut(Qt::Key_F12);
connect(autoStretchButton, SIGNAL(pressed()), this, SIGNAL(autoStretch()));
connect(autoStretchButton, SIGNAL(triggered()), this, SIGNAL(autoStretch()));
QToolButton *resetButton = new QToolButton(this);
resetButton->setIcon(style()->standardIcon(QStyle::SP_DialogResetButton));
resetButton->setToolTip(tr("Reset Screen Transfer Function F11"));
QAction *resetButton = addAction(style()->standardIcon(QStyle::SP_DialogResetButton), tr("Reset Screen Transfer Function F11"));
resetButton->setShortcut(Qt::Key_F11);
connect(resetButton, &QToolButton::pressed, this, &StretchPanel::resetMTF);
connect(resetButton, &QAction::triggered, this, &StretchToolbar::resetMTF);
QToolButton *invertButton = new QToolButton(this);
invertButton->setIcon(QIcon(":/invert.png"));
QAction *invertButton = addAction(QIcon(":/invert.png"), tr("Invert colors"));
invertButton->setCheckable(true);
connect(invertButton, SIGNAL(toggled(bool)), this, SIGNAL(invert(bool)));
QToolButton *superPixelButton = new QToolButton(this);
superPixelButton->setIcon(QIcon(":/bayer.png"));
QAction *superPixelButton = addAction(QIcon(":/bayer.png"), tr("Superpixel CFA draw 2x2 pixel as one"));
superPixelButton->setCheckable(true);
superPixelButton->setToolTip(tr("Superpixel CFA draw 2x2 pixel as one"));
connect(superPixelButton, SIGNAL(toggled(bool)), this, SIGNAL(superPixel(bool)));
layout->addWidget(autoStretchButton);
layout->addWidget(resetButton);
layout->addWidget(invertButton);
layout->addWidget(superPixelButton);
}
void StretchPanel::stretchImage(Image *img)
void StretchToolbar::stretchImage(Image *img)
{
if(img)
{
@@ -71,7 +57,7 @@ void StretchPanel::stretchImage(Image *img)
}
}
void StretchPanel::resetMTF()
void StretchToolbar::resetMTF()
{
m_stfSlider->setMTFParams(0, 0.5, 1);
emit paramChanged(0, 0.5, 1);
+6 -6
View File
@@ -1,17 +1,17 @@
#ifndef STRETCHPANEL_H
#define STRETCHPANEL_H
#ifndef STRETCHTOOLBAR_H
#define STRETCHTOOLBAR_H
#include <QWidget>
#include <QToolBar>
#include "stfslider.h"
class Image;
class StretchPanel : public QWidget
class StretchToolbar : public QToolBar
{
Q_OBJECT
STFSlider *m_stfSlider;
public:
explicit StretchPanel(QWidget *parent = nullptr);
explicit StretchToolbar(QWidget *parent = nullptr);
public slots:
void stretchImage(Image *img);
void resetMTF();
@@ -22,4 +22,4 @@ signals:
void superPixel(bool enable);
};
#endif // STRETCHPANEL_H
#endif // STRETCHTOOLBAR_H