4#include "RabbitCommonDir.h"
5#include "RabbitCommonTools.h"
10#include "./ui_MainWindow.h"
12MainWindow::MainWindow(QWidget *parent)
18 RabbitCommon::CTools::AddStyleMenu(ui->menuTools);
19 ui->menuTools->addMenu(RabbitCommon::CTools::GetLogMenu(
this));
21#if defined(Q_OS_ANDROID) && QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
22 auto pTbMenu =
new QToolButton(ui->toolBar);
23 pTbMenu->setFocusPolicy(Qt::NoFocus);
24 pTbMenu->setPopupMode(QToolButton::InstantPopup);
26 pTbMenu->setText(tr(
"menu"));
27 pTbMenu->setIcon(QIcon::fromTheme(
"menu"));
28 pTbMenu->setToolTip(tr(
"menu"));
29 pTbMenu->setStatusTip(tr(
"menu"));
30 QMenu *pMenu =
new QMenu(pTbMenu);
31 pMenu->addActions(this->menuBar()->actions());
32 pTbMenu->setMenu(pMenu);
33 ui->toolBar->addWidget(pTbMenu);
37 this->setCentralWidget(&m_Chess);
38 ui->actionPrompt_sound_S->setChecked(m_Chess.getEnablePromptSound());
39 ui->actionPrompt_message_M->setChecked(m_Chess.getEnablePromptMessage());
42 ui->actionUpdate_U->setIcon(updater.windowIcon());
43#if !defined(Q_OS_ANDROID)
44 RabbitCommon::CTools::Instance()->RestoreWidget(
this);
48MainWindow::~MainWindow()
53void MainWindow::closeEvent(QCloseEvent *event)
55#if !defined(Q_OS_ANDROID)
56 RabbitCommon::CTools::Instance()->SaveWidget(
this);
58 QMainWindow::closeEvent(event);
61void MainWindow::on_actionOpen_O_triggered()
63 QString szFile = QFileDialog::getOpenFileName(
this, tr(
"Open chess game"));
64 if(szFile.isEmpty())
return;
65 int nRet = m_Chess.
LoadChessGame(szFile.toStdString().c_str());
67 QMessageBox::information(
68 this,
"Load chess game",
69 tr(
"Load chess game from file %1 successfully!").arg(szFile));
73void MainWindow::on_actionSave_S_triggered()
75 QString szFile = QFileDialog::getSaveFileName(
76 this, tr(
"Save chess game"), QString(),
77 tr(
"Chinese chess control file(*.ccc);; Portable game notation file(*.pgn);; All files(*.*)"));
78 if(szFile.isEmpty())
return;
79 int nRet = m_Chess.
SaveChessGame(szFile.toStdString().c_str());
81 QMessageBox::information(
82 this, tr(
"Save chess game"),
83 tr(
"Save chess game to file %1 successfully!").arg(szFile));
86void MainWindow::on_actionPrevious_P_triggered()
91void MainWindow::on_actionNext_N_triggered()
96void MainWindow::on_actionExit_E_triggered()
101void MainWindow::on_actionAbout_A_triggered()
103 CDlgAbout* pAbout =
new CDlgAbout(
this);
104 pAbout->m_AppIcon = QImage(
":/image/Chess");
105 pAbout->m_szAppName = tr(
"Chinese chess");
106 pAbout->m_szHomePage =
"https://github.com/KangLin/ChineseChessControl";
107 pAbout->m_szCopyrightStartTime =
"1994";
108#ifdef ChineseChessApp_VERSION
109 pAbout->m_szVersion = ChineseChessApp_VERSION;
111#ifdef ChineseChessApp_REVISION
112 pAbout->m_szVersionRevision = ChineseChessApp_REVISION;
114 RC_SHOW_WINDOW(pAbout);
119void MainWindow::on_actionPrompt_sound_S_triggered(
bool checked)
121 m_Chess.EnablePromptSound(checked);
124void MainWindow::on_actionPrompt_message_M_triggered(
bool checked)
126 m_Chess.EnablePromptMessage(checked);
129void MainWindow::on_actionUpdate_U_triggered()
131 CFrmUpdater* m_pfrmUpdater =
new CFrmUpdater();
132 m_pfrmUpdater->SetTitle(QImage(
":/image/Chess"));
133 RC_SHOW_WINDOW(m_pfrmUpdater);
int PreviouStep()
函数名:PreviouStep 功 能:上步棋 参 数:无 返回值:走棋步数 作 者:康 林 版 本:1.0.0.1 日 期:2004-10-5 时 间:10:19:51
virtual int LoadChessGame(const char *pszFile)
加载棋局。 根据文件扩展名来解析文件的格式。 当前支持自定义格式、PGN格式
int NextStep()
函数名:NextStep 功 能:下步棋 参 数:无 返回值:走棋步数 作 者:康 林 版 本:1.0.0.1 日 期:2004-10-5 时 间:10:19:33
virtual int SaveChessGame(const char *pszFile)
保存棋局。 根据文件扩展名来保存为相应的格式。 当前支持自定义格式、PGN格式