added combo, radio buttons and working on getting the interface to work with filter transitions

This commit is contained in:
lostjared
2018-03-18 10:42:20 -07:00
parent df5f56b1ae
commit 74814f8e0e
5 changed files with 44 additions and 15 deletions

View File

@@ -54,8 +54,8 @@ AC_MainWindow::AC_MainWindow(QWidget *parent) : QMainWindow(parent) {
programMode = MODE_CAMERA; programMode = MODE_CAMERA;
init_plugins(); init_plugins();
generate_map(); generate_map();
setGeometry(100, 100, 800, 800); setGeometry(100, 100, 800, 700);
setFixedSize(800, 800); setFixedSize(800, 700);
setWindowTitle(tr("Acid Cam v2 - Qt")); setWindowTitle(tr("Acid Cam v2 - Qt"));
createControls(); createControls();
createMenu(); createMenu();
@@ -84,14 +84,18 @@ AC_MainWindow::AC_MainWindow(QWidget *parent) : QMainWindow(parent) {
void AC_MainWindow::createControls() { void AC_MainWindow::createControls() {
/*
filters = new QListWidget(this); filters = new QListWidget(this);
filters->setGeometry(10, 30, 390, 180); filters->setGeometry(10, 30, 390, 180);
filters->show(); filters->show();
*/
custom_filters = new QListWidget(this); custom_filters = new QListWidget(this);
custom_filters->setGeometry(400, 30, 390, 180); custom_filters->setGeometry(400, 30, 390, 180);
custom_filters->show(); custom_filters->show();
filters = new QComboBox(this);
filters->setGeometry(10, 105, 380, 30);
for(int i = 0; i < ac::draw_max-4; ++i) { for(int i = 0; i < ac::draw_max-4; ++i) {
filters->addItem(ac::draw_strings[i].c_str()); filters->addItem(ac::draw_strings[i].c_str());
} }
@@ -107,6 +111,16 @@ void AC_MainWindow::createControls() {
filters->addItem(name.c_str()); filters->addItem(name.c_str());
} }
connect(filters, SIGNAL(currentIndexChanged(int)), this, SLOT(comboFilterChanged(int)));
filter_single = new QRadioButton(tr("Single Filter"), this);
filter_single->setGeometry(30, 40, 100, 15);
filter_custom = new QRadioButton(tr("Custom Filter"), this);
filter_custom->setGeometry(30, 65, 100, 15);
filter_single->setChecked(true);
btn_add = new QPushButton(tr("Add"), this); btn_add = new QPushButton(tr("Add"), this);
btn_remove = new QPushButton(tr("Remove"), this); btn_remove = new QPushButton(tr("Remove"), this);
btn_moveup = new QPushButton(tr("Move Up"), this); btn_moveup = new QPushButton(tr("Move Up"), this);
@@ -201,7 +215,7 @@ void AC_MainWindow::createControls() {
connect(color_maps, SIGNAL(currentIndexChanged(int)), this, SLOT(colorMapChanged(int))); connect(color_maps, SIGNAL(currentIndexChanged(int)), this, SLOT(colorMapChanged(int)));
log_text = new QTextEdit(this); log_text = new QTextEdit(this);
log_text->setGeometry(10, 450, 780,310); log_text->setGeometry(10, 325, 780,310);
log_text->setReadOnly(true); log_text->setReadOnly(true);
@@ -210,7 +224,7 @@ void AC_MainWindow::createControls() {
text += " loaded.\n"; text += " loaded.\n";
log_text->setText(text); log_text->setText(text);
filters->setCurrentRow(0); filters->setCurrentIndex(0);
chk_negate = new QCheckBox(tr("Negate"), this); chk_negate = new QCheckBox(tr("Negate"), this);
chk_negate->setGeometry(120,215,100, 20); chk_negate->setGeometry(120,215,100, 20);
@@ -228,7 +242,7 @@ void AC_MainWindow::createControls() {
setWindowIcon(QPixmap(":/images/icon.png")); setWindowIcon(QPixmap(":/images/icon.png"));
progress_bar = new QProgressBar(this); progress_bar = new QProgressBar(this);
progress_bar->setGeometry(0, 760, 800, 20); progress_bar->setGeometry(0, 640, 800, 20);
progress_bar->setMinimum(0); progress_bar->setMinimum(0);
progress_bar->setMaximum(100); progress_bar->setMaximum(100);
progress_bar->hide(); progress_bar->hide();
@@ -323,14 +337,19 @@ void AC_MainWindow::colorMapChanged(int pos) {
playback->setColorMap(pos); playback->setColorMap(pos);
} }
void AC_MainWindow::comboFilterChanged(int pos) {
}
void AC_MainWindow::addClicked() { void AC_MainWindow::addClicked() {
int row = filters->currentRow(); int row = filters->currentIndex();
if(row != -1) { if(row != -1) {
QListWidgetItem *item = filters->item(row); //QListWidgetItem *item = filters->item(row);
custom_filters->addItem(item->text()); custom_filters->addItem(filters->currentText());
QString qs; QString qs;
QTextStream stream(&qs); QTextStream stream(&qs);
stream << "Added Filter: " << item->text() << "\n"; stream << "Added Filter: " << filters->currentText() << "\n";
Log(qs); Log(qs);
std::vector<std::pair<int, int>> v; std::vector<std::pair<int, int>> v;
buildVector(v); buildVector(v);

View File

@@ -21,18 +21,19 @@ public:
void Log(const QString &s); void Log(const QString &s);
bool startCamera(int res, int dev, const QString &outdir, bool record, int type); bool startCamera(int res, int dev, const QString &outdir, bool record, int type);
bool startVideo(const QString &filename, const QString &outdir, bool record, int type); bool startVideo(const QString &filename, const QString &outdir, bool record, int type);
QListWidget *filters, *custom_filters; QListWidget /**filters,*/ *custom_filters;
QPushButton *btn_add, *btn_remove, *btn_moveup, *btn_movedown; QPushButton *btn_add, *btn_remove, *btn_moveup, *btn_movedown;
QTextEdit *log_text; QTextEdit *log_text;
QCheckBox *chk_negate; QCheckBox *chk_negate;
QComboBox *combo_rgb; QComboBox *combo_rgb;
QSlider *slide_r, *slide_g, *slide_b, *slide_bright, *slide_gamma, *slide_saturation; QSlider *slide_r, *slide_g, *slide_b, *slide_bright, *slide_gamma, *slide_saturation;
QProgressBar *progress_bar; QProgressBar *progress_bar;
QComboBox *color_maps; QComboBox *color_maps, *filters;
QMenu *file_menu, *controls_menu, *help_menu; QMenu *file_menu, *controls_menu, *help_menu;
QAction *file_exit, *file_new_capture, *file_new_video; QAction *file_exit, *file_new_capture, *file_new_video;
QAction *controls_snapshot, *controls_pause, *controls_step, *controls_stop, *controls_setimage, *controls_showvideo; QAction *controls_snapshot, *controls_pause, *controls_step, *controls_stop, *controls_setimage, *controls_showvideo;
QAction *help_about; QAction *help_about;
QRadioButton *filter_single, *filter_custom;
public slots: public slots:
void addClicked(); void addClicked();
void rmvClicked(); void rmvClicked();
@@ -56,6 +57,7 @@ public slots:
void slideChanged(int pos); void slideChanged(int pos);
void colorChanged(int pos); void colorChanged(int pos);
void colorMapChanged(int pos); void colorMapChanged(int pos);
void comboFilterChanged(int pos);
private: private:
void createControls(); void createControls();
void createMenu(); void createMenu();

View File

@@ -12,6 +12,7 @@ Playback::Playback(QObject *parent) : QThread(parent) {
isStep = false; isStep = false;
isPaused = false; isPaused = false;
bright_ = gamma_ = saturation_ = 0; bright_ = gamma_ = saturation_ = 0;
single_mode = true;
} }
void Playback::Play() { void Playback::Play() {
@@ -20,8 +21,8 @@ void Playback::Play() {
stop = false; stop = false;
} }
} }
//start(LowPriority); start(LowPriority);
start(HighPriority); //start(HighPriority);
} }
void Playback::setVideo(cv::VideoCapture cap, cv::VideoWriter wr, bool record) { void Playback::setVideo(cv::VideoCapture cap, cv::VideoWriter wr, bool record) {
@@ -109,6 +110,10 @@ void Playback::setColorOptions(int b, int g, int s) {
mutex.unlock(); mutex.unlock();
} }
void Playback::setIndexChanged(int pos) {
}
void Playback::setRGB(int r, int g, int b) { void Playback::setRGB(int r, int g, int b) {
mutex.lock(); mutex.lock();
ac::swapColor_r = r; ac::swapColor_r = r;

View File

@@ -33,6 +33,7 @@ private:
int device_num; int device_num;
unsigned int red, green, blue; unsigned int red, green, blue;
unsigned int bright_, gamma_, saturation_; unsigned int bright_, gamma_, saturation_;
bool single_mode;
public: public:
Playback(QObject *parent = 0); Playback(QObject *parent = 0);
~Playback(); ~Playback();
@@ -52,6 +53,7 @@ public:
void setImage(const cv::Mat &image); void setImage(const cv::Mat &image);
void setStep(); void setStep();
void setDisplayed(bool shown); void setDisplayed(bool shown);
void setIndexChanged(int pos);
signals: signals:
void procImage(const QImage image); void procImage(const QImage image);
void stopRecording(); void stopRecording();

View File

@@ -37,6 +37,7 @@
#include<QDir> #include<QDir>
#include<QFile> #include<QFile>
#include<QProgressBar> #include<QProgressBar>
#include<QRadioButton>
#include"ac.h" #include"ac.h"
#include"fractal.h" #include"fractal.h"
#include<unordered_map> #include<unordered_map>