diff --git a/CMakeLists.txt b/CMakeLists.txt index 8f54459..b203365 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -34,7 +34,7 @@ set(TENMON_SRC rawimage.cpp starfit.cpp stfslider.cpp - stretchpanel.cpp + stretchtoolbar.cpp ) qt5_add_resources(TENMON_SRC resources.qrc) diff --git a/mainwindow.cpp b/mainwindow.cpp index 73f34dd..24d09e9 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -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); diff --git a/mainwindow.h b/mainwindow.h index 1c81e3d..8f5f0aa 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -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; diff --git a/stfslider.cpp b/stfslider.cpp index d9c91c0..a24a7a8 100644 --- a/stfslider.cpp +++ b/stfslider.cpp @@ -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); diff --git a/stretchpanel.cpp b/stretchtoolbar.cpp similarity index 54% rename from stretchpanel.cpp rename to stretchtoolbar.cpp index e9a09c7..42736f7 100644 --- a/stretchpanel.cpp +++ b/stretchtoolbar.cpp @@ -1,4 +1,4 @@ -#include "stretchpanel.h" +#include "stretchtoolbar.h" #include #include #include @@ -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); diff --git a/stretchpanel.h b/stretchtoolbar.h similarity index 62% rename from stretchpanel.h rename to stretchtoolbar.h index e5b6c93..ca48589 100644 --- a/stretchpanel.h +++ b/stretchtoolbar.h @@ -1,17 +1,17 @@ -#ifndef STRETCHPANEL_H -#define STRETCHPANEL_H +#ifndef STRETCHTOOLBAR_H +#define STRETCHTOOLBAR_H -#include +#include #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