- enhancement: Open offline gnu as/x86 assembly manual if exists.

This commit is contained in:
Roy Qu 2023-03-05 08:56:11 +08:00
parent 00431c0979
commit f93d5cdd9e
4 changed files with 34 additions and 7 deletions

View File

@ -5,6 +5,7 @@ Red Panda C++ Version 2.17
- enhancement: Add "New Text File" in the File menu
- enhancement: Add "address" in the memory view's mouse tip.
- enhancement: Show mousetip for numbers in the GNU assembly file.
- enhancement: Open offline gnu as/x86 assembly manual if exists.
Red Panda C++ Version 2.16

View File

@ -12,9 +12,12 @@ isEmpty(APP_VERSION) {
}
contains(QMAKE_HOST.arch, x86_64):{
contains(QMAKE_HOST.arch, x86_64):{
DEFINES += ARCH_X86_64=1
} else : {
DEFINES += ARCH_X86_64=1
} else: {
contains(QMAKE_HOST.arch, i386):{
DEFINES += ARCH_X86=1
}
contains(QMAKE_HOST.arch, i686):{
DEFINES += ARCH_X86=1
}
}

View File

@ -419,7 +419,7 @@ MainWindow::MainWindow(QWidget *parent)
ui->actionIA_32_Assembly_Language_Reference_Manual->setVisible(true);
ui->actionx86_Assembly_Language_Reference_Manual->setVisible(false);
#elif defined(ARCH_X86_64)
ui->actionIA_32_Assembly_Language_Reference_Manual->setVisible(true);
ui->actionIA_32_Assembly_Language_Reference_Manual->setVisible(false);
ui->actionx86_Assembly_Language_Reference_Manual->setVisible(true);
#else
ui->actionIA_32_Assembly_Language_Reference_Manual->setVisible(false);
@ -9610,20 +9610,40 @@ void MainWindow::on_actionNew_GAS_File_triggered()
void MainWindow::on_actionGNU_Assembler_Manual_triggered()
{
QFileInfo fileInfo{includeTrailingPathDelimiter(pSettings->dirs().appDir())+
QString{"Using GNU Assembler.pdf"}};
if (fileInfo.exists()) {
QDesktopServices::openUrl(QUrl::fromLocalFile(fileInfo.absoluteFilePath()));
return;
}
QDesktopServices::openUrl(QUrl("https://sourceware.org/binutils/docs/as/index.html"));
}
#ifdef ARCH_X86_64
void MainWindow::on_actionx86_Assembly_Language_Reference_Manual_triggered()
{
QFileInfo fileInfo{includeTrailingPathDelimiter(pSettings->dirs().appDir())+
QString{"x86 Assembly Language Reference Manual.pdf"}};
if (fileInfo.exists()) {
QDesktopServices::openUrl(QUrl::fromLocalFile(fileInfo.absoluteFilePath()));
return;
}
QDesktopServices::openUrl(QUrl("https://docs.oracle.com/cd/E53394_01/html/E54851/index.html"));
}
#endif
#ifdef ARCH_X86
void MainWindow::on_actionIA_32_Assembly_Language_Reference_Manual_triggered()
{
QFileInfo fileInfo{includeTrailingPathDelimiter(pSettings->dirs().appDir())+
QString{"IA-32 Assembly Language Reference Manual.pdf"}};
if (fileInfo.exists()) {
QDesktopServices::openUrl(QUrl::fromLocalFile(fileInfo.absoluteFilePath()));
return;
}
QDesktopServices::openUrl(QUrl("https://docs.oracle.com/cd/E19455-01/806-3773/index.html"));
}
#endif
void MainWindow::on_actionAdd_Watchpoint_triggered()
{

View File

@ -794,9 +794,12 @@ private slots:
void on_actionGNU_Assembler_Manual_triggered();
#ifdef ARCH_X86_64
void on_actionx86_Assembly_Language_Reference_Manual_triggered();
#endif
#ifdef ARCH_X86
void on_actionIA_32_Assembly_Language_Reference_Manual_triggered();
#endif
void on_actionAdd_Watchpoint_triggered();