Compare commits
No commits in common. "f42d57228aaf61ee333102a1edf6b12b2667ce74" and "ab009f3e542218261c2b735f7415064c2d848d28" have entirely different histories.
f42d57228a
...
ab009f3e54
|
@ -593,7 +593,6 @@ void Dialog_Scan::on_deviceArrive(QString devName)
|
||||||
if (SANE_STATUS_GOOD == status)
|
if (SANE_STATUS_GOOD == status)
|
||||||
{
|
{
|
||||||
m_devName = devName;
|
m_devName = devName;
|
||||||
m_mainWnd->AddManualScanParam();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -690,7 +689,6 @@ void Dialog_Scan::on_comboBox_currentIndexChanged(const QString &arg1)
|
||||||
if (SANE_STATUS_GOOD == status)
|
if (SANE_STATUS_GOOD == status)
|
||||||
{
|
{
|
||||||
m_devName = arg1;
|
m_devName = arg1;
|
||||||
m_mainWnd->AddManualScanParam();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -371,6 +371,7 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
||||||
QComboBox *comboBox = new QComboBox;
|
QComboBox *comboBox = new QComboBox;
|
||||||
for (int k = 0; k < (int)deviceConfig.stringValueList.size(); ++k)
|
for (int k = 0; k < (int)deviceConfig.stringValueList.size(); ++k)
|
||||||
comboBox->addItem(QString::fromStdString(deviceConfig.stringValueList[k]));
|
comboBox->addItem(QString::fromStdString(deviceConfig.stringValueList[k]));
|
||||||
|
//comboBox->setCurrentText(QString::fromStdString(deviceConfig.stringValue));
|
||||||
comboBox->installEventFilter(this);
|
comboBox->installEventFilter(this);
|
||||||
ctrl = comboBox;
|
ctrl = comboBox;
|
||||||
ctrlWidget = comboBox;
|
ctrlWidget = comboBox;
|
||||||
|
@ -381,6 +382,7 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
||||||
QComboBox *comboBox = new QComboBox;
|
QComboBox *comboBox = new QComboBox;
|
||||||
for (int k = 0; k < (int)deviceConfig.intValueList.size(); ++k)
|
for (int k = 0; k < (int)deviceConfig.intValueList.size(); ++k)
|
||||||
comboBox->addItem(QString::number(deviceConfig.intValueList[k]));
|
comboBox->addItem(QString::number(deviceConfig.intValueList[k]));
|
||||||
|
//comboBox->setCurrentText(QString::number(deviceConfig.intValue));
|
||||||
comboBox->installEventFilter(this);
|
comboBox->installEventFilter(this);
|
||||||
ctrl = comboBox;
|
ctrl = comboBox;
|
||||||
ctrlWidget = comboBox;
|
ctrlWidget = comboBox;
|
||||||
|
@ -391,6 +393,7 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
||||||
QComboBox *comboBox = new QComboBox;
|
QComboBox *comboBox = new QComboBox;
|
||||||
for (int k = 0; k < (int)deviceConfig.doubleValueList.size(); ++k)
|
for (int k = 0; k < (int)deviceConfig.doubleValueList.size(); ++k)
|
||||||
comboBox->addItem(QString::number(deviceConfig.doubleValueList[k]));
|
comboBox->addItem(QString::number(deviceConfig.doubleValueList[k]));
|
||||||
|
//comboBox->setCurrentText(QString::number(deviceConfig.doubleValue));
|
||||||
comboBox->installEventFilter(this);
|
comboBox->installEventFilter(this);
|
||||||
ctrl = comboBox;
|
ctrl = comboBox;
|
||||||
ctrlWidget = comboBox;
|
ctrlWidget = comboBox;
|
||||||
|
@ -401,6 +404,7 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
||||||
QSlider *slider = new QSlider;
|
QSlider *slider = new QSlider;
|
||||||
slider->setOrientation(Qt::Horizontal);
|
slider->setOrientation(Qt::Horizontal);
|
||||||
slider->setRange(deviceConfig.intValueMin, deviceConfig.intValueMax);
|
slider->setRange(deviceConfig.intValueMin, deviceConfig.intValueMax);
|
||||||
|
//slider->setValue(deviceConfig.intValue);
|
||||||
slider->installEventFilter(this);
|
slider->installEventFilter(this);
|
||||||
connect(slider, SIGNAL(valueChanged(int)), this, SLOT(on_sliderClicked(int)));
|
connect(slider, SIGNAL(valueChanged(int)), this, SLOT(on_sliderClicked(int)));
|
||||||
|
|
||||||
|
@ -408,15 +412,13 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
||||||
spinBox->setMinimumWidth(75);
|
spinBox->setMinimumWidth(75);
|
||||||
spinBox->setMaximumWidth(75);
|
spinBox->setMaximumWidth(75);
|
||||||
spinBox->setRange(deviceConfig.intValueMin, deviceConfig.intValueMax);
|
spinBox->setRange(deviceConfig.intValueMin, deviceConfig.intValueMax);
|
||||||
|
spinBox->setProperty("config_name", QString::fromStdString(deviceConfig.name));
|
||||||
spinBox->installEventFilter(this);
|
spinBox->installEventFilter(this);
|
||||||
connect(spinBox, SIGNAL(valueChanged(int)), this, SLOT(on_spinBoxClicked(int)));
|
connect(spinBox, SIGNAL(valueChanged(int)), this, SLOT(on_spinBoxClicked(int)));
|
||||||
|
|
||||||
slider->setProperty("relate_ctrl", QVariant::fromValue(spinBox));
|
|
||||||
spinBox->setProperty("relate_ctrl", QVariant::fromValue(slider));
|
|
||||||
|
|
||||||
ctrl = slider;
|
ctrl = slider;
|
||||||
QHBoxLayout* hLayout = new QHBoxLayout;
|
QHBoxLayout* hLayout = new QHBoxLayout;
|
||||||
hLayout->addWidget(slider);
|
hLayout->addWidget(ctrl);
|
||||||
hLayout->addWidget(spinBox);
|
hLayout->addWidget(spinBox);
|
||||||
QWidget* sliderSpinWidget = new QWidget;
|
QWidget* sliderSpinWidget = new QWidget;
|
||||||
sliderSpinWidget->setLayout(hLayout);
|
sliderSpinWidget->setLayout(hLayout);
|
||||||
|
@ -428,6 +430,7 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
||||||
QSlider *slider = new QSlider;
|
QSlider *slider = new QSlider;
|
||||||
slider->setOrientation(Qt::Horizontal);
|
slider->setOrientation(Qt::Horizontal);
|
||||||
slider->setRange(round(deviceConfig.doubleValueMin * 100), round(deviceConfig.doubleValueMax * 100));
|
slider->setRange(round(deviceConfig.doubleValueMin * 100), round(deviceConfig.doubleValueMax * 100));
|
||||||
|
//slider->setValue(round(deviceConfig.doubleValue * 100));
|
||||||
slider->installEventFilter(this);
|
slider->installEventFilter(this);
|
||||||
connect(slider, SIGNAL(valueChanged(int)), this, SLOT(on_sliderClicked(int)));
|
connect(slider, SIGNAL(valueChanged(int)), this, SLOT(on_sliderClicked(int)));
|
||||||
|
|
||||||
|
@ -437,15 +440,13 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
||||||
doubleSpinBox->setRange(deviceConfig.doubleValueMin, deviceConfig.doubleValueMax);
|
doubleSpinBox->setRange(deviceConfig.doubleValueMin, deviceConfig.doubleValueMax);
|
||||||
doubleSpinBox->setDecimals(2);
|
doubleSpinBox->setDecimals(2);
|
||||||
doubleSpinBox->setSingleStep(0.01);
|
doubleSpinBox->setSingleStep(0.01);
|
||||||
|
doubleSpinBox->setProperty("config_name", QString::fromStdString(deviceConfig.name));
|
||||||
doubleSpinBox->installEventFilter(this);
|
doubleSpinBox->installEventFilter(this);
|
||||||
connect(doubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(on_doubleSpinboxClicked(double)));
|
connect(doubleSpinBox, SIGNAL(valueChanged(double)), this, SLOT(on_doubleSpinboxClicked(double)));
|
||||||
|
|
||||||
slider->setProperty("relate_ctrl", QVariant::fromValue(doubleSpinBox));
|
|
||||||
doubleSpinBox->setProperty("relate_ctrl", QVariant::fromValue(slider));
|
|
||||||
|
|
||||||
ctrl = slider;
|
ctrl = slider;
|
||||||
QHBoxLayout* hLayout = new QHBoxLayout;
|
QHBoxLayout* hLayout = new QHBoxLayout;
|
||||||
hLayout->addWidget(slider);
|
hLayout->addWidget(ctrl);
|
||||||
hLayout->addWidget(doubleSpinBox);
|
hLayout->addWidget(doubleSpinBox);
|
||||||
QWidget* sliderSpinWidget = new QWidget;
|
QWidget* sliderSpinWidget = new QWidget;
|
||||||
sliderSpinWidget->setLayout(hLayout);
|
sliderSpinWidget->setLayout(hLayout);
|
||||||
|
@ -463,6 +464,7 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
||||||
spinBox->setMinimumWidth(75);
|
spinBox->setMinimumWidth(75);
|
||||||
spinBox->setMaximumWidth(75);
|
spinBox->setMaximumWidth(75);
|
||||||
spinBox->setRange(-1, 1000);
|
spinBox->setRange(-1, 1000);
|
||||||
|
//spinBox->setValue(deviceConfig.intValue);
|
||||||
spinBox->installEventFilter(this);
|
spinBox->installEventFilter(this);
|
||||||
ctrl = spinBox;
|
ctrl = spinBox;
|
||||||
ctrlWidget = spinBox;
|
ctrlWidget = spinBox;
|
||||||
|
@ -474,6 +476,7 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
||||||
else if (4 == deviceConfig.valueType)
|
else if (4 == deviceConfig.valueType)
|
||||||
{
|
{
|
||||||
QCheckBox *checkBox = new QCheckBox;
|
QCheckBox *checkBox = new QCheckBox;
|
||||||
|
//checkBox->setChecked(deviceConfig.boolValue);
|
||||||
ctrl = checkBox;
|
ctrl = checkBox;
|
||||||
ctrlWidget = checkBox;
|
ctrlWidget = checkBox;
|
||||||
}
|
}
|
||||||
|
@ -579,30 +582,60 @@ void Form_DeviceConfig::on_defaultBtn_clicked()
|
||||||
void Form_DeviceConfig::on_sliderClicked(int value)
|
void Form_DeviceConfig::on_sliderClicked(int value)
|
||||||
{
|
{
|
||||||
QSlider *slider = qobject_cast<QSlider*>(sender());
|
QSlider *slider = qobject_cast<QSlider*>(sender());
|
||||||
QWidget* ctrl = qvariant_cast<QWidget*>(slider->property("relate_ctrl"));
|
QString sliderProverty = slider->property("config_name").toString();
|
||||||
if (typeid(*ctrl) == typeid(QSpinBox))
|
|
||||||
|
QList<QAbstractSpinBox*> buttons = this->findChildren<QAbstractSpinBox*>();
|
||||||
|
foreach (QAbstractSpinBox* abstractSpinBox, buttons)
|
||||||
{
|
{
|
||||||
QSpinBox* spinBox = reinterpret_cast<QSpinBox*>(ctrl);
|
QString spinBoxProverty = abstractSpinBox->property("config_name").toString();
|
||||||
spinBox->setValue(value);
|
if (spinBoxProverty == sliderProverty)
|
||||||
}
|
{
|
||||||
else
|
if (typeid(*abstractSpinBox) == typeid(QSpinBox))
|
||||||
{
|
{
|
||||||
assert(typeid(*ctrl) == typeid(QDoubleSpinBox));
|
QSpinBox* spinBox = reinterpret_cast<QSpinBox*>(abstractSpinBox);
|
||||||
QDoubleSpinBox* doubleSpinBox = reinterpret_cast<QDoubleSpinBox*>(ctrl);
|
spinBox->setValue(value);
|
||||||
doubleSpinBox->setValue(value / 100.0);
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QDoubleSpinBox* doubleSpinBox = reinterpret_cast<QDoubleSpinBox*>(abstractSpinBox);
|
||||||
|
doubleSpinBox->setValue(value / 100.0);
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Form_DeviceConfig::on_spinBoxClicked(int value)
|
void Form_DeviceConfig::on_spinBoxClicked(int value)
|
||||||
{
|
{
|
||||||
QSpinBox* spinBox = qobject_cast<QSpinBox*>(sender());
|
QSpinBox* spinBox = qobject_cast<QSpinBox*>(sender());
|
||||||
QSlider* slider = qvariant_cast<QSlider*>(spinBox->property("relate_ctrl"));
|
QString spinBoxProverty = spinBox->property("config_name").toString();
|
||||||
slider->setValue(value);
|
|
||||||
|
QList<QSlider*> buttons = this->findChildren<QSlider*>();
|
||||||
|
foreach (QSlider* slider, buttons)
|
||||||
|
{
|
||||||
|
QString sliderProverty = slider->property("config_name").toString();
|
||||||
|
if (sliderProverty == spinBoxProverty)
|
||||||
|
{
|
||||||
|
slider->setValue(value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Form_DeviceConfig::on_doubleSpinboxClicked(double value)
|
void Form_DeviceConfig::on_doubleSpinboxClicked(double value)
|
||||||
{
|
{
|
||||||
QDoubleSpinBox* doubleSpinBox = qobject_cast<QDoubleSpinBox*>(sender());
|
QDoubleSpinBox* spinBox = qobject_cast<QDoubleSpinBox*>(sender());
|
||||||
QSlider* slider = qvariant_cast<QSlider*>(doubleSpinBox->property("relate_ctrl"));
|
QString spinBoxProverty = spinBox->property("config_name").toString();
|
||||||
slider->setValue(round(value * 100));
|
|
||||||
|
QList<QSlider*> buttons = this->findChildren<QSlider*>();
|
||||||
|
foreach (QSlider* slider, buttons)
|
||||||
|
{
|
||||||
|
QString sliderProverty = slider->property("config_name").toString();
|
||||||
|
if (sliderProverty == spinBoxProverty)
|
||||||
|
{
|
||||||
|
slider->setValue(round(value * 100));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
#include "ui_mainwindow.h"
|
#include "ui_mainwindow.h"
|
||||||
#include "dialog_scan.h"
|
#include "dialog_scan.h"
|
||||||
#include "form_saveparam.h"
|
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include <QCloseEvent>
|
#include <QCloseEvent>
|
||||||
|
|
||||||
|
@ -93,59 +92,6 @@ void MainWindow::SetBusy(bool busy)
|
||||||
ui->pushButtonRemove->setEnabled(!busy);
|
ui->pushButtonRemove->setEnabled(!busy);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::AddManualScanParam()
|
|
||||||
{
|
|
||||||
if (NULL == m_scanDlg->m_devHandle)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
std::string deviceType = m_scanDlg->m_devName.toStdString();
|
|
||||||
char v[256] = {0};
|
|
||||||
SANE_Status status = sane_control_option(m_scanDlg->m_devHandle, (SANE_Int)0x886D, SANE_ACTION_GET_VALUE, v, NULL);
|
|
||||||
if (SANE_STATUS_GOOD == status)
|
|
||||||
{
|
|
||||||
deviceType = v;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (FindScanParam(deviceType, 0, -1))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
ScanParam scanParam;
|
|
||||||
scanParam.deviceType = deviceType;
|
|
||||||
scanParam.buttonId = 0;
|
|
||||||
scanParam.deviceConfigs.clear();
|
|
||||||
scanParam.saveParam = Form_SaveParam::GetDefSaveParam();
|
|
||||||
m_vScanParams.push_back(scanParam);
|
|
||||||
SaveCfg();
|
|
||||||
|
|
||||||
ui->tableWidget->setRowCount((int)m_vScanParams.size());
|
|
||||||
int index = (int)m_vScanParams.size() - 1;
|
|
||||||
|
|
||||||
ui->tableWidget->setRowHeight(index, 30);
|
|
||||||
|
|
||||||
ui->tableWidget->setItem(index, 0, new QTableWidgetItem(QString(m_vScanParams[index].deviceType.c_str())));
|
|
||||||
ui->tableWidget->item(index, 0)->setTextAlignment(Qt::AlignCenter);
|
|
||||||
ui->tableWidget->item(index, 0)->setFlags(ui->tableWidget->item(index, 0)->flags() & ~Qt::ItemIsEditable);
|
|
||||||
|
|
||||||
const char *btnTypeStr[] = {"Manual", "Button 1", "Button 2", "Button 3"};
|
|
||||||
ui->tableWidget->setItem(index, 1, new QTableWidgetItem(btnTypeStr[m_vScanParams[index].buttonId]));
|
|
||||||
ui->tableWidget->item(index, 1)->setTextAlignment(Qt::AlignCenter);
|
|
||||||
ui->tableWidget->item(index, 1)->setFlags(ui->tableWidget->item(index, 1)->flags() & ~Qt::ItemIsEditable);
|
|
||||||
|
|
||||||
ui->tableWidget->setItem(index, 2, new QTableWidgetItem(GetDesc(m_vScanParams[index].deviceConfigs)));
|
|
||||||
ui->tableWidget->item(index, 2)->setTextAlignment(Qt::AlignCenter);
|
|
||||||
ui->tableWidget->item(index, 2)->setFlags(ui->tableWidget->item(index, 2)->flags() & ~Qt::ItemIsEditable);
|
|
||||||
|
|
||||||
ui->tableWidget->setItem(index, 3, new QTableWidgetItem(GetDesc(m_vScanParams[index].saveParam)));
|
|
||||||
ui->tableWidget->item(index, 3)->setTextAlignment(Qt::AlignCenter);
|
|
||||||
ui->tableWidget->item(index, 3)->setFlags(ui->tableWidget->item(index, 3)->flags() & ~Qt::ItemIsEditable);
|
|
||||||
|
|
||||||
ui->tableWidget->selectRow(index);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool MainWindow::GetScanParam(const std::string &deviceType, unsigned int buttonId, ScanParam &scanParam)
|
bool MainWindow::GetScanParam(const std::string &deviceType, unsigned int buttonId, ScanParam &scanParam)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < (int)m_vScanParams.size(); ++i)
|
for (int i = 0; i < (int)m_vScanParams.size(); ++i)
|
||||||
|
@ -356,12 +302,6 @@ void MainWindow::on_pushButtonRemove_clicked()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (0 == m_vScanParams[index].buttonId)
|
|
||||||
{
|
|
||||||
QMessageBox::information(this, tr("Tips"), tr("Manual configuration items cannot be deleted"));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
QMessageBox msg(QMessageBox::Question, tr("Question"),
|
QMessageBox msg(QMessageBox::Question, tr("Question"),
|
||||||
tr("Are you sure you want to remove the item?"),
|
tr("Are you sure you want to remove the item?"),
|
||||||
QMessageBox::Yes | QMessageBox::No, this);
|
QMessageBox::Yes | QMessageBox::No, this);
|
||||||
|
|
|
@ -21,7 +21,6 @@ public:
|
||||||
~MainWindow();
|
~MainWindow();
|
||||||
|
|
||||||
void SetBusy(bool busy);
|
void SetBusy(bool busy);
|
||||||
void AddManualScanParam();
|
|
||||||
bool GetScanParam(const std::string &deviceType, unsigned int buttonId, ScanParam &scanParam);
|
bool GetScanParam(const std::string &deviceType, unsigned int buttonId, ScanParam &scanParam);
|
||||||
bool FindScanParam(const std::string &deviceType, unsigned int buttonId, int ignoreIndex);
|
bool FindScanParam(const std::string &deviceType, unsigned int buttonId, int ignoreIndex);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue