Get rid of Q_OBJECT in macOS MainWindow

This commit is contained in:
Ilya Fedin 2022-03-01 04:32:40 +04:00 committed by John Preston
parent 1c8d4ee7ab
commit ffbafcb5fb
2 changed files with 86 additions and 90 deletions

View file

@ -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<Window::Controller*> 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;

View file

@ -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;