|F73|Wd+zs_
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":images/image_rsc/logo/maxsound_logo.ico"));
#elif defined(OEM_GUANGDIANTONG)
this->setWindowIcon(QIcon(":images/image_rsc/logo/toec_logo.ico"));
+#elif defined(OEM_QIMINGTAIHE)
+ this->setWindowIcon(QIcon(":images/image_rsc/logo/teachcloud_logo.ico"));
#else
this->setWindowIcon(QIcon(":images/image_rsc/logo/logo.ico"));
#endif
diff --git a/app/fwupgrade/main.cpp b/app/fwupgrade/main.cpp
index dcf30d77..2565726b 100644
--- a/app/fwupgrade/main.cpp
+++ b/app/fwupgrade/main.cpp
@@ -39,6 +39,8 @@ HLOG g_hLog = nullptr;
const char *appName = "MaxsoundScan";
#elif defined(OEM_GUANGDIANTONG)
const char *appName = "ToecScan";
+#elif defined(OEM_QIMINGTAIHE)
+ const char *appName = "TeachCloudScan";
#else
const char *appName = "HuaGoScan";
#endif
@@ -104,6 +106,8 @@ HGResult GetAppPassword(HGChar* appPassword, HGUInt maxLen)
password = "maxsound";
#elif defined(OEM_GUANGDIANTONG)
password = "toecscan";
+#elif defined(OEM_QIMINGTAIHE)
+ password = "teachcloud";
#endif
if (maxLen < strlen(appPassword) + 1)
diff --git a/app/fwupgrade/mainwindow.cpp b/app/fwupgrade/mainwindow.cpp
index 4229e1be..422fea42 100644
--- a/app/fwupgrade/mainwindow.cpp
+++ b/app/fwupgrade/mainwindow.cpp
@@ -52,6 +52,8 @@ MainWindow::MainWindow(QWidget *parent)
this->setWindowIcon(QIcon(":images/image_rsc/logo/maxsound_logo.ico"));
#elif defined(OEM_GUANGDIANTONG)
this->setWindowIcon(QIcon(":images/image_rsc/logo/toec_logo.ico"));
+#elif defined(OEM_QIMINGTAIHE)
+ this->setWindowIcon(QIcon(":images/image_rsc/logo/teachcloud_logo.ico"));
#else
this->setWindowIcon(QIcon(":images/image_rsc/logo/logo.ico"));
#endif
@@ -144,6 +146,8 @@ static HGResult GetConfigPath(HGChar* configPath, HGUInt maxLen)
appName = "MaxsoundScan";
#elif defined(OEM_GUANGDIANTONG)
appName = "ToecScan";
+#elif defined(OEM_QIMINGTAIHE)
+ appName = "TeachCloudScan";
#endif
#if defined(HG_CMP_MSC)
@@ -407,7 +411,7 @@ int MainWindow::sane_ex_callback(SANE_Handle hdev, int code, void *data, unsigne
break;
case SANE_EVENT_DEVICE_LEFT:
{
- SANE_Device* sane_dev = (SANE_Device*)data;
+ SANE_Device* sane_dev = (SANE_Device*)data;
emit p->sane_dev_remove(sane_dev->name);
}
break;
diff --git a/app/fwupgrade/resource.rc b/app/fwupgrade/resource.rc
index 2a1254b5..ef88a78f 100644
--- a/app/fwupgrade/resource.rc
+++ b/app/fwupgrade/resource.rc
@@ -70,6 +70,8 @@ IDI_ICON1 ICON "image_rsc\\logo\\deli.ico"
IDI_ICON1 ICON "image_rsc\\logo\\maxsound_logo.ico"
#elif defined(OEM_GUANGDIANTONG)
IDI_ICON1 ICON "image_rsc\\logo\\toec_logo.ico"
+#elif defined(OEM_QIMINGTAIHE)
+IDI_ICON1 ICON "image_rsc\\logo\\teachcloud_logo.ico"
#else
IDI_ICON1 ICON "image_rsc\\logo\\logo.ico"
#endif
diff --git a/app/scanner2/Scanner_resource.qrc b/app/scanner2/Scanner_resource.qrc
index 38bc7030..7c71e8dc 100644
--- a/app/scanner2/Scanner_resource.qrc
+++ b/app/scanner2/Scanner_resource.qrc
@@ -85,6 +85,7 @@
image_rsc/logo/RightWay_logo.ico
image_rsc/logo/maxsound_logo.ico
image_rsc/logo/toec_logo.ico
+ image_rsc/logo/teachcloud_logo.ico
image_rsc/logo/waiting.gif
image_rsc/statusbar/statusBar_admin.png
image_rsc/scroll/bottom_Hot.png
diff --git a/app/scanner2/VersionDll.cpp b/app/scanner2/VersionDll.cpp
index 643c0521..103bdbb1 100644
--- a/app/scanner2/VersionDll.cpp
+++ b/app/scanner2/VersionDll.cpp
@@ -71,6 +71,8 @@ HGResult VersionDll::Load()
strcat(dllPath, "MSDVersion.dll");
#elif defined(OEM_GUANGDIANTONG)
strcat(dllPath, "GDTVersion.dll");
+ #elif defined(OEM_QIMINGTAIHE)
+ strcat(dllPath, "QMTHVersion.dll");
#else
strcat(dllPath, "HGVersion.dll");
#endif
@@ -93,6 +95,8 @@ HGResult VersionDll::Load()
strcat(dllPath, "libMsdVersion.dll");
#elif defined(OEM_GUANGDIANTONG)
strcat(dllPath, "libGdtVersion.dll");
+ #elif defined(OEM_QIMINGTAIHE)
+ strcat(dllPath, "libQmthVersion.dll");
#else
strcpy(dllPath, "libHGVersion.so");
#endif
diff --git a/app/scanner2/dialog_aquireinto.cpp b/app/scanner2/dialog_aquireinto.cpp
index 8fb23e67..40ce6128 100644
--- a/app/scanner2/dialog_aquireinto.cpp
+++ b/app/scanner2/dialog_aquireinto.cpp
@@ -285,6 +285,8 @@ void Dialog_AquireInto::setCfgBaseOnSection(QString section)
ui->lineEdit_fileName->setText(getCfgValue(section2.c_str(), "namePrefix", QString("MSDScan")));
#elif defined(OEM_GUANGDIANTONG)
ui->lineEdit_fileName->setText(getCfgValue(section2.c_str(), "namePrefix", QString("GDTScan")));
+#elif defined(OEM_QIMINGTAIHE)
+ ui->lineEdit_fileName->setText(getCfgValue(section2.c_str(), "namePrefix", QString("QMTHScan")));
#else
ui->lineEdit_fileName->setText(getCfgValue(section2.c_str(), "namePrefix", QString("HGScan")));
#endif
diff --git a/app/scanner2/dialog_feedback.cpp b/app/scanner2/dialog_feedback.cpp
index d1150b4d..f5781963 100644
--- a/app/scanner2/dialog_feedback.cpp
+++ b/app/scanner2/dialog_feedback.cpp
@@ -43,6 +43,8 @@ void Dialog_Feedback::on_pbtn_submit_clicked()
oemName = HGVERSION_OEMNAME_MAXSOUND;
#elif defined(OEM_GUANGDIANTONG)
oemName = HGVERSION_OEMNAME_TOEC;
+#elif defined(OEM_QIMINGTAIHE)
+ oemName = HGVERSION_OEMNAME_TEACHCLOUD;
#else
oemName = HGVERSION_OEMNAME_HUAGO;
#endif
diff --git a/app/scanner2/dialog_upgrade.cpp b/app/scanner2/dialog_upgrade.cpp
index 767744e4..192460ec 100644
--- a/app/scanner2/dialog_upgrade.cpp
+++ b/app/scanner2/dialog_upgrade.cpp
@@ -37,6 +37,8 @@ Dialog_upgrade::Dialog_upgrade(class VersionDll *versionDll, HGVersionInfo *vers
oemName = HGVERSION_OEMNAME_MAXSOUND;
#elif defined(OEM_GUANGDIANTONG)
oemName = HGVERSION_OEMNAME_TOEC;
+#elif defined(OEM_QIMINGTAIHE)
+ oemName = HGVERSION_OEMNAME_TEACHCLOUD;
#else
oemName = HGVERSION_OEMNAME_HUAGO;
#endif
diff --git a/app/scanner2/image_rsc/logo/teachcloud_logo.ico b/app/scanner2/image_rsc/logo/teachcloud_logo.ico
new file mode 100644
index 0000000000000000000000000000000000000000..73f083790cc90b42e9a04169ae8a59532666c955
GIT binary patch
literal 330814
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":images/image_rsc/logo/toec_logo.ico"));
this->setWindowTitle(tr("ToecScan"));
m_oemName = HGVERSION_OEMNAME_TOEC;
+#elif defined(OEM_QIMINGTAIHE)
+ this->setWindowIcon(QIcon(":images/image_rsc/logo/teachcloud_logo.ico"));
+ this->setWindowTitle(tr("TeachCloudScan"));
+ m_oemName = HGVERSION_OEMNAME_TEACHCLOUD;
#else
this->setWindowIcon(QIcon(":images/image_rsc/logo/logo.ico"));
this->setWindowTitle(tr("HuaGoScan"));
@@ -168,7 +172,7 @@ MainWindow::MainWindow(const QString& appLang, QWidget *parent)
ui->actionact_update->setVisible(false);
ui->act_feedback->setVisible(false);
-#if !defined(OEM_HANWANG) && !defined(OEM_LISICHENG) && !defined(OEM_CANGTIAN) && !defined(OEM_ZHONGJING) && !defined(OEM_ZIGUANG) && !defined(OEM_NEUTRAL) && !defined(OEM_DELI) && !defined(OEM_MEISONGDA) && !defined(OEM_GUANGDIANTONG)
+#if !defined(OEM_HANWANG) && !defined(OEM_LISICHENG) && !defined(OEM_CANGTIAN) && !defined(OEM_ZHONGJING) && !defined(OEM_ZIGUANG) && !defined(OEM_NEUTRAL) && !defined(OEM_DELI) && !defined(OEM_MEISONGDA) && !defined(OEM_GUANGDIANTONG) && !defined(OEM_QIMINGTAIHE)
if (m_versionDll->IsValid())
{
ui->actionact_update->setVisible(true);
@@ -408,6 +412,8 @@ MainWindow::MainWindow(const QString& appLang, QWidget *parent)
m_password = "maxsound";
#elif defined(OEM_GUANGDIANTONG)
m_password = "toecscan";
+#elif defined(OEM_QIMINGTAIHE)
+ m_password = "teachcloud";
#else
m_password = "huagoscan";
#endif
@@ -3355,6 +3361,8 @@ void MainWindow::on_act_help_triggered()
filename = QApplication::applicationDirPath() + "/MaxsoundScan_App_Help_manual.pdf";
#elif defined(OEM_GUANGDIANTONG)
filename = QApplication::applicationDirPath() + "/ToecScan_App_Help_manual.pdf";
+ #elif defined(OEM_QIMINGTAIHE)
+ filename = QApplication::applicationDirPath() + "/TeachCloudScan_App_Help_manual.pdf";
#else
filename = QApplication::applicationDirPath() + "/HuaGoScan_App_Help_manual.pdf";
#endif
@@ -3390,6 +3398,8 @@ void MainWindow::on_act_help_triggered()
filename = QApplication::applicationDirPath() + "/../../entries/help/MaxsoundScan_App_Help_manual.pdf";
#elif defined(OEM_GUANGDIANTONG)
filename = QApplication::applicationDirPath() + "/../../entries/help/ToecScan_App_Help_manual.pdf";
+#elif defined(OEM_QIMINGTAIHE)
+ filename = QApplication::applicationDirPath() + "/../../entries/help/TeachCloudScan_App_Help_manual.pdf";
#else
filename = QApplication::applicationDirPath() + "/../../entries/help/HuaGoScan_App_Help_manual.pdf";
#endif
@@ -3424,6 +3434,8 @@ void MainWindow::on_act_help_triggered()
filename = QApplication::applicationDirPath() + "/../doc/MaxsoundScan_App_Help_manual.pdf";
#elif defined(OEM_GUANGDIANTONG)
filename = QApplication::applicationDirPath() + "/../doc/ToecScan_App_Help_manual.pdf";
+#elif defined(OEM_QIMINGTAIHE)
+ filename = QApplication::applicationDirPath() + "/../doc/TeachCloudScan_App_Help_manual.pdf";
#else
filename = QApplication::applicationDirPath() + "/../doc/HuaGoScan_App_Help_manual.pdf";
#endif
@@ -3510,6 +3522,8 @@ void MainWindow::on_act_about_triggered()
buildVersion = 28;
#elif defined (OEM_GUANGDIANTONG)
buildVersion = 30;
+#elif defined (OEM_QIMINGTAIHE)
+ buildVersion = 32;
#endif
buildVersion = buildVersion * 10;
@@ -3561,7 +3575,7 @@ void MainWindow::on_act_about_triggered()
content += tr("DriverVer: %1
").arg(QString::fromLocal8Bit(version));
QString appLang = getCfgValue("global", "language", QString("chinese"));
-#if defined(OEM_NEUTRAL)
+#if defined(OEM_NEUTRAL) || defined(OEM_QIMINGTAIHE)
QMessageBox::about(this, title, content);
#else
diff --git a/app/scanner2/resource.rc b/app/scanner2/resource.rc
index ff6ec1bb..b01b43d0 100644
--- a/app/scanner2/resource.rc
+++ b/app/scanner2/resource.rc
@@ -70,6 +70,8 @@ IDI_ICON1 ICON "image_rsc\\logo\\deli.ico"
IDI_ICON1 ICON "image_rsc\\logo\\maxsound_logo.ico"
#elif defined(OEM_GUANGDIANTONG)
IDI_ICON1 ICON "image_rsc\\logo\\toec_logo.ico"
+#elif defined(OEM_QIMINGTAIHE)
+IDI_ICON1 ICON "image_rsc\\logo\\teachcloud_logo.ico"
#else
IDI_ICON1 ICON "image_rsc\\logo\\logo.ico"
#endif
diff --git a/app/scantool/form_saveparam.cpp b/app/scantool/form_saveparam.cpp
index 94cb0cd2..4a74b92a 100644
--- a/app/scantool/form_saveparam.cpp
+++ b/app/scantool/form_saveparam.cpp
@@ -166,6 +166,8 @@ SaveParam Form_SaveParam::GetDefSaveParam()
saveParam.fileNamePrefix = "MSDScan";
#elif defined(OEM_GUANGDIANTONG)
saveParam.fileNamePrefix = "GDTScan";
+#elif defined(OEM_QIMINGTAIHE)
+ saveParam.fileNamePrefix = "QMTHScan";
#else
saveParam.fileNamePrefix = "HGScan";
#endif
diff --git a/app/scantool/main.cpp b/app/scantool/main.cpp
index 48ac2200..1638da71 100644
--- a/app/scantool/main.cpp
+++ b/app/scantool/main.cpp
@@ -33,6 +33,8 @@ HLOG g_hLog = nullptr;
const char *oem = "MaxsoundScan";
#elif defined(OEM_GUANGDIANTONG)
const char *oem = "ToecScan";
+#elif defined(OEM_QIMINGTAIHE)
+ const char *oem = "TeachCloudScan";
#else
const char* oem = "HuaGoScan";
#endif
diff --git a/app/upgrade/image_rsc/logo/teachcloud_logo.ico b/app/upgrade/image_rsc/logo/teachcloud_logo.ico
new file mode 100644
index 0000000000000000000000000000000000000000..73f083790cc90b42e9a04169ae8a59532666c955
GIT binary patch
literal 330814
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