123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299 |
- #include "settingnum.h"
- #include "ui_settingnum.h"
- #include <QDebug>
- #include <QFile>
- #include <QPainter>
- #include <QVBoxLayout>
- #include <QHeaderView>
- #include "customcombobox.h"
- #include "onesettingitem.h"
- #include "oneshadow.h"
- SettingNum::SettingNum(QDialog *parent) :
- QDialog(parent),
- ui(new Ui::SettingNum)
- {
- ui->setupUi(this);
- m_logger = spdlog::get("EyeMap");
- if(m_logger == nullptr)
- {
- qDebug() << "获取 EyeMap logger 失败";
- return;
- }
-
- ui->comboBox_rowNum->installEventFilter(this);
- ui->comboBox_columnNum->installEventFilter(this);
-
- this->setWindowFlags(Qt::FramelessWindowHint);
- this->setAttribute(Qt::WA_TranslucentBackground);
-
- QFile fileQss(":/qss/SettingNum/SettingNum.qss");
- if(fileQss.open(QFile::ReadOnly))
- {
- QString qss = fileQss.readAll();
- this->setStyleSheet(qss);
- fileQss.close();
- } else
- {
- SPDLOG_LOGGER_ERROR(m_logger, "加载QSS文件失败");
- }
-
- m_shadow = new OneShadow(ui->widget->size(), 16);
- ui->verticalLayout->setMargin(16);
-
- for(auto item : m_listItem)
- {
- item = nullptr;
- }
-
-
- QStringList listRow;
- listRow << "1" << "2" << "3" << "4";
- ui->comboBox_rowNum->addItems(listRow);
- ui->comboBox_columnNum->addItem("1");
- ui->comboBox_columnNum->addItem("2");
- ui->comboBox_rowNum->setCurrentIndex(1);
- ui->comboBox_columnNum->setCurrentIndex(1);
-
- initTableList();
- connect(ui->pBtn_close, &QPushButton::clicked, this, &SettingNum::do_pBtn_close);
- connect(ui->pBtn_ok, &QPushButton::clicked, this, &SettingNum::do_pBtn_ok);
- connect(ui->pBtn_cancel, &QPushButton::clicked, this, &SettingNum::do_pBtn_cancel);
- connect(ui->comboBox_rowNum, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &SettingNum::do_selectRowAndColumn);
- connect(ui->comboBox_columnNum, QOverload<int>::of(&QComboBox::currentIndexChanged), this, &SettingNum::do_selectRowAndColumn);
- }
- SettingNum::~SettingNum()
- {
- for(auto item : m_listItem)
- {
- if(item == nullptr)
- {
- continue;
- }
- delete item;
- item = nullptr;
- }
- if(m_shadow != nullptr)
- {
- delete m_shadow;
- m_shadow = nullptr;
- }
- delete ui;
- }
- void SettingNum::setRowAndColumn(int row, int column)
- {
- ui->comboBox_rowNum->setCurrentIndex(row - 1);
- ui->comboBox_columnNum->setCurrentIndex(column - 1);
-
- int num = row * column;
-
-
-
-
-
-
-
-
-
- }
- void SettingNum::setEveryEyeMapInfo(const QList<OneEyeMapInfo> &listInfo)
- {
-
-
-
-
-
-
-
-
-
-
-
- }
- void SettingNum::setChannelList(const QList<OneChannelInfo> &listChannelInfo)
- {
-
-
-
-
- }
- bool SettingNum::eventFilter(QObject *watched, QEvent *event)
- {
- if(watched == ui->comboBox_rowNum || watched == ui->comboBox_columnNum)
- {
- if(event->type() == QEvent::Wheel)
- {
- return true;
- }
- }
- return QWidget::eventFilter(watched, event);
- }
- void SettingNum::do_pBtn_close()
- {
- this->close();
- }
- void SettingNum::do_pBtn_ok()
- {
- isOk = true;
- row = ui->comboBox_rowNum->currentText().toInt();
- column = ui->comboBox_columnNum->currentText().toInt();
-
- for(auto &item : m_listItem)
- {
- GEyeMapInfo.updateSettingNum(item->getEyeMapInfo());
- }
- this->close();
- }
- void SettingNum::do_pBtn_cancel()
- {
- isOk = false;
- this->close();
- }
- void SettingNum::do_selectRowAndColumn(int index)
- {
- row = ui->comboBox_rowNum->currentText().toInt();
- column = ui->comboBox_columnNum->currentText().toInt();
- int num = row * column;
- layoutItem(num);
- }
- void SettingNum::do_selectChannel(const OscChnNum channel, const QString &channelName)
- {
- auto sender = qobject_cast<OneSettingItem*>(QObject::sender());
- for(auto item : m_listItem)
- {
- if((item->getCurrentChannel().channel == channel) && (item != sender))
- {
- item->setCurrentChannel(GEyeMapInfo.getChannelName(OscChnNum::Osc_None));
- }
- }
- }
- void SettingNum::layoutItem(int num)
- {
- for(auto item : m_listItem)
- {
- auto dy = (item->getNum() - 1) * 48;
- item->move(0, dy);
- if(item->getNum() > num)
- {
- item->hide();
- } else
- {
- item->show();
- }
- }
-
- }
- void SettingNum::initTableList()
- {
-
- QVBoxLayout *layout = new QVBoxLayout(ui->widget_list);
- layout->setMargin(0);
- layout->setSpacing(0);
- ui->widget_list->setLayout(layout);
-
- m_tableView = new QTableView(ui->widget_list);
- m_model = new QStandardItemModel(this);
- m_tableView->setModel(m_model);
- layout->addWidget(m_tableView);
-
-
- m_model->setColumnCount(4);
- m_model->setHeaderData(0, Qt::Horizontal, "序号");
- m_model->setHeaderData(1, Qt::Horizontal, "通道");
- m_model->setHeaderData(2, Qt::Horizontal, "通道展示名称");
- m_model->setHeaderData(3, Qt::Horizontal, "底色");
-
- m_tableView->horizontalHeader()->setFixedHeight(48);
-
- m_tableView->horizontalHeader()->setSectionsClickable(false);
-
- m_tableView->horizontalHeader()->setDefaultAlignment(Qt::AlignVCenter | Qt::AlignLeft);
-
-
- m_tableView->setColumnWidth(0, 67);
- m_tableView->setColumnWidth(1, 296);
- m_tableView->setColumnWidth(2, 296);
- m_tableView->setColumnWidth(3, 64);
-
- m_tableView->verticalHeader()->setDefaultSectionSize(48);
-
- m_tableView->verticalHeader()->hide();
-
-
-
- for(int i = 0; i < 8; i++)
- {
- m_model->setRowCount(i + 1);
- m_model->setData(m_model->index(i, 0), i + 1);
- m_model->setData(m_model->index(i, 1), "通道" + QString::number(i + 1));
- m_model->setData(m_model->index(i, 2), "通道" + QString::number(i + 1));
- m_model->setData(m_model->index(i, 3), QColor(255, 255, 255));
- }
-
-
- m_tableView->setIndexWidget(m_model->index(0, 1), new CustomComboBox(m_tableView));
- m_tableView->setIndexWidget(m_model->index(1, 1), new CustomComboBox(m_tableView));
- m_tableView->setIndexWidget(m_model->index(2, 1), new CustomComboBox(m_tableView));
- m_tableView->setIndexWidget(m_model->index(3, 1), new CustomComboBox(m_tableView));
-
-
- }
|