Change stretchpanel to QToolBar
This commit is contained in:
+1
-1
@@ -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
@@ -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
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user