From 296063e23189cbcc5c9e6f1a39bbba4ea6131c85 Mon Sep 17 00:00:00 2001 From: pancake Date: Thu, 10 Oct 2024 17:59:52 +0200 Subject: [PATCH] Enforce c++20, Add Ubuntu24, and return nullptr for TextEditDialog --- .github/workflows/ci.yml | 2 +- src/Iaito.pro | 3 ++- src/common/TextEditDialog.cpp | 10 +++++----- src/common/TextEditDialog.h | 2 +- src/menus/DecompilerContextMenu.cpp | 4 ++-- src/menus/DisassemblyContextMenu.cpp | 4 ++-- 6 files changed, 13 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 38549872..5cfb1fe6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -153,7 +153,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-22.04, ubuntu-20.04] + os: [ubuntu-24.04, ubuntu-22.04, ubuntu-20.04] python-version: [3.8.x] system-deps: [true] cc-override: [default] diff --git a/src/Iaito.pro b/src/Iaito.pro index 7864f809..aeabc1a7 100644 --- a/src/Iaito.pro +++ b/src/Iaito.pro @@ -6,6 +6,7 @@ IAITO_VERSION_MAJOR = 5 IAITO_VERSION_MINOR = 9 IAITO_VERSION_PATCH = 4 +CONFIG += c++20 CONFIG+=app_bundle # LIBS+= -dead_strip @@ -113,7 +114,7 @@ win32 { } macx { - QMAKE_CXXFLAGS += -mmacosx-version-min=10.7 -std=c++17 -stdlib=libc++ -g + QMAKE_CXXFLAGS += -mmacosx-version-min=10.7 -std=c++20 -stdlib=libc++ -g QMAKE_TARGET_BUNDLE_PREFIX = org.radare QMAKE_BUNDLE = iaito QMAKE_INFO_PLIST = macos/Info.plist diff --git a/src/common/TextEditDialog.cpp b/src/common/TextEditDialog.cpp index c5f77df3..fa09ca5d 100644 --- a/src/common/TextEditDialog.cpp +++ b/src/common/TextEditDialog.cpp @@ -32,12 +32,12 @@ void TextEditDialog::accept() QDialog::accept(); } -IAITO_EXPORT std::optional openTextEditDialog(const QString& initialText, QWidget *parent) { +IAITO_EXPORT QString* openTextEditDialog(const QString& initialText, QWidget *parent) { TextEditDialog dialog(initialText, parent); if (dialog.exec() == QDialog::Accepted) { - return dialog.getEditedText(); + return new QString(dialog.getEditedText()); } - return std::nullopt; + return nullptr; // return initialText; // Return original text if canceled } @@ -48,9 +48,9 @@ IAITO_EXPORT bool openTextEditDialogFromFile(const QString& textFileName, QWidge return false; } const QString qdata (data); - std::optional s = openTextEditDialog(qdata, parent); + QString *s = openTextEditDialog(qdata, parent); bool res = true; - if (s) { + if (s != nullptr) { ut8 *newData = (ut8*)r_str_newf ("%s\n", s->toUtf8().constData()); if (!r_file_dump (dp, newData, -1, false)) { res = false; diff --git a/src/common/TextEditDialog.h b/src/common/TextEditDialog.h index e0d24d0e..c4fc927a 100644 --- a/src/common/TextEditDialog.h +++ b/src/common/TextEditDialog.h @@ -27,7 +27,7 @@ class TextEditDialog : public QDialog { QString editedText; }; -IAITO_EXPORT std::optional openTextEditDialog(const QString& initialText, QWidget *parent = nullptr); +IAITO_EXPORT QString* openTextEditDialog(const QString& initialText, QWidget *parent = nullptr); IAITO_EXPORT bool openTextEditDialogFromFile(const QString& textFileName, QWidget *parent = nullptr); #endif // HELPERS_H diff --git a/src/menus/DecompilerContextMenu.cpp b/src/menus/DecompilerContextMenu.cpp index 906a54ac..f62c8593 100644 --- a/src/menus/DecompilerContextMenu.cpp +++ b/src/menus/DecompilerContextMenu.cpp @@ -377,8 +377,8 @@ void DecompilerContextMenu::actionCopyInstructionAddressTriggered() void DecompilerContextMenu::actionEditAnnotationTriggered() { QString os = Core()->cmdRaw("anos"); - std::optional s = openTextEditDialog(os, this); - if (s) { + QString* s = openTextEditDialog(os, this); + if (s != nullptr) { Core()->cmdRaw(QString("ano=%1").arg(QString(s->toLocal8Bit().toBase64()))); this->mainWindow->refreshAll(); } diff --git a/src/menus/DisassemblyContextMenu.cpp b/src/menus/DisassemblyContextMenu.cpp index 188910b8..2b5e0e3d 100644 --- a/src/menus/DisassemblyContextMenu.cpp +++ b/src/menus/DisassemblyContextMenu.cpp @@ -889,8 +889,8 @@ void DisassemblyContextMenu::on_actionAnalyzeFunction_triggered() void DisassemblyContextMenu::on_actionEditAnnotation_triggered() { QString os = Core()->cmdRaw("anos"); - std::optional s = openTextEditDialog(os, this); - if (s) { + QString *s = openTextEditDialog(os, this); + if (s != nullptr) { Core()->cmdRaw(QString("ano=%1").arg(QString(s->toLocal8Bit().toBase64()))); this->mainWindow->refreshAll(); }