调整色调曲线点击取消后无法还原的问题

This commit is contained in:
yangjiaxuan 2023-08-10 15:34:05 +08:00
parent e8595903b9
commit 64c9d87278
3 changed files with 9 additions and 21 deletions

View File

@ -7,6 +7,7 @@ Dialog_MoveTo::Dialog_MoveTo(int count, int index, QWidget *parent) :
ui(new Ui::Dialog_MoveTo) ui(new Ui::Dialog_MoveTo)
{ {
ui->setupUi(this); ui->setupUi(this);
setWindowFlags(Qt::Dialog | Qt::WindowCloseButtonHint);
ui->spinBox->setMaximum(count); ui->spinBox->setMaximum(count);
ui->spinBox->setMinimum(1); ui->spinBox->setMinimum(1);

View File

@ -102,6 +102,8 @@ hg_settingdialog::hg_settingdialog(class Manager *mgr, SANE_Handle handle, const
for(int i = 0; i < sizeof(m_gammaData.table) / sizeof(m_gammaData.table[0]); ++i) for(int i = 0; i < sizeof(m_gammaData.table) / sizeof(m_gammaData.table[0]); ++i)
m_gammaData.table[i] = i & 0x0ff; m_gammaData.table[i] = i & 0x0ff;
memset(&m_originGammaData, 0, sizeof(m_originGammaData));
memcpy(&m_saneAPI, saneApi, sizeof(SANEAPI)); memcpy(&m_saneAPI, saneApi, sizeof(SANEAPI));
m_closeButton = closeButtonNormal; m_closeButton = closeButtonNormal;
@ -110,28 +112,8 @@ hg_settingdialog::hg_settingdialog(class Manager *mgr, SANE_Handle handle, const
m_list_originDeviceScheme.clear(); m_list_originDeviceScheme.clear();
m_list_originDeviceScheme = m_list_defaultOptions; m_list_originDeviceScheme = m_list_defaultOptions;
m_originGammaData = m_gammaData;
//HGChar cfgPath[512];
//GetConfigPath(cfgPath, 512);
//QString oldFile = QString::fromStdString(cfgPath) + "default.ini";
//QString newFile = QString::fromStdString(cfgPath) + "olddefault.ini";
//QFile::copy(oldFile, newFile);
//
//int index = getDefaultCfgValue("current", "index", 0);
//if (comb_->count() < index + 1)
// index = 0;
//
//comb_->setCurrentIndex(index < 0 ? 0 : index);
//
//saveOriginDeviceScheme();
//
//if (index == 0)
//{
// initGammaData();
// applyDeviceScheme();
//}
//else
// on_current_scheme_changed();
connect(comb_, SIGNAL(currentTextChanged(const QString)), this, SLOT(on_current_scheme_changed())); connect(comb_, SIGNAL(currentTextChanged(const QString)), this, SLOT(on_current_scheme_changed()));
} }
@ -2710,6 +2692,10 @@ void hg_settingdialog::cancelScheme()
{ {
SANE_Bool v = m_list_originDeviceScheme.at(i).second.toBool(); SANE_Bool v = m_list_originDeviceScheme.at(i).second.toBool();
m_saneAPI.sane_control_option_api(m_devHandle, i + 1, SANE_ACTION_SET_VALUE, &v, &none); m_saneAPI.sane_control_option_api(m_devHandle, i + 1, SANE_ACTION_SET_VALUE, &v, &none);
if (0 == strcmp(opt->name, SANE_STD_OPT_NAME_IS_CUSTOM_GAMMA))
{
m_saneAPI.sane_control_option_api(m_devHandle, 0x885A, SANE_ACTION_SET_VALUE, &m_originGammaData, NULL);
}
} }
else if (opt->type == SANE_TYPE_INT) else if (opt->type == SANE_TYPE_INT)
{ {

View File

@ -171,6 +171,7 @@ private:
int m_colorModeId; int m_colorModeId;
QString m_colorModeValue; QString m_colorModeValue;
SANE_Gamma m_gammaData; SANE_Gamma m_gammaData;
SANE_Gamma m_originGammaData;
QComboBox *comb_; QComboBox *comb_;
std::function<void(ui_result)> m_callback; std::function<void(ui_result)> m_callback;