mirror of
https://github.com/zer0condition/GoodmansKernel/
synced 2026-08-19 01:14:35 +00:00
32 lines
760 B
C++
32 lines
760 B
C++
#pragma once
|
|
#include <QDialog>
|
|
#include <QLineEdit>
|
|
#include <QListWidget>
|
|
#include <QVBoxLayout>
|
|
#include <QSortFilterProxyModel>
|
|
#include <QStandardItemModel>
|
|
#include <QListView>
|
|
#include <QKeyEvent>
|
|
#include <functional>
|
|
|
|
struct CommandAction {
|
|
QString label;
|
|
QString hint; // shortcut or context
|
|
std::function<void()> run;
|
|
};
|
|
|
|
class CommandPalette : public QDialog {
|
|
Q_OBJECT
|
|
public:
|
|
CommandPalette(QWidget* parent, const QVector<CommandAction>& actions);
|
|
protected:
|
|
void keyPressEvent(QKeyEvent* e) override;
|
|
private:
|
|
QLineEdit* search;
|
|
QListView* list;
|
|
QStandardItemModel* model;
|
|
QSortFilterProxyModel* proxy;
|
|
QVector<CommandAction> all_actions;
|
|
void runSelected();
|
|
};
|