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