QCMakePresetComboBox.h 790 B

1234567891011121314151617181920212223242526272829303132333435
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #pragma once
  4. #include "QCMakePreset.h"
  5. #include <QComboBox>
  6. #include <QObject>
  7. #include <QString>
  8. #include <QVector>
  9. class QCMakePresetItemModel;
  10. class QCMakePresetComboBox : public QComboBox
  11. {
  12. Q_OBJECT
  13. public:
  14. QCMakePresetComboBox(QWidget* parent = nullptr);
  15. const QVector<QCMakePreset>& presets() const;
  16. QString presetName() const;
  17. public slots:
  18. void setPresets(const QVector<QCMakePreset>& presets);
  19. void setPresetName(const QString& name);
  20. signals:
  21. void presetChanged(const QString& name);
  22. private:
  23. QCMakePresetItemModel* m_model;
  24. bool m_resetting = false;
  25. QString m_lastPreset;
  26. void emitPresetChanged();
  27. };