ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
ecvShortcutDialog.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 // - CloudViewer: www.cloudViewer.org -
3 // ----------------------------------------------------------------------------
4 // Copyright (c) 2018-2024 www.cloudViewer.org
5 // SPDX-License-Identifier: MIT
6 // ----------------------------------------------------------------------------
7 
8 #pragma once
9 
10 #include "ui_shorcutSettings.h"
11 #include "ui_shortcutEditDialog.h"
12 
15 class ecvShortcutEditDialog final : public QDialog {
16  Q_OBJECT
17 
18 public:
19  explicit ecvShortcutEditDialog(QWidget* parent = nullptr);
20 
21  ~ecvShortcutEditDialog() override;
22 
23  QKeySequence keySequence() const;
24 
25  void setKeySequence(const QKeySequence& sequence) const;
26 
27  int exec() override;
28 
29 private:
30  Ui_ShortcutEditDialog* m_ui;
31 };
32 
37 class ecvShortcutDialog final : public QDialog {
38  Q_OBJECT
39 public:
40  explicit ecvShortcutDialog(const QList<QAction*>& actions,
41  QWidget* parent = nullptr);
42 
43  ~ecvShortcutDialog() override;
44 
45  void restoreShortcutsFromQSettings() const;
46 
47 private slots:
48  void filterActions(const QString& searchText);
49 
50 private:
51  const QAction* checkConflict(const QKeySequence& sequence) const;
52  void handleDoubleClick(QTableWidgetItem* item);
53  void showAllRows();
54 
55  Ui_ShortcutDialog* m_ui;
56  ecvShortcutEditDialog* m_editDialog;
57  QList<QAction*> m_allActions; // Store all actions for filtering
58 };
#define slots
void restoreShortcutsFromQSettings() const
ecvShortcutDialog(const QList< QAction * > &actions, QWidget *parent=nullptr)
void setKeySequence(const QKeySequence &sequence) const
ecvShortcutEditDialog(QWidget *parent=nullptr)
QKeySequence keySequence() const