SceneSwitcher/lib/utils/filter-combo-box.hpp
WarmUpTill 510f83246e Only emit signals when value changed
* Fixes crash when deleting macro in case macro selection is in focus
* Prevent unnecessary create operation when switching macro segment type
2024-08-16 06:49:27 +02:00

38 lines
842 B
C++

#pragma once
#include "export-symbol-helper.hpp"
#include <QComboBox>
namespace advss {
// Helper class which enables user to filter possible selections by typing
class ADVSS_EXPORT FilterComboBox : public QComboBox {
Q_OBJECT
public:
FilterComboBox(QWidget *parent = nullptr,
const QString &placehodler = "");
static void SetFilterBehaviourEnabled(bool);
void setCurrentText(const QString &text);
void setItemText(int index, const QString &text);
protected:
void focusOutEvent(QFocusEvent *event) override;
private slots:
void CompleterHighlightChanged(const QModelIndex &);
void TextChanged(const QString &);
private:
void Emit(int index, const QString &text);
int _lastEmittedIndex = -1;
QString _lastEmittedText;
int _lastCompleterHighlightRow = -1;
static bool _filteringEnabled;
};
} // namespace advss