mirror of
https://github.com/lostjared/Acid.Cam.v2.Qt.git
synced 2025-12-21 06:10:00 +01:00
added combo, radio buttons and working on getting the interface to work with filter transitions
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user