From d03c04a10ba6091f971e1ca06316566bc0172f92 Mon Sep 17 00:00:00 2001 From: luoliangyi <87842688@qq.com> Date: Mon, 7 Aug 2023 16:50:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/twainui/hg_settingdialog.cpp | 108 +++++++++++++-------------- modules/twainui/setpicclrtool.cpp | 53 +++++++------ modules/twainui/setpicclrtool.h | 5 +- 3 files changed, 83 insertions(+), 83 deletions(-) diff --git a/modules/twainui/hg_settingdialog.cpp b/modules/twainui/hg_settingdialog.cpp index 5bc4c47a..1d1fce61 100644 --- a/modules/twainui/hg_settingdialog.cpp +++ b/modules/twainui/hg_settingdialog.cpp @@ -1371,72 +1371,68 @@ void hg_settingdialog::slot_cutButtonClicked() void hg_settingdialog::slot_gammaButtonClicked() { - setPicClrTool dlg(this); - - int colorMode; // 0-彩色, 1-灰度 + int colorMode = 0; // 0-彩色, 1-灰度 if (m_colorModeValue.toStdString() == OPTION_VALUE_YSMS_256JHD || m_colorModeValue.toStdString() == OPTION_VALUE_YSMS_HB) { colorMode = 1; - - QList keyTable; - for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_GRAY]; ++i) - { - uchar x = m_gammaData.pt_gray[i]; - uchar y = m_gammaData.table[256 * GAMMA_INDEX_GRAY + x]; - keyTable.append(QPoint(x, y)); - } - - if (!keyTable.empty()) - { - dlg.setGrayKeyTable(keyTable); - } } - else + + setPicClrTool dlg(colorMode, this); + + QList grayKeyTable; + for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_GRAY]; ++i) { - colorMode = 0; + uchar x = m_gammaData.pt_gray[i]; + uchar y = m_gammaData.table[256 * GAMMA_INDEX_GRAY + x]; + grayKeyTable.append(QPoint(x, y)); + } - QList keyTable; - for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_COLOR]; ++i) - { - uchar x = m_gammaData.pt_color[i]; - uchar y = m_gammaData.table[256 * GAMMA_INDEX_COLOR + x]; - keyTable.append(QPoint(x, y)); - } + if (!grayKeyTable.empty()) + { + dlg.setGrayKeyTable(grayKeyTable); + } - QList rKeyTable; - for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_RED]; ++i) - { - uchar x = m_gammaData.pt_red[i]; - uchar y = m_gammaData.table[256 * GAMMA_INDEX_RED + x]; - rKeyTable.append(QPoint(x, y)); - } + QList colorKeyTable; + for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_COLOR]; ++i) + { + uchar x = m_gammaData.pt_color[i]; + uchar y = m_gammaData.table[256 * GAMMA_INDEX_COLOR + x]; + colorKeyTable.append(QPoint(x, y)); + } - QList gKeyTable; - for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_GREEN]; ++i) - { - uchar x = m_gammaData.pt_green[i]; - uchar y = m_gammaData.table[256 * GAMMA_INDEX_GREEN + x]; - gKeyTable.append(QPoint(x, y)); - } + QList rKeyTable; + for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_RED]; ++i) + { + uchar x = m_gammaData.pt_red[i]; + uchar y = m_gammaData.table[256 * GAMMA_INDEX_RED + x]; + rKeyTable.append(QPoint(x, y)); + } - QList bKeyTable; - for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_BLUE]; ++i) - { - uchar x = m_gammaData.pt_blue[i]; - uchar y = m_gammaData.table[256 * GAMMA_INDEX_BLUE + x]; - bKeyTable.append(QPoint(x, y)); - } + QList gKeyTable; + for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_GREEN]; ++i) + { + uchar x = m_gammaData.pt_green[i]; + uchar y = m_gammaData.table[256 * GAMMA_INDEX_GREEN + x]; + gKeyTable.append(QPoint(x, y)); + } - QVector> keyTableList; - if (!keyTable.empty() && !rKeyTable.empty() && !gKeyTable.empty() && !bKeyTable.empty()) - { - keyTableList.append(keyTable); - keyTableList.append(rKeyTable); - keyTableList.append(gKeyTable); - keyTableList.append(bKeyTable); - dlg.setRGBKeyTable(keyTableList); - } + QList bKeyTable; + for (int i = 0; i < m_gammaData.count[GAMMA_INDEX_BLUE]; ++i) + { + uchar x = m_gammaData.pt_blue[i]; + uchar y = m_gammaData.table[256 * GAMMA_INDEX_BLUE + x]; + bKeyTable.append(QPoint(x, y)); + } + + QVector> keyTableList; + if (!colorKeyTable.empty() && !rKeyTable.empty() && !gKeyTable.empty() && !bKeyTable.empty()) + { + keyTableList.append(colorKeyTable); + keyTableList.append(rKeyTable); + keyTableList.append(gKeyTable); + keyTableList.append(bKeyTable); + dlg.setRGBKeyTable(keyTableList); } int rgbTypeIndex = 0; @@ -1445,8 +1441,6 @@ void hg_settingdialog::slot_gammaButtonClicked() colorTypeIndex = (m_gammaData.app_data & 0xF0) >> 4; dlg.setRgbAndColorType(rgbTypeIndex, colorTypeIndex); - - dlg.setColorMode(colorMode); if (dlg.exec()) { memset(&m_gammaData, 0, sizeof(m_gammaData)); diff --git a/modules/twainui/setpicclrtool.cpp b/modules/twainui/setpicclrtool.cpp index ec5c388f..76001c07 100644 --- a/modules/twainui/setpicclrtool.cpp +++ b/modules/twainui/setpicclrtool.cpp @@ -4,9 +4,10 @@ #include #include -setPicClrTool::setPicClrTool(QWidget *parent) : - QDialog(parent), - ui(new Ui::setPicClrTool) +setPicClrTool::setPicClrTool(int colorMode, QWidget *parent) + : QDialog(parent) + , ui(new Ui::setPicClrTool) + , m_colorMode(colorMode) { ui->setupUi(this); setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint); @@ -19,6 +20,21 @@ setPicClrTool::setPicClrTool(QWidget *parent) : connect(ui->widget,SIGNAL(mouseCoordSig(QPoint)),this,SLOT(mouseCoordSlot(QPoint))); connect(ui->widget,SIGNAL(dragPointChecked(bool)),this,SLOT(lineEditEnable(bool))); connect(ui->widget,SIGNAL(lineChangeSig()),this,SLOT(lineChangeSlot())); + + QVariant v(6); + if(colorMode == 0) + { + ui->colorSetCmb->setItemData(1,v,Qt::UserRole - 1); + } + else + { + ui->comboBox->setItemData(2,v,Qt::UserRole - 1); + ui->colorSetCmb->setItemData(0,v,Qt::UserRole - 1); + ui->colorSetCmb->setItemData(2,v,Qt::UserRole - 1); + ui->colorSetCmb->setItemData(3,v,Qt::UserRole - 1); + ui->colorSetCmb->setItemData(4,v,Qt::UserRole - 1); + ui->colorSetCmb->setCurrentIndex(1); + } } setPicClrTool::~setPicClrTool() @@ -56,24 +72,6 @@ void setPicClrTool::getRGBTable(uchar *table, size_t length) } } -void setPicClrTool::setColorMode(int colorMode) -{ - QVariant v(6); - if(colorMode == 0) - { - ui->colorSetCmb->setItemData(1,v,Qt::UserRole - 1); - } - else - { - ui->comboBox->setItemData(2,v,Qt::UserRole - 1); - ui->colorSetCmb->setItemData(0,v,Qt::UserRole - 1); - ui->colorSetCmb->setItemData(2,v,Qt::UserRole - 1); - ui->colorSetCmb->setItemData(3,v,Qt::UserRole - 1); - ui->colorSetCmb->setItemData(4,v,Qt::UserRole - 1); - ui->colorSetCmb->setCurrentIndex(1); - } -} - QVector > setPicClrTool::getRGBKeyTable() { QVector> plv; @@ -113,8 +111,17 @@ QVector setPicClrTool::getRgbAndColorType() void setPicClrTool::setRgbAndColorType(int rgbTypeIndex, int colorTypeIndex) { - ui->comboBox->setCurrentIndex(rgbTypeIndex); - ui->colorSetCmb->setCurrentIndex(colorTypeIndex); + if (0 == m_colorMode) + { + ui->comboBox->setCurrentIndex(rgbTypeIndex); + if (1 != colorTypeIndex) + ui->colorSetCmb->setCurrentIndex(colorTypeIndex); + } + else + { + if (2 != rgbTypeIndex) + ui->comboBox->setCurrentIndex(rgbTypeIndex); + } } QVector setPicClrTool::getRgbALLPoint() diff --git a/modules/twainui/setpicclrtool.h b/modules/twainui/setpicclrtool.h index 31fe4e8f..07b0ba5f 100644 --- a/modules/twainui/setpicclrtool.h +++ b/modules/twainui/setpicclrtool.h @@ -13,14 +13,12 @@ class setPicClrTool : public QDialog Q_OBJECT public: - explicit setPicClrTool(QWidget *parent = nullptr); + explicit setPicClrTool(int colorMode, QWidget *parent = nullptr); ~setPicClrTool(); void getGrayTable(uchar* table, size_t length = 256); void getRGBTable(uchar* table, size_t length = 1024); - void setColorMode(int colorMode); - QVector> getRGBKeyTable(); void setRGBKeyTable(QVector>& plv); QList getGrayKeyTable(); @@ -68,6 +66,7 @@ private slots: private: Ui::setPicClrTool *ui; + int m_colorMode; QList linePoint; QList greenLine; QList redLine;