在关于窗口添加“清除”链接,直接清除滚轴张数

This commit is contained in:
gb 2022-05-10 18:15:37 +08:00
parent e94c452962
commit 4cd9fafcc7
2 changed files with 40 additions and 2 deletions

View File

@ -39,6 +39,7 @@
#include "app_cfg.h" #include "app_cfg.h"
#define PASSWORD_KEY 4 #define PASSWORD_KEY 4
#define MY_URL_SCHEME "inscanner"
MainWindow::MainWindow(QWidget *parent) MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent) : QMainWindow(parent)
@ -2066,6 +2067,31 @@ void MainWindow::on_act_help_triggered()
QDesktopServices::openUrl(QUrl::fromLocalFile(filename)); QDesktopServices::openUrl(QUrl::fromLocalFile(filename));
} }
void MainWindow::my_url_handler(const QUrl& url)
{
QMessageBox::about(this, "hello", url.url());
std::string to(url.url().toStdString());
if(to.find("://clear-roller") != std::string::npos)
{
unsigned int count = 0;
int ret = sane_io_control(cur_dev_.handle(), IO_CTRL_CODE_CLEAR_ROLLER_COUNT, nullptr, &count);
QString info;
if(ret == SANE_STATUS_GOOD)
{
info = tr("Roller scanned count has been set to 0.");
// +请重新进入关于界面以获取最新值
info += QString::fromStdString("\350\257\267\351\207\215\346\226\260\350\277\233\345\205\245\345\205\263\344\272\216\347\225\214\351\235\242\344\273\245\350\216\267\345\217\226\346\234\200\346\226\260\345\200\274");
}
else
info = tr("Roller scanned count reset failed.");
QMessageBox::information(this, tr("hint"), info);
}
}
void MainWindow::on_act_about_triggered() void MainWindow::on_act_about_triggered()
{ {
QString company; QString company;
@ -2087,6 +2113,7 @@ void MainWindow::on_act_about_triggered()
"<p>%4%5%6%7%8%9</p>") "<p>%4%5%6%7%8%9</p>")
.arg(appName).arg("v2.0.9.061").arg(copyRight).arg(developer).arg(website).arg(contact).arg(afterSelesContact).arg(address).arg(navigation)); .arg(appName).arg("v2.0.9.061").arg(copyRight).arg(developer).arg(website).arg(contact).arg(afterSelesContact).arg(address).arg(navigation));
QDesktopServices::setUrlHandler(MY_URL_SCHEME, this, "my_url_handler");
if (sane_io_control(cur_dev_.handle(), IO_CTRL_CODE_ABOUT_INFO, about, &len) == SANE_STATUS_NO_MEM) if (sane_io_control(cur_dev_.handle(), IO_CTRL_CODE_ABOUT_INFO, about, &len) == SANE_STATUS_NO_MEM)
{ {
about = (SANE_About*)malloc(len + 128); about = (SANE_About*)malloc(len + 128);
@ -2101,15 +2128,23 @@ void MainWindow::on_act_about_triggered()
for (int i = 0; about->appendix[i].key; ++i) for (int i = 0; about->appendix[i].key; ++i)
{ {
if(about->appendix[i].url) if(about->appendix[i].url)
content += tr("<p>%1: <a href='%2'>%3</a></p>").arg(about->appendix[i].key).arg(about->appendix[i].url).arg(about->appendix[i].content); content += tr("<p>%1: <a href='%2'>%3</a>").arg(about->appendix[i].key).arg(about->appendix[i].url).arg(about->appendix[i].content);
else else
content += tr("<p>%1: %2</p>").arg(about->appendix[i].key).arg(about->appendix[i].content); content += tr("<p>%1: %2").arg(about->appendix[i].key).arg(about->appendix[i].content);
if(strcmp(about->appendix[i].key, "\346\273\232\350\275\264\345\274\240\346\225\260") == 0)
{
char url[128] = {0};
sprintf(url, "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href=%s://clear-roller>\346\270\205\351\231\244</a>", MY_URL_SCHEME);
content += QString::fromStdString(url);
}
content += "</p>";
} }
} }
free(about); free(about);
} }
} }
QMessageBox::about(this, title, content); QMessageBox::about(this, title, content);
QDesktopServices::unsetUrlHandler(MY_URL_SCHEME);
} }
void MainWindow::on_act_scannerSettings_triggered() void MainWindow::on_act_scannerSettings_triggered()

View File

@ -192,6 +192,9 @@ private slots:
void on_scanOptions_changed(const QString &device, const QString &option, bool checked_now); void on_scanOptions_changed(const QString &device, const QString &option, bool checked_now);
public slots:
void my_url_handler(const QUrl& url);
protected: protected:
virtual void closeEvent(QCloseEvent *e) override; virtual void closeEvent(QCloseEvent *e) override;