You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

156 lines
3.9 KiB

9 years ago
////////////////////////////////////////////////////////////////////////////////
/**
* \file mainwindow.h
* \version v1.0
* \author Ing. Dominik Malcik
*/
////////////////////////////////////////////////////////////////////////////////
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMessageBox>
#include <QString>
#include <QDir>
#include <QFileDialog>
#include <QLabel>
#include <QScrollArea>
#include <QGraphicsView>
#include <QGraphicsScene>
// openCV
#include "opencv/cv.h"
#include "opencvprocessor.h"
#include "tableformat.h"
// singleton
#include "project.h"
class QLabel;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
static const QString APPL_NAME;
static const int TABLE_BITMAPS = 0;
static const int TABLE_LAYERS = 1;
static const int DEF_SLIDER_VALUE = 20;
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
// File menu
void on_actionNew_Project_triggered();
void on_actionOpen_Project_triggered();
void on_actionSave_Project_triggered();
void on_actionOpen_Image_triggered();
void on_actionClose_Project_Image_triggered();
void on_actionExit_triggered();
void on_actionSave_Project_As_triggered();
// Tools menu
void on_actionZoom_in_25_triggered();
void on_actionZoom_out_25_triggered();
void on_actionFit_in_Window_triggered();
void on_actionOriginal_Size_triggered();
// Tools menu > analyza
void on_actionAnalyze_edges_triggered();
void on_actionHough_triggered();
void on_actionThreshold_triggered();
void on_actionAnalyze_Colors_triggered();
void on_rSlider_valueChanged(int value);
void on_gSlider_valueChanged(int value);
void on_bSlider_valueChanged(int value);
// Help menu
void on_actionHelp_triggered();
void on_actionAbout_microAnalyzer_triggered();
// Layers buttons
void on_pushButton_2_clicked(); // add ANALYSING
void on_pushButton_clicked(); // show only ANALYSING
void on_pushButton_3_clicked(); // delete ANALYSING
void on_pushButton_4_clicked(); // delete IMPORTED
// Additional slots
void on_imageDial_actionTriggered(int action);
void openProject_slot();
void reloadImagesList();
void reloadLayersList();
void graphicsClicked(int xPos, int yPos);
void on_bitmapTableView_activated(QModelIndex index);
// Wizard - singleton instance
void invertOpenedDialog_slot();
void on_actionHistogram_triggered();
private:
Ui::MainWindow *ui;
void menuChangeAvailability(bool setting, bool sliders = false);
void imageResizer(double resizeCoeff);
void onOpenNew_dialReset();
bool importImage(QString &imageFileName, bool addToVector);
void saveProjectToDest(QString projectFileName_withPath, bool removeSubDirs);
QString saveAnalysingImageToDir(QString origFN, QString dstDir, QString ext, QString addition, int number);
bool deleteDialog(QString layerType);
void actualizeGraphicsView(QImage * toShow);
void actualizeFrameColor();
// tableView indexes (imported / analysing)
std::vector<int> getImportedIndexes ();
std::vector<int> getAnalysingIndexes ();
std::vector<int> getSelectedIndexes (QModelIndexList indexes);
void makeColorAnalyzeStep();
void makeCvFunction(int number, int param);
int getIntDialog();
void closeThisProject();
void initStageAndValues();
void resetSlidersValues();
void closeEvent(QCloseEvent *event);
bool saveAskDialog();
void openProject(QString projectFileName);
TableFormat * reloadTableList(int tableSpec);
std::vector<int> importedIndexes;
std::vector<int> analysingIndexes;
QImage visibleImage;
QRgb actualColor;
QGraphicsView * imageView;
int lastDialValue;
bool openedNewProjDialog;
TableFormat *bitmapLayersTBL;
TableFormat *vectorLayersTBL;
bool histogramBtn;
};
#endif // MAINWINDOW_H