CMakeProjectManager: Some code cosmetics

Move non-exported classed to Internal namespace, move some functions
out-of-line.

Change-Id: I3a2135104d09c0c3f799c5b8d795c93059b1ae95
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
hjk
2022-02-07 17:01:09 +01:00
parent 363849a372
commit c6643dad65
5 changed files with 111 additions and 92 deletions

View File

@@ -121,8 +121,8 @@ private:
void updateAdvancedCheckBox(); void updateAdvancedCheckBox();
void updateFromKit(); void updateFromKit();
void updateConfigurationStateIndex(int index); void updateConfigurationStateIndex(int index);
CMakeProjectManager::CMakeConfig getQmlDebugCxxFlags(); CMakeConfig getQmlDebugCxxFlags();
CMakeProjectManager::CMakeConfig getSigningFlagsChanges(); CMakeConfig getSigningFlagsChanges();
void updateSelection(); void updateSelection();
void updateConfigurationStateSelection(); void updateConfigurationStateSelection();
@@ -695,19 +695,19 @@ void CMakeBuildSettingsWidget::updateButtonState()
ni.inCMakeCache = i.inCMakeCache; ni.inCMakeCache = i.inCMakeCache;
ni.values = i.values; ni.values = i.values;
switch (i.type) { switch (i.type) {
case CMakeProjectManager::ConfigModel::DataItem::BOOLEAN: case ConfigModel::DataItem::BOOLEAN:
ni.type = CMakeConfigItem::BOOL; ni.type = CMakeConfigItem::BOOL;
break; break;
case CMakeProjectManager::ConfigModel::DataItem::FILE: case ConfigModel::DataItem::FILE:
ni.type = CMakeConfigItem::FILEPATH; ni.type = CMakeConfigItem::FILEPATH;
break; break;
case CMakeProjectManager::ConfigModel::DataItem::DIRECTORY: case ConfigModel::DataItem::DIRECTORY:
ni.type = CMakeConfigItem::PATH; ni.type = CMakeConfigItem::PATH;
break; break;
case CMakeProjectManager::ConfigModel::DataItem::STRING: case ConfigModel::DataItem::STRING:
ni.type = CMakeConfigItem::STRING; ni.type = CMakeConfigItem::STRING;
break; break;
case CMakeProjectManager::ConfigModel::DataItem::UNKNOWN: case ConfigModel::DataItem::UNKNOWN:
default: default:
ni.type = CMakeConfigItem::UNINITIALIZED; ni.type = CMakeConfigItem::UNINITIALIZED;
break; break;

View File

@@ -35,12 +35,103 @@
#include <QSortFilterProxyModel> #include <QSortFilterProxyModel>
namespace CMakeProjectManager { namespace CMakeProjectManager {
namespace Internal {
// DataItem
ConfigModel::DataItem::DataItem(const CMakeConfigItem &cmi)
{
key = QString::fromUtf8(cmi.key);
value = QString::fromUtf8(cmi.value);
description = QString::fromUtf8(cmi.documentation);
values = cmi.values;
inCMakeCache = cmi.inCMakeCache;
isAdvanced = cmi.isAdvanced;
isInitial = cmi.isInitial;
isHidden = cmi.type == CMakeConfigItem::INTERNAL || cmi.type == CMakeConfigItem::STATIC;
setType(cmi.type);
}
void ConfigModel::DataItem::setType(CMakeConfigItem::Type cmt)
{
switch (cmt) {
case CMakeConfigItem::FILEPATH:
type = FILE;
break;
case CMakeConfigItem::PATH:
type = DIRECTORY;
break;
case CMakeConfigItem::BOOL:
type = BOOLEAN;
break;
case CMakeConfigItem::STRING:
type = STRING;
break;
default:
type = UNKNOWN;
break;
}
}
QString ConfigModel::DataItem::typeDisplay() const
{
switch (type) {
case DataItem::BOOLEAN:
return "BOOL";
case DataItem::FILE:
return "FILEPATH";
case DataItem::DIRECTORY:
return "PATH";
case DataItem::STRING:
return "STRING";
case DataItem::UNKNOWN:
break;
}
return "UNINITIALIZED";
}
CMakeConfigItem ConfigModel::DataItem::toCMakeConfigItem() const
{
CMakeConfigItem cmi;
cmi.key = key.toUtf8();
cmi.value = value.toUtf8();
switch (type) {
case DataItem::BOOLEAN:
cmi.type = CMakeConfigItem::BOOL;
break;
case DataItem::FILE:
cmi.type = CMakeConfigItem::FILEPATH;
break;
case DataItem::DIRECTORY:
cmi.type = CMakeConfigItem::PATH;
break;
case DataItem::STRING:
cmi.type = CMakeConfigItem::STRING;
break;
case DataItem::UNKNOWN:
cmi.type = CMakeConfigItem::UNINITIALIZED;
break;
}
cmi.isUnset = isUnset;
cmi.isAdvanced = isAdvanced;
cmi.isInitial = isInitial;
cmi.values = values;
cmi.documentation = description.toUtf8();
return cmi;
}
// ConfigModel
ConfigModel::ConfigModel(QObject *parent) : Utils::TreeModel<>(parent) ConfigModel::ConfigModel(QObject *parent) : Utils::TreeModel<>(parent)
{ {
setHeader({tr("Key"), tr("Value")}); setHeader({tr("Key"), tr("Value")});
} }
ConfigModel::~ConfigModel() = default;
QVariant ConfigModel::data(const QModelIndex &idx, int role) const QVariant ConfigModel::data(const QModelIndex &idx, int role) const
{ {
// Hide/show groups according to "isAdvanced" setting: // Hide/show groups according to "isAdvanced" setting:
@@ -76,8 +167,6 @@ bool ConfigModel::setData(const QModelIndex &idx, const QVariant &data, int role
return res; return res;
} }
ConfigModel::~ConfigModel() = default;
void ConfigModel::appendConfiguration(const QString &key, void ConfigModel::appendConfiguration(const QString &key,
const QString &value, const QString &value,
const ConfigModel::DataItem::Type type, bool isInitial, const ConfigModel::DataItem::Type type, bool isInitial,
@@ -454,7 +543,6 @@ QString ConfigModel::InternalDataItem::currentValue() const
return isUserChanged ? newValue : value; return isUserChanged ? newValue : value;
} }
namespace Internal {
ConfigModelTreeItem::~ConfigModelTreeItem() = default; ConfigModelTreeItem::~ConfigModelTreeItem() = default;

View File

@@ -32,8 +32,9 @@
#include <QString> #include <QString>
namespace CMakeProjectManager { namespace CMakeProjectManager {
namespace Internal {
namespace Internal { class ConfigModelTreeItem; } class ConfigModelTreeItem;
class ConfigModel : public Utils::TreeModel<> class ConfigModel : public Utils::TreeModel<>
{ {
@@ -46,90 +47,18 @@ public:
}; };
struct DataItem { struct DataItem {
bool operator == (const DataItem& other) const { bool operator==(const DataItem &other) const {
return key == other.key && isInitial == other.isInitial; return key == other.key && isInitial == other.isInitial;
} }
DataItem() {} DataItem() {}
DataItem(const CMakeConfigItem &cmi) { DataItem(const CMakeConfigItem &cmi);
key = QString::fromUtf8(cmi.key);
value = QString::fromUtf8(cmi.value);
description = QString::fromUtf8(cmi.documentation);
values = cmi.values;
inCMakeCache = cmi.inCMakeCache;
isAdvanced = cmi.isAdvanced; void setType(CMakeConfigItem::Type cmt);
isInitial = cmi.isInitial;
isHidden = cmi.type == CMakeConfigItem::INTERNAL || cmi.type == CMakeConfigItem::STATIC;
setType(cmi.type); QString typeDisplay() const;
}
void setType(CMakeConfigItem::Type cmt) { CMakeConfigItem toCMakeConfigItem() const;
switch (cmt) {
case CMakeConfigItem::FILEPATH:
type = FILE;
break;
case CMakeConfigItem::PATH:
type = DIRECTORY;
break;
case CMakeConfigItem::BOOL:
type = BOOLEAN;
break;
case CMakeConfigItem::STRING:
type = STRING;
break;
default:
type = UNKNOWN;
break;
}
}
QString typeDisplay() const {
switch (type) {
case DataItem::BOOLEAN:
return "BOOL";
case DataItem::FILE:
return "FILEPATH";
case DataItem::DIRECTORY:
return "PATH";
case DataItem::STRING:
return "STRING";
case DataItem::UNKNOWN:
break;
}
return "UNINITIALIZED";
}
CMakeConfigItem toCMakeConfigItem() const {
CMakeConfigItem cmi;
cmi.key = key.toUtf8();
cmi.value = value.toUtf8();
switch (type) {
case DataItem::BOOLEAN:
cmi.type = CMakeConfigItem::BOOL;
break;
case DataItem::FILE:
cmi.type = CMakeConfigItem::FILEPATH;
break;
case DataItem::DIRECTORY:
cmi.type = CMakeConfigItem::PATH;
break;
case DataItem::STRING:
cmi.type = CMakeConfigItem::STRING;
break;
case DataItem::UNKNOWN:
cmi.type = CMakeConfigItem::UNINITIALIZED;
break;
}
cmi.isUnset = isUnset;
cmi.isAdvanced = isAdvanced;
cmi.isInitial = isInitial;
cmi.values = values;
cmi.documentation = description.toUtf8();
return cmi;
}
enum Type { BOOLEAN, FILE, DIRECTORY, STRING, UNKNOWN}; enum Type { BOOLEAN, FILE, DIRECTORY, STRING, UNKNOWN};
@@ -214,8 +143,6 @@ private:
friend class Internal::ConfigModelTreeItem; friend class Internal::ConfigModelTreeItem;
}; };
namespace Internal {
class ConfigModelTreeItem : public Utils::TreeItem class ConfigModelTreeItem : public Utils::TreeItem
{ {
public: public:

View File

@@ -33,6 +33,7 @@
#include <QCheckBox> #include <QCheckBox>
namespace CMakeProjectManager { namespace CMakeProjectManager {
namespace Internal {
ConfigModelItemDelegate::ConfigModelItemDelegate(const Utils::FilePath &base, QObject* parent) ConfigModelItemDelegate::ConfigModelItemDelegate(const Utils::FilePath &base, QObject* parent)
: QStyledItemDelegate(parent) : QStyledItemDelegate(parent)
@@ -131,7 +132,7 @@ void ConfigModelItemDelegate::setModelData(QWidget *editor, QAbstractItemModel *
QStyledItemDelegate::setModelData(editor, model, index); QStyledItemDelegate::setModelData(editor, model, index);
} }
QSize CMakeProjectManager::ConfigModelItemDelegate::sizeHint(const QStyleOptionViewItem &option, QSize ConfigModelItemDelegate::sizeHint(const QStyleOptionViewItem &option,
const QModelIndex &index) const const QModelIndex &index) const
{ {
static int height = -1; static int height = -1;
@@ -154,5 +155,6 @@ QSize CMakeProjectManager::ConfigModelItemDelegate::sizeHint(const QStyleOptionV
return QSize(100, height); return QSize(100, height);
} }
} // namespace Internal
} // namespace CMakeProjectManager } // namespace CMakeProjectManager

View File

@@ -32,6 +32,7 @@
#include <QStyledItemDelegate> #include <QStyledItemDelegate>
namespace CMakeProjectManager { namespace CMakeProjectManager {
namespace Internal {
class ConfigModelItemDelegate : public QStyledItemDelegate class ConfigModelItemDelegate : public QStyledItemDelegate
{ {
@@ -51,4 +52,5 @@ private:
Utils::FilePath m_base; Utils::FilePath m_base;
}; };
} // namespace Internal
} // namespace CMakeProjectManager } // namespace CMakeProjectManager