got Users menu working

This commit is contained in:
lostjared
2018-12-28 14:17:39 -08:00
parent cf96271548
commit 854cc96902
5 changed files with 51 additions and 9 deletions

View File

@@ -42,6 +42,7 @@ void generate_map() {
std::string name = "plugin " + plugins.plugin_list[j]->name();
filter_map[name] = FilterValue(2, j, -1);
}
}
void custom_filter(cv::Mat &) {
@@ -60,6 +61,7 @@ AC_MainWindow::AC_MainWindow(QWidget *parent) : QMainWindow(parent) {
generate_map();
ac::init_filter_menu_map();
ac::SortFilters();
ac::filter_menu_map["User"].menu_list->push_back("No Filter");
setGeometry(100, 100, 800, 700);
setFixedSize(800, 700);
setWindowTitle(tr("Acid Cam v2 - Qt"));
@@ -107,6 +109,7 @@ AC_MainWindow::AC_MainWindow(QWidget *parent) : QMainWindow(parent) {
chroma_window->hide();
define_window = new DefineWindow(this);
define_window->hide();
define_window->main_window = this;
}
@@ -648,9 +651,7 @@ void AC_MainWindow::colorMapChanged(int pos) {
}
void AC_MainWindow::comboFilterChanged(int) {
if(loading == true) return;
playback->setIndexChanged(filters->currentText().toStdString());
QString str;
QTextStream stream(&str);
@@ -1258,8 +1259,8 @@ void AC_MainWindow::openColorWindow() {
}
void AC_MainWindow::menuFilterChanged(int index) {
if(index >= 0) {
loading = true;
if(index >= 0 && index < menu_cat->count()) {
const char *menu_n = menuNames[index];
filters->clear();
auto v = ac::filter_menu_map[menu_n].menu_list;
@@ -1267,10 +1268,19 @@ void AC_MainWindow::menuFilterChanged(int index) {
filters->addItem(in->c_str());
}
filters->setCurrentIndex(0);
}
loading = false;
}
}
void AC_MainWindow::show_Favorites() {
define_window->show();
}
void AC_MainWindow::resetMenu() {
int index = menu_cat->currentIndex();
if(menuNames[index] == std::string("User")) {
menuFilterChanged(index);
filters->setCurrentIndex(0);
comboFilterChanged(index);
}
}

View File

@@ -58,6 +58,7 @@ public:
void updateList();
void setSubFilter(const QString &num);
void setFrameIndex(int i);
void resetMenu();
public slots:
void addClicked();
void rmvClicked();

View File

@@ -6,7 +6,7 @@
#ifndef _QT_HEADERS__
#define _QT_HEADERS__
#define ac_version "v1.21.0"
#define ac_version "v1.22.0"
#include<QApplication>
#include<QMainWindow>
#include<QDialog>

View File

@@ -1,5 +1,6 @@
#include "user_define.h"
#include "main_window.h"
DefineWindow::DefineWindow(QWidget *p) : QMainWindow(p) {
setFixedSize(640, 320);
@@ -26,8 +27,36 @@ void DefineWindow::createControls() {
}
void DefineWindow::setFilterName() {
QString filter_name = def_filters->currentText();
QString filter_text = def_newname->text();
if(filter_text.length() > 0) {
std::string real_final_name = "User_";
real_final_name += filter_text.toStdString();
std::string sval = filter_name.toStdString();
if(sval.find("Image") != std::string::npos)
real_final_name += "_Image";
if(sval.find("SubFilter") != std::string::npos)
real_final_name += "_SubFilter";
std::vector<std::string> *v = ac::filter_menu_map["User"].menu_list;
v->push_back(real_final_name);
std::string ft = filter_name.toStdString();
std::string fn = real_final_name;
filter_map[fn].index = 0;
filter_map[fn].filter = filter_map[ft].filter;
filter_map[fn].subfilter = -1;
main_window->resetMenu();
def_list->addItem(real_final_name.c_str());
def_newname->setText("");
}
}
void DefineWindow::clearFilterNames() {
std::vector<std::string> *v = ac::filter_menu_map["User"].menu_list;
if(!v->empty()) {
v->erase(v->begin(), v->end());
v->push_back("No Filter");
while(def_list->count() > 0) {
def_list->takeItem(0);
}
main_window->resetMenu();
}
}

View File

@@ -3,15 +3,17 @@
#include "qtheaders.h"
class AC_MainWindow;
class DefineWindow : public QMainWindow {
Q_OBJECT
public:
DefineWindow(QWidget *p);
void createControls();
AC_MainWindow *main_window;
public slots:
void setFilterName();
void clearFilterNames();
private:
QComboBox *def_filters;
QListWidget *def_list;