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)
|
||||
{
|
||||
m_devName = devName;
|
||||
m_mainWnd->AddManualScanParam();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -690,7 +689,6 @@ void Dialog_Scan::on_comboBox_currentIndexChanged(const QString &arg1)
|
|||
if (SANE_STATUS_GOOD == status)
|
||||
{
|
||||
m_devName = arg1;
|
||||
m_mainWnd->AddManualScanParam();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -371,6 +371,7 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
|||
QComboBox *comboBox = new QComboBox;
|
||||
for (int k = 0; k < (int)deviceConfig.stringValueList.size(); ++k)
|
||||
comboBox->addItem(QString::fromStdString(deviceConfig.stringValueList[k]));
|
||||
//comboBox->setCurrentText(QString::fromStdString(deviceConfig.stringValue));
|
||||
comboBox->installEventFilter(this);
|
||||
ctrl = comboBox;
|
||||
ctrlWidget = comboBox;
|
||||
|
@ -381,6 +382,7 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
|||
QComboBox *comboBox = new QComboBox;
|
||||
for (int k = 0; k < (int)deviceConfig.intValueList.size(); ++k)
|
||||
comboBox->addItem(QString::number(deviceConfig.intValueList[k]));
|
||||
//comboBox->setCurrentText(QString::number(deviceConfig.intValue));
|
||||
comboBox->installEventFilter(this);
|
||||
ctrl = comboBox;
|
||||
ctrlWidget = comboBox;
|
||||
|
@ -391,6 +393,7 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
|||
QComboBox *comboBox = new QComboBox;
|
||||
for (int k = 0; k < (int)deviceConfig.doubleValueList.size(); ++k)
|
||||
comboBox->addItem(QString::number(deviceConfig.doubleValueList[k]));
|
||||
//comboBox->setCurrentText(QString::number(deviceConfig.doubleValue));
|
||||
comboBox->installEventFilter(this);
|
||||
ctrl = comboBox;
|
||||
ctrlWidget = comboBox;
|
||||
|
@ -401,6 +404,7 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
|||
QSlider *slider = new QSlider;
|
||||
slider->setOrientation(Qt::Horizontal);
|
||||
slider->setRange(deviceConfig.intValueMin, deviceConfig.intValueMax);
|
||||
//slider->setValue(deviceConfig.intValue);
|
||||
slider->installEventFilter(this);
|
||||
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->setMaximumWidth(75);
|
||||
spinBox->setRange(deviceConfig.intValueMin, deviceConfig.intValueMax);
|
||||
spinBox->setProperty("config_name", QString::fromStdString(deviceConfig.name));
|
||||
spinBox->installEventFilter(this);
|
||||
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;
|
||||
QHBoxLayout* hLayout = new QHBoxLayout;
|
||||
hLayout->addWidget(slider);
|
||||
hLayout->addWidget(ctrl);
|
||||
hLayout->addWidget(spinBox);
|
||||
QWidget* sliderSpinWidget = new QWidget;
|
||||
sliderSpinWidget->setLayout(hLayout);
|
||||
|
@ -428,6 +430,7 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
|||
QSlider *slider = new QSlider;
|
||||
slider->setOrientation(Qt::Horizontal);
|
||||
slider->setRange(round(deviceConfig.doubleValueMin * 100), round(deviceConfig.doubleValueMax * 100));
|
||||
//slider->setValue(round(deviceConfig.doubleValue * 100));
|
||||
slider->installEventFilter(this);
|
||||
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->setDecimals(2);
|
||||
doubleSpinBox->setSingleStep(0.01);
|
||||
doubleSpinBox->setProperty("config_name", QString::fromStdString(deviceConfig.name));
|
||||
doubleSpinBox->installEventFilter(this);
|
||||
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;
|
||||
QHBoxLayout* hLayout = new QHBoxLayout;
|
||||
hLayout->addWidget(slider);
|
||||
hLayout->addWidget(ctrl);
|
||||
hLayout->addWidget(doubleSpinBox);
|
||||
QWidget* sliderSpinWidget = new QWidget;
|
||||
sliderSpinWidget->setLayout(hLayout);
|
||||
|
@ -463,6 +464,7 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
|||
spinBox->setMinimumWidth(75);
|
||||
spinBox->setMaximumWidth(75);
|
||||
spinBox->setRange(-1, 1000);
|
||||
//spinBox->setValue(deviceConfig.intValue);
|
||||
spinBox->installEventFilter(this);
|
||||
ctrl = spinBox;
|
||||
ctrlWidget = spinBox;
|
||||
|
@ -474,6 +476,7 @@ void Form_DeviceConfig::Init(SANE_Handle devHandle)
|
|||
else if (4 == deviceConfig.valueType)
|
||||
{
|
||||
QCheckBox *checkBox = new QCheckBox;
|
||||
//checkBox->setChecked(deviceConfig.boolValue);
|
||||
ctrl = checkBox;
|
||||
ctrlWidget = checkBox;
|
||||
}
|
||||
|
@ -579,30 +582,60 @@ void Form_DeviceConfig::on_defaultBtn_clicked()
|
|||
void Form_DeviceConfig::on_sliderClicked(int value)
|
||||
{
|
||||
QSlider *slider = qobject_cast<QSlider*>(sender());
|
||||
QWidget* ctrl = qvariant_cast<QWidget*>(slider->property("relate_ctrl"));
|
||||
if (typeid(*ctrl) == typeid(QSpinBox))
|
||||
QString sliderProverty = slider->property("config_name").toString();
|
||||
|
||||
QList<QAbstractSpinBox*> buttons = this->findChildren<QAbstractSpinBox*>();
|
||||
foreach (QAbstractSpinBox* abstractSpinBox, buttons)
|
||||
{
|
||||
QSpinBox* spinBox = reinterpret_cast<QSpinBox*>(ctrl);
|
||||
spinBox->setValue(value);
|
||||
}
|
||||
else
|
||||
{
|
||||
assert(typeid(*ctrl) == typeid(QDoubleSpinBox));
|
||||
QDoubleSpinBox* doubleSpinBox = reinterpret_cast<QDoubleSpinBox*>(ctrl);
|
||||
doubleSpinBox->setValue(value / 100.0);
|
||||
QString spinBoxProverty = abstractSpinBox->property("config_name").toString();
|
||||
if (spinBoxProverty == sliderProverty)
|
||||
{
|
||||
if (typeid(*abstractSpinBox) == typeid(QSpinBox))
|
||||
{
|
||||
QSpinBox* spinBox = reinterpret_cast<QSpinBox*>(abstractSpinBox);
|
||||
spinBox->setValue(value);
|
||||
}
|
||||
else
|
||||
{
|
||||
QDoubleSpinBox* doubleSpinBox = reinterpret_cast<QDoubleSpinBox*>(abstractSpinBox);
|
||||
doubleSpinBox->setValue(value / 100.0);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Form_DeviceConfig::on_spinBoxClicked(int value)
|
||||
{
|
||||
QSpinBox* spinBox = qobject_cast<QSpinBox*>(sender());
|
||||
QSlider* slider = qvariant_cast<QSlider*>(spinBox->property("relate_ctrl"));
|
||||
slider->setValue(value);
|
||||
QString spinBoxProverty = spinBox->property("config_name").toString();
|
||||
|
||||
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)
|
||||
{
|
||||
QDoubleSpinBox* doubleSpinBox = qobject_cast<QDoubleSpinBox*>(sender());
|
||||
QSlider* slider = qvariant_cast<QSlider*>(doubleSpinBox->property("relate_ctrl"));
|
||||
slider->setValue(round(value * 100));
|
||||
QDoubleSpinBox* spinBox = qobject_cast<QDoubleSpinBox*>(sender());
|
||||
QString spinBoxProverty = spinBox->property("config_name").toString();
|
||||
|
||||
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 "ui_mainwindow.h"
|
||||
#include "dialog_scan.h"
|
||||
#include "form_saveparam.h"
|
||||
#include <QMessageBox>
|
||||
#include <QCloseEvent>
|
||||
|
||||
|
@ -93,59 +92,6 @@ void MainWindow::SetBusy(bool 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)
|
||||
{
|
||||
for (int i = 0; i < (int)m_vScanParams.size(); ++i)
|
||||
|
@ -356,12 +302,6 @@ void MainWindow::on_pushButtonRemove_clicked()
|
|||
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"),
|
||||
tr("Are you sure you want to remove the item?"),
|
||||
QMessageBox::Yes | QMessageBox::No, this);
|
||||
|
|
|
@ -21,7 +21,6 @@ public:
|
|||
~MainWindow();
|
||||
|
||||
void SetBusy(bool busy);
|
||||
void AddManualScanParam();
|
||||
bool GetScanParam(const std::string &deviceType, unsigned int buttonId, ScanParam &scanParam);
|
||||
bool FindScanParam(const std::string &deviceType, unsigned int buttonId, int ignoreIndex);
|
||||
|
||||
|
|
Loading…
Reference in New Issue