From ffbafcb5fb57d42ab7ba19906a526079c13bb80f Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Tue, 1 Mar 2022 04:32:40 +0400 Subject: [PATCH] Get rid of Q_OBJECT in macOS MainWindow --- .../platform/mac/main_window_mac.h | 20 --- .../platform/mac/main_window_mac.mm | 156 ++++++++++-------- 2 files changed, 86 insertions(+), 90 deletions(-) diff --git a/Telegram/SourceFiles/platform/mac/main_window_mac.h b/Telegram/SourceFiles/platform/mac/main_window_mac.h index 741bce7db..33186374c 100644 --- a/Telegram/SourceFiles/platform/mac/main_window_mac.h +++ b/Telegram/SourceFiles/platform/mac/main_window_mac.h @@ -17,9 +17,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL namespace Platform { class MainWindow : public Window::MainWindow { - // The Q_OBJECT meta info is used for qobject_cast! - Q_OBJECT - public: explicit MainWindow(not_null controller); @@ -39,23 +36,6 @@ public: class Private; -public Q_SLOTS: - void psMacUndo(); - void psMacRedo(); - void psMacCut(); - void psMacCopy(); - void psMacPaste(); - void psMacDelete(); - void psMacSelectAll(); - void psMacEmojiAndSymbols(); - - void psMacBold(); - void psMacItalic(); - void psMacUnderline(); - void psMacStrikeOut(); - void psMacMonospace(); - void psMacClearFormat(); - protected: bool eventFilter(QObject *obj, QEvent *evt) override; diff --git a/Telegram/SourceFiles/platform/mac/main_window_mac.mm b/Telegram/SourceFiles/platform/mac/main_window_mac.mm index 4c4cdb6cf..7d5760b95 100644 --- a/Telegram/SourceFiles/platform/mac/main_window_mac.mm +++ b/Telegram/SourceFiles/platform/mac/main_window_mac.mm @@ -474,27 +474,99 @@ void MainWindow::createGlobalMenu() { } QMenu *edit = psMainMenu.addMenu(tr::lng_mac_menu_edit(tr::now)); - psUndo = edit->addAction(tr::lng_mac_menu_undo(tr::now), this, SLOT(psMacUndo()), QKeySequence::Undo); - psRedo = edit->addAction(tr::lng_mac_menu_redo(tr::now), this, SLOT(psMacRedo()), QKeySequence::Redo); + psUndo = edit->addAction( + tr::lng_mac_menu_undo(tr::now), + this, + [] { SendKeySequence(Qt::Key_Z, Qt::ControlModifier); }, + QKeySequence::Undo); + psRedo = edit->addAction( + tr::lng_mac_menu_redo(tr::now), + this, + [] { + SendKeySequence( + Qt::Key_Z, + Qt::ControlModifier | Qt::ShiftModifier); + }, + QKeySequence::Redo); edit->addSeparator(); - psCut = edit->addAction(tr::lng_mac_menu_cut(tr::now), this, SLOT(psMacCut()), QKeySequence::Cut); - psCopy = edit->addAction(tr::lng_mac_menu_copy(tr::now), this, SLOT(psMacCopy()), QKeySequence::Copy); - psPaste = edit->addAction(tr::lng_mac_menu_paste(tr::now), this, SLOT(psMacPaste()), QKeySequence::Paste); - psDelete = edit->addAction(tr::lng_mac_menu_delete(tr::now), this, SLOT(psMacDelete()), QKeySequence(Qt::ControlModifier | Qt::Key_Backspace)); + psCut = edit->addAction( + tr::lng_mac_menu_cut(tr::now), + this, + [] { SendKeySequence(Qt::Key_X, Qt::ControlModifier); }, + QKeySequence::Cut); + psCopy = edit->addAction( + tr::lng_mac_menu_copy(tr::now), + this, + [] { SendKeySequence(Qt::Key_C, Qt::ControlModifier); }, + QKeySequence::Copy); + psPaste = edit->addAction( + tr::lng_mac_menu_paste(tr::now), + this, + [] { SendKeySequence(Qt::Key_V, Qt::ControlModifier); }, + QKeySequence::Paste); + psDelete = edit->addAction( + tr::lng_mac_menu_delete(tr::now), + this, + [] { SendKeySequence(Qt::Key_Delete); }, + QKeySequence(Qt::ControlModifier | Qt::Key_Backspace)); edit->addSeparator(); - psBold = edit->addAction(tr::lng_menu_formatting_bold(tr::now), this, SLOT(psMacBold()), QKeySequence::Bold); - psItalic = edit->addAction(tr::lng_menu_formatting_italic(tr::now), this, SLOT(psMacItalic()), QKeySequence::Italic); - psUnderline = edit->addAction(tr::lng_menu_formatting_underline(tr::now), this, SLOT(psMacUnderline()), QKeySequence::Underline); - psStrikeOut = edit->addAction(tr::lng_menu_formatting_strike_out(tr::now), this, SLOT(psMacStrikeOut()), Ui::kStrikeOutSequence); - psMonospace = edit->addAction(tr::lng_menu_formatting_monospace(tr::now), this, SLOT(psMacMonospace()), Ui::kMonospaceSequence); - psClearFormat = edit->addAction(tr::lng_menu_formatting_clear(tr::now), this, SLOT(psMacClearFormat()), Ui::kClearFormatSequence); + psBold = edit->addAction( + tr::lng_menu_formatting_bold(tr::now), + this, + [] { SendKeySequence(Qt::Key_B, Qt::ControlModifier); }, + QKeySequence::Bold); + psItalic = edit->addAction( + tr::lng_menu_formatting_italic(tr::now), + this, + [] { SendKeySequence(Qt::Key_I, Qt::ControlModifier); }, + QKeySequence::Italic); + psUnderline = edit->addAction( + tr::lng_menu_formatting_underline(tr::now), + this, + [] { SendKeySequence(Qt::Key_U, Qt::ControlModifier); }, + QKeySequence::Underline); + psStrikeOut = edit->addAction( + tr::lng_menu_formatting_strike_out(tr::now), + this, + [] { + SendKeySequence( + Qt::Key_X, + Qt::ControlModifier | Qt::ShiftModifier); + }, + Ui::kStrikeOutSequence); + psMonospace = edit->addAction( + tr::lng_menu_formatting_monospace(tr::now), + this, + [] { + SendKeySequence( + Qt::Key_M, + Qt::ControlModifier | Qt::ShiftModifier); + }, + Ui::kMonospaceSequence); + psClearFormat = edit->addAction( + tr::lng_menu_formatting_clear(tr::now), + this, + [] { + SendKeySequence( + Qt::Key_N, + Qt::ControlModifier | Qt::ShiftModifier); + }, + Ui::kClearFormatSequence); edit->addSeparator(); - psSelectAll = edit->addAction(tr::lng_mac_menu_select_all(tr::now), this, SLOT(psMacSelectAll()), QKeySequence::SelectAll); + psSelectAll = edit->addAction( + tr::lng_mac_menu_select_all(tr::now), + this, + [] { SendKeySequence(Qt::Key_A, Qt::ControlModifier); }, + QKeySequence::SelectAll); edit->addSeparator(); - edit->addAction(tr::lng_mac_menu_emoji_and_symbols(tr::now).replace('&', "&&"), this, SLOT(psMacEmojiAndSymbols()), QKeySequence(Qt::MetaModifier | Qt::ControlModifier | Qt::Key_Space)); + edit->addAction( + tr::lng_mac_menu_emoji_and_symbols(tr::now).replace('&', "&&"), + this, + [] { [NSApp orderFrontCharacterPalette:nil]; }, + QKeySequence(Qt::MetaModifier | Qt::ControlModifier | Qt::Key_Space)); QMenu *window = psMainMenu.addMenu(tr::lng_mac_menu_window(tr::now)); psContacts = window->addAction(tr::lng_mac_menu_contacts(tr::now)); @@ -550,62 +622,6 @@ void MainWindow::createGlobalMenu() { updateGlobalMenu(); } -void MainWindow::psMacUndo() { - SendKeySequence(Qt::Key_Z, Qt::ControlModifier); -} - -void MainWindow::psMacRedo() { - SendKeySequence(Qt::Key_Z, Qt::ControlModifier | Qt::ShiftModifier); -} - -void MainWindow::psMacCut() { - SendKeySequence(Qt::Key_X, Qt::ControlModifier); -} - -void MainWindow::psMacCopy() { - SendKeySequence(Qt::Key_C, Qt::ControlModifier); -} - -void MainWindow::psMacPaste() { - SendKeySequence(Qt::Key_V, Qt::ControlModifier); -} - -void MainWindow::psMacDelete() { - SendKeySequence(Qt::Key_Delete); -} - -void MainWindow::psMacSelectAll() { - SendKeySequence(Qt::Key_A, Qt::ControlModifier); -} - -void MainWindow::psMacEmojiAndSymbols() { - [NSApp orderFrontCharacterPalette:nil]; -} - -void MainWindow::psMacBold() { - SendKeySequence(Qt::Key_B, Qt::ControlModifier); -} - -void MainWindow::psMacItalic() { - SendKeySequence(Qt::Key_I, Qt::ControlModifier); -} - -void MainWindow::psMacUnderline() { - SendKeySequence(Qt::Key_U, Qt::ControlModifier); -} - -void MainWindow::psMacStrikeOut() { - SendKeySequence(Qt::Key_X, Qt::ControlModifier | Qt::ShiftModifier); -} - -void MainWindow::psMacMonospace() { - SendKeySequence(Qt::Key_M, Qt::ControlModifier | Qt::ShiftModifier); -} - -void MainWindow::psMacClearFormat() { - SendKeySequence(Qt::Key_N, Qt::ControlModifier | Qt::ShiftModifier); -} - void MainWindow::updateGlobalMenuHook() { if (!positionInited()) { return;