text: /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
     file Copyright.txt or https://cmake.org/licensing for details.  */
  #pragma once
  
  #include "QCMakePreset.h"
  #include <QComboBox>
  #include <QObject>
  #include <QString>
  #include <QVector>
  
  class QCMakePresetItemModel;
  
  class QCMakePresetComboBox : public QComboBox
  {
    Q_OBJECT
  public:
    QCMakePresetComboBox(QWidget* parent = nullptr);
  
    const QVector<QCMakePreset>& presets() const;
    QString presetName() const;
  
  public slots:
    void setPresets(const QVector<QCMakePreset>& presets);
    void setPresetName(const QString& name);
  
  signals:
    void presetChanged(const QString& name);
  
  private:
    QCMakePresetItemModel* m_model;
    bool m_resetting = false;
    QString m_lastPreset;
  
    void emitPresetChanged();
  };
  