diff options
author | Clinton Stimpson <clinton@elemtech.com> | 2007-11-13 04:54:49 (GMT) |
---|---|---|
committer | Clinton Stimpson <clinton@elemtech.com> | 2007-11-13 04:54:49 (GMT) |
commit | a81896eaedc17f11e3fb412a296309abd9e34b63 (patch) | |
tree | 8e1204cfa77852920fa730dec0e97a3b09926818 /Source/QtDialog/AddCacheEntry.cxx | |
parent | 45a8e26fe159e6c0847addb3dbc126a852779f5a (diff) | |
download | CMake-a81896eaedc17f11e3fb412a296309abd9e34b63.zip CMake-a81896eaedc17f11e3fb412a296309abd9e34b63.tar.gz CMake-a81896eaedc17f11e3fb412a296309abd9e34b63.tar.bz2 |
ENH: Add ability to add cache entries (even before first configure).
Diffstat (limited to 'Source/QtDialog/AddCacheEntry.cxx')
-rw-r--r-- | Source/QtDialog/AddCacheEntry.cxx | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/Source/QtDialog/AddCacheEntry.cxx b/Source/QtDialog/AddCacheEntry.cxx new file mode 100644 index 0000000..46cc6ab --- /dev/null +++ b/Source/QtDialog/AddCacheEntry.cxx @@ -0,0 +1,71 @@ + +#include "AddCacheEntry.h" +#include <QMetaProperty> + +static const int NumTypes = 4; +static const QString TypeStrings[NumTypes] = + { "BOOL", "PATH", "FILEPATH", "STRING" }; +static const QCMakeCacheProperty::PropertyType Types[NumTypes] = + { QCMakeCacheProperty::BOOL, QCMakeCacheProperty::PATH, + QCMakeCacheProperty::FILEPATH, QCMakeCacheProperty::STRING}; + +AddCacheEntry::AddCacheEntry(QWidget* p) + : QWidget(p) +{ + this->setupUi(this); + for(int i=0; i<NumTypes; i++) + { + this->Type->addItem(TypeStrings[i]); + } + QWidget* cb = new QCheckBox(); + QWidget* path = new QCMakeCachePathEditor(); + QWidget* filepath = new QCMakeCacheFilePathEditor(); + QWidget* string = new QLineEdit(); + this->StackedWidget->addWidget(cb); + this->StackedWidget->addWidget(path); + this->StackedWidget->addWidget(filepath); + this->StackedWidget->addWidget(string); + this->setTabOrder(this->Name, this->Type); + this->setTabOrder(this->Type, cb); + this->setTabOrder(cb, path); + this->setTabOrder(path, filepath); + this->setTabOrder(filepath, string); + this->setTabOrder(string, this->Description); +} + +QString AddCacheEntry::name() const +{ + return this->Name->text(); +} + +QVariant AddCacheEntry::value() const +{ + QWidget* w = this->StackedWidget->currentWidget(); + if(qobject_cast<QLineEdit*>(w)) + { + return static_cast<QLineEdit*>(w)->text(); + } + else if(qobject_cast<QCheckBox*>(w)) + { + return static_cast<QCheckBox*>(w)->isChecked(); + } + printf("didn't get anything %s\n", w->metaObject()->className()); + return QVariant(); +} + +QString AddCacheEntry::description() const +{ + return this->Description->text(); +} + +QCMakeCacheProperty::PropertyType AddCacheEntry::type() const +{ + int idx = this->Type->currentIndex(); + if(idx >= 0 && idx < NumTypes) + { + return Types[idx]; + } + return QCMakeCacheProperty::BOOL; +} + + |