This commit is contained in:
luoliangyi 2022-05-10 18:23:21 +08:00
commit 08a7ac14a5
2 changed files with 40 additions and 2 deletions

View File

@ -39,6 +39,7 @@
#include "app_cfg.h"
#define PASSWORD_KEY 4
#define MY_URL_SCHEME "inscanner"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
@ -2066,6 +2067,31 @@ void MainWindow::on_act_help_triggered()
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()
{
QString company;
@ -2087,6 +2113,7 @@ void MainWindow::on_act_about_triggered()
"<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));
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)
{
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)
{
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
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);
}
}
QMessageBox::about(this, title, content);
QDesktopServices::unsetUrlHandler(MY_URL_SCHEME);
}
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);
public slots:
void my_url_handler(const QUrl& url);
protected:
virtual void closeEvent(QCloseEvent *e) override;