/**************************************************************************** ** Copyright (c) 2025 Evgeny Teterin (nayk) ** All right reserved. ** ** Permission is hereby granted, free of charge, to any person obtaining ** a copy of this software and associated documentation files (the ** "Software"), to deal in the Software without restriction, including ** without limitation the rights to use, copy, modify, merge, publish, ** distribute, sublicense, and/or sell copies of the Software, and to ** permit persons to whom the Software is furnished to do so, subject to ** the following conditions: ** ** The above copyright notice and this permission notice shall be ** included in all copies or substantial portions of the Software. ** ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ** NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE ** LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION ** OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION ** WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ** ****************************************************************************/ #include "main_window.h" #include "./ui_main_window.h" #include #include "circular_menu.h" //============================================================================== MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); initialize(); } //============================================================================== MainWindow::~MainWindow() { delete ui; } //============================================================================== void MainWindow::initialize() { setWindowTitle( QApplication::applicationName() ); const QList actions = this->findChildren(); QList menuActions; for (QAction* action: actions) { if (!action || !action->objectName().contains("action")) continue; if (action != ui->actionExit) connect(action, &QAction::triggered, this, &MainWindow::actionClick); menuActions.append(action); } connect(ui->actionExit, &QAction::triggered, this, &MainWindow::close); CircularMenu *circularMenu = new CircularMenu(this); circularMenu->addActions(menuActions); circularMenu->setHotKey(Qt::Key_Alt); } //============================================================================== void MainWindow::actionClick() { QAction *action = qobject_cast(sender()); if (action) { QMessageBox::information(this, tr("Информация"), tr("Выбран пункт меню '%1'").arg(action->text())); } } //==============================================================================