#pragma once
#include "cmConfigure.h"
#include <QComboBox>
#include <QCompleter>
#include <QLineEdit>
class QToolButton;
class QSortFilterProxyModel;
class QCMakeFileEditor : public QLineEdit
{
Q_OBJECT
public:
QCMakeFileEditor(QWidget* p, QString var);
protected slots:
virtual void chooseFile() = 0;
signals:
void fileDialogExists(bool);
protected:
void resizeEvent(QResizeEvent* e);
QToolButton* ToolButton;
QString Variable;
};
class QCMakePathEditor : public QCMakeFileEditor
{
Q_OBJECT
public:
QCMakePathEditor(QWidget* p = nullptr, QString const& var = QString());
void chooseFile();
};
class QCMakeFilePathEditor : public QCMakeFileEditor
{
Q_OBJECT
public:
QCMakeFilePathEditor(QWidget* p = nullptr, QString const& var = QString());
void chooseFile();
};
class QCMakeFileCompleter : public QCompleter
{
Q_OBJECT
public:
QCMakeFileCompleter(QObject* o, bool dirs);
virtual QString pathFromIndex(QModelIndex const& idx) const;
};
class QCMakeComboBox : public QComboBox
{
Q_OBJECT
Q_PROPERTY(QString value READ currentText WRITE setValue USER true);
public:
QCMakeComboBox(QWidget* p, QStringList strings)
: QComboBox(p)
{
this->addItems(strings);
}
void setValue(QString const& v)
{
int i = this->findText(v);
if (i != -1) {
this->setCurrentIndex(i);
}
}
};
namespace QtCMake {
bool setSearchFilter(QSortFilterProxyModel* model,
QString const& searchString);
void setSearchFilterColor(QLineEdit* edit, bool valid);
}