Merge topic 'cmake-gui_AddCompletionForAddCacheEntry'
b0d01c3 cmake-gui: add completion for the names when adding cache entries 08c59af Remove trailing whitespace
This commit is contained in:
commit
3f4672b1d7
@ -12,15 +12,16 @@
|
|||||||
|
|
||||||
#include "AddCacheEntry.h"
|
#include "AddCacheEntry.h"
|
||||||
#include <QMetaProperty>
|
#include <QMetaProperty>
|
||||||
|
#include <QCompleter>
|
||||||
|
|
||||||
static const int NumTypes = 4;
|
static const int NumTypes = 4;
|
||||||
static const QString TypeStrings[NumTypes] =
|
static const QString TypeStrings[NumTypes] =
|
||||||
{ "BOOL", "PATH", "FILEPATH", "STRING" };
|
{ "BOOL", "PATH", "FILEPATH", "STRING" };
|
||||||
static const QCMakeProperty::PropertyType Types[NumTypes] =
|
static const QCMakeProperty::PropertyType Types[NumTypes] =
|
||||||
{ QCMakeProperty::BOOL, QCMakeProperty::PATH,
|
{ QCMakeProperty::BOOL, QCMakeProperty::PATH,
|
||||||
QCMakeProperty::FILEPATH, QCMakeProperty::STRING};
|
QCMakeProperty::FILEPATH, QCMakeProperty::STRING};
|
||||||
|
|
||||||
AddCacheEntry::AddCacheEntry(QWidget* p)
|
AddCacheEntry::AddCacheEntry(QWidget* p, const QStringList& completions)
|
||||||
: QWidget(p)
|
: QWidget(p)
|
||||||
{
|
{
|
||||||
this->setupUi(this);
|
this->setupUi(this);
|
||||||
@ -42,6 +43,7 @@ AddCacheEntry::AddCacheEntry(QWidget* p)
|
|||||||
this->setTabOrder(path, filepath);
|
this->setTabOrder(path, filepath);
|
||||||
this->setTabOrder(filepath, string);
|
this->setTabOrder(filepath, string);
|
||||||
this->setTabOrder(string, this->Description);
|
this->setTabOrder(string, this->Description);
|
||||||
|
this->Name->setCompleter(new QCompleter(completions, this));
|
||||||
}
|
}
|
||||||
|
|
||||||
QString AddCacheEntry::name() const
|
QString AddCacheEntry::name() const
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
#include <QWidget>
|
#include <QWidget>
|
||||||
#include <QCheckBox>
|
#include <QCheckBox>
|
||||||
|
#include <QStringList>
|
||||||
|
|
||||||
#include "QCMake.h"
|
#include "QCMake.h"
|
||||||
#include "ui_AddCacheEntry.h"
|
#include "ui_AddCacheEntry.h"
|
||||||
@ -23,7 +24,7 @@ class AddCacheEntry : public QWidget, public Ui::AddCacheEntry
|
|||||||
{
|
{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
public:
|
public:
|
||||||
AddCacheEntry(QWidget* p);
|
AddCacheEntry(QWidget* p, const QStringList& completions);
|
||||||
|
|
||||||
QString name() const;
|
QString name() const;
|
||||||
QVariant value() const;
|
QVariant value() const;
|
||||||
|
@ -68,6 +68,9 @@ CMakeSetupDialog::CMakeSetupDialog()
|
|||||||
int w = settings.value("Width", 700).toInt();
|
int w = settings.value("Width", 700).toInt();
|
||||||
this->resize(w, h);
|
this->resize(w, h);
|
||||||
|
|
||||||
|
this->AddVariableCompletions = settings.value("AddVariableCompletionEntries",
|
||||||
|
QStringList("CMAKE_INSTALL_PREFIX")).toStringList();
|
||||||
|
|
||||||
QWidget* cont = new QWidget(this);
|
QWidget* cont = new QWidget(this);
|
||||||
this->setupUi(cont);
|
this->setupUi(cont);
|
||||||
this->Splitter->setStretchFactor(0, 3);
|
this->Splitter->setStretchFactor(0, 3);
|
||||||
@ -1008,7 +1011,7 @@ void CMakeSetupDialog::addCacheEntry()
|
|||||||
dialog.resize(400, 200);
|
dialog.resize(400, 200);
|
||||||
dialog.setWindowTitle(tr("Add Cache Entry"));
|
dialog.setWindowTitle(tr("Add Cache Entry"));
|
||||||
QVBoxLayout* l = new QVBoxLayout(&dialog);
|
QVBoxLayout* l = new QVBoxLayout(&dialog);
|
||||||
AddCacheEntry* w = new AddCacheEntry(&dialog);
|
AddCacheEntry* w = new AddCacheEntry(&dialog, this->AddVariableCompletions);
|
||||||
QDialogButtonBox* btns = new QDialogButtonBox(
|
QDialogButtonBox* btns = new QDialogButtonBox(
|
||||||
QDialogButtonBox::Ok | QDialogButtonBox::Cancel,
|
QDialogButtonBox::Ok | QDialogButtonBox::Cancel,
|
||||||
Qt::Horizontal, &dialog);
|
Qt::Horizontal, &dialog);
|
||||||
@ -1021,6 +1024,26 @@ void CMakeSetupDialog::addCacheEntry()
|
|||||||
{
|
{
|
||||||
QCMakeCacheModel* m = this->CacheValues->cacheModel();
|
QCMakeCacheModel* m = this->CacheValues->cacheModel();
|
||||||
m->insertProperty(w->type(), w->name(), w->description(), w->value(), false);
|
m->insertProperty(w->type(), w->name(), w->description(), w->value(), false);
|
||||||
|
|
||||||
|
// only add variable names to the completion which are new
|
||||||
|
if (!this->AddVariableCompletions.contains(w->name()))
|
||||||
|
{
|
||||||
|
this->AddVariableCompletions << w->name();
|
||||||
|
// limit to at most 100 completion items
|
||||||
|
if (this->AddVariableCompletions.size() > 100)
|
||||||
|
{
|
||||||
|
this->AddVariableCompletions.removeFirst();
|
||||||
|
}
|
||||||
|
// make sure CMAKE_INSTALL_PREFIX is always there
|
||||||
|
if (!this->AddVariableCompletions.contains("CMAKE_INSTALL_PREFIX"))
|
||||||
|
{
|
||||||
|
this->AddVariableCompletions << QString("CMAKE_INSTALL_PREFIX");
|
||||||
|
}
|
||||||
|
QSettings settings;
|
||||||
|
settings.beginGroup("Settings/StartPath");
|
||||||
|
settings.setValue("AddVariableCompletionEntries",
|
||||||
|
this->AddVariableCompletions);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ public slots:
|
|||||||
void setBinaryDirectory(const QString& dir);
|
void setBinaryDirectory(const QString& dir);
|
||||||
void setSourceDirectory(const QString& dir);
|
void setSourceDirectory(const QString& dir);
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
void initialize();
|
void initialize();
|
||||||
void doConfigure();
|
void doConfigure();
|
||||||
void doGenerate();
|
void doGenerate();
|
||||||
@ -46,7 +46,7 @@ protected slots:
|
|||||||
void doInterrupt();
|
void doInterrupt();
|
||||||
void error(const QString& message);
|
void error(const QString& message);
|
||||||
void message(const QString& message);
|
void message(const QString& message);
|
||||||
|
|
||||||
void doSourceBrowse();
|
void doSourceBrowse();
|
||||||
void doBinaryBrowse();
|
void doBinaryBrowse();
|
||||||
void doReloadCache();
|
void doReloadCache();
|
||||||
@ -105,6 +105,8 @@ protected:
|
|||||||
QTextCharFormat ErrorFormat;
|
QTextCharFormat ErrorFormat;
|
||||||
QTextCharFormat MessageFormat;
|
QTextCharFormat MessageFormat;
|
||||||
|
|
||||||
|
QStringList AddVariableCompletions;
|
||||||
|
|
||||||
QEventLoop LocalLoop;
|
QEventLoop LocalLoop;
|
||||||
|
|
||||||
float ProgressOffset;
|
float ProgressOffset;
|
||||||
@ -118,8 +120,8 @@ class QCMakeThread : public QThread
|
|||||||
public:
|
public:
|
||||||
QCMakeThread(QObject* p);
|
QCMakeThread(QObject* p);
|
||||||
QCMake* cmakeInstance() const;
|
QCMake* cmakeInstance() const;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void cmakeInitialized();
|
void cmakeInitialized();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user