[netinstall] Refactor: kill ItemData
- This doesn't compile right now. - The nested class ItemData doesn't do anything useful or meaningful that having model items with the right data wouldn't.
This commit is contained in:
parent
8825c9c995
commit
c66ef5a201
@ -21,55 +21,26 @@
|
|||||||
|
|
||||||
#include "utils/Logger.h"
|
#include "utils/Logger.h"
|
||||||
|
|
||||||
QVariant
|
PackageTreeItem::PackageTreeItem( const QString& packageName, PackageTreeItem* parent )
|
||||||
PackageTreeItem::ItemData::toOperation() const
|
|
||||||
{
|
|
||||||
// If it's a package with a pre- or post-script, replace
|
|
||||||
// with the more complicated datastructure.
|
|
||||||
if ( !preScript.isEmpty() || !postScript.isEmpty() )
|
|
||||||
{
|
|
||||||
QMap< QString, QVariant > sdetails;
|
|
||||||
sdetails.insert( "pre-script", preScript );
|
|
||||||
sdetails.insert( "package", packageName );
|
|
||||||
sdetails.insert( "post-script", postScript );
|
|
||||||
return sdetails;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return packageName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
PackageTreeItem::PackageTreeItem( const ItemData& data, PackageTreeItem* parent )
|
|
||||||
: m_parentItem( parent )
|
|
||||||
, m_data( data )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
PackageTreeItem::PackageTreeItem( const QString packageName, PackageTreeItem* parent )
|
|
||||||
: m_parentItem( parent )
|
: m_parentItem( parent )
|
||||||
{
|
{
|
||||||
m_data.packageName = packageName;
|
m_packageName = packageName;
|
||||||
if ( parent != nullptr )
|
if ( parent != nullptr )
|
||||||
{
|
{
|
||||||
m_data.selected = parent->isSelected();
|
// Avoid partially-checked .. a package can't be partial
|
||||||
|
m_selected = parent->isSelected() == Qt::Unchecked ? Qt::Unchecked : Qt::Checked;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_data.selected = Qt::Unchecked;
|
m_selected = Qt::Unchecked;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
PackageTreeItem::PackageTreeItem( PackageTreeItem* parent )
|
|
||||||
: m_parentItem( parent )
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
PackageTreeItem::PackageTreeItem::PackageTreeItem()
|
PackageTreeItem::PackageTreeItem::PackageTreeItem()
|
||||||
: PackageTreeItem( QString(), nullptr )
|
: PackageTreeItem( QString(), nullptr )
|
||||||
{
|
{
|
||||||
m_data.selected = Qt::Checked;
|
m_selected = Qt::Checked;
|
||||||
m_data.name = QLatin1String( "<root>" );
|
m_name = QLatin1String( "<root>" );
|
||||||
}
|
}
|
||||||
|
|
||||||
PackageTreeItem::~PackageTreeItem()
|
PackageTreeItem::~PackageTreeItem()
|
||||||
@ -123,7 +94,7 @@ PackageTreeItem::data( int column ) const
|
|||||||
switch ( column ) // group
|
switch ( column ) // group
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
return QVariant( prettyName() );
|
return QVariant( name() );
|
||||||
case 1:
|
case 1:
|
||||||
return QVariant( description() );
|
return QVariant( description() );
|
||||||
default:
|
default:
|
||||||
@ -145,47 +116,15 @@ PackageTreeItem::parentItem() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QString
|
|
||||||
PackageTreeItem::prettyName() const
|
|
||||||
{
|
|
||||||
return m_data.name;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString
|
|
||||||
PackageTreeItem::description() const
|
|
||||||
{
|
|
||||||
return m_data.description;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString
|
|
||||||
PackageTreeItem::preScript() const
|
|
||||||
{
|
|
||||||
return m_data.preScript;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString
|
|
||||||
PackageTreeItem::packageName() const
|
|
||||||
{
|
|
||||||
return m_data.packageName;
|
|
||||||
}
|
|
||||||
|
|
||||||
QString
|
|
||||||
PackageTreeItem::postScript() const
|
|
||||||
{
|
|
||||||
return m_data.postScript;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
|
||||||
PackageTreeItem::isHidden() const
|
|
||||||
{
|
|
||||||
return m_data.isHidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
PackageTreeItem::hiddenSelected() const
|
PackageTreeItem::hiddenSelected() const
|
||||||
{
|
{
|
||||||
Q_ASSERT( m_data.isHidden );
|
if ( !m_isHidden )
|
||||||
if ( !m_data.selected )
|
{
|
||||||
|
return m_selected;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !m_selected )
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -201,32 +140,20 @@ PackageTreeItem::hiddenSelected() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Has no non-hiddent parents */
|
/* Has no non-hiddent parents */
|
||||||
return m_data.selected;
|
return m_selected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool
|
|
||||||
PackageTreeItem::isCritical() const
|
|
||||||
{
|
|
||||||
return m_data.isCritical;
|
|
||||||
}
|
|
||||||
|
|
||||||
Qt::CheckState
|
|
||||||
PackageTreeItem::isSelected() const
|
|
||||||
{
|
|
||||||
return m_data.selected;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
PackageTreeItem::setSelected( Qt::CheckState isSelected )
|
PackageTreeItem::setSelected( Qt::CheckState isSelected )
|
||||||
{
|
{
|
||||||
if ( parentItem() == nullptr )
|
if ( parentItem() == nullptr )
|
||||||
// This is the root, it is always checked so don't change state
|
|
||||||
{
|
{
|
||||||
|
// This is the root, it is always checked so don't change state
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_data.selected = isSelected;
|
m_selected = isSelected;
|
||||||
setChildrenSelected( isSelected );
|
setChildrenSelected( isSelected );
|
||||||
|
|
||||||
// Look for suitable parent item which may change checked-state
|
// Look for suitable parent item which may change checked-state
|
||||||
@ -277,7 +204,7 @@ PackageTreeItem::setChildrenSelected( Qt::CheckState isSelected )
|
|||||||
// Children are never root; don't need to use setSelected on them.
|
// Children are never root; don't need to use setSelected on them.
|
||||||
for ( auto child : m_childItems )
|
for ( auto child : m_childItems )
|
||||||
{
|
{
|
||||||
child->m_data.selected = isSelected;
|
child->m_selected = isSelected;
|
||||||
child->setChildrenSelected( isSelected );
|
child->setChildrenSelected( isSelected );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -287,3 +214,22 @@ PackageTreeItem::type() const
|
|||||||
{
|
{
|
||||||
return QStandardItem::UserType;
|
return QStandardItem::UserType;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QVariant
|
||||||
|
PackageTreeItem::toOperation() const
|
||||||
|
{
|
||||||
|
// If it's a package with a pre- or post-script, replace
|
||||||
|
// with the more complicated datastructure.
|
||||||
|
if ( !m_preScript.isEmpty() || !m_postScript.isEmpty() )
|
||||||
|
{
|
||||||
|
QMap< QString, QVariant > sdetails;
|
||||||
|
sdetails.insert( "pre-script", m_preScript );
|
||||||
|
sdetails.insert( "package", m_packageName );
|
||||||
|
sdetails.insert( "post-script", m_postScript );
|
||||||
|
return sdetails;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return m_packageName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -27,29 +27,12 @@
|
|||||||
class PackageTreeItem : public QStandardItem
|
class PackageTreeItem : public QStandardItem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
struct ItemData
|
using PackageList = QList< PackageTreeItem* >;
|
||||||
{
|
|
||||||
QString name;
|
|
||||||
QString description;
|
|
||||||
QString preScript;
|
|
||||||
QString packageName;
|
|
||||||
QString postScript;
|
|
||||||
bool isCritical = false;
|
|
||||||
bool isHidden = false;
|
|
||||||
bool startExpanded = false; // Only for groups
|
|
||||||
Qt::CheckState selected = Qt::Unchecked;
|
|
||||||
|
|
||||||
/** @brief Turns this item into a variant for PackageOperations use
|
///@brief A package (individual package)
|
||||||
*
|
explicit PackageTreeItem( const QString& packageName, PackageTreeItem* parent = nullptr );
|
||||||
* For "plain" items, this is just the package name; items with
|
///@brief A root item, always selected, named "<root>"
|
||||||
* scripts return a map. See the package module for how it's interpreted.
|
explicit PackageTreeItem();
|
||||||
*/
|
|
||||||
QVariant toOperation() const;
|
|
||||||
};
|
|
||||||
explicit PackageTreeItem( const ItemData& data, PackageTreeItem* parent = nullptr );
|
|
||||||
explicit PackageTreeItem( const QString packageName, PackageTreeItem* parent = nullptr );
|
|
||||||
explicit PackageTreeItem( PackageTreeItem* parent );
|
|
||||||
explicit PackageTreeItem(); // The root of the tree; always selected, named <root>
|
|
||||||
~PackageTreeItem() override;
|
~PackageTreeItem() override;
|
||||||
|
|
||||||
void appendChild( PackageTreeItem* child );
|
void appendChild( PackageTreeItem* child );
|
||||||
@ -61,18 +44,19 @@ public:
|
|||||||
PackageTreeItem* parentItem();
|
PackageTreeItem* parentItem();
|
||||||
const PackageTreeItem* parentItem() const;
|
const PackageTreeItem* parentItem() const;
|
||||||
|
|
||||||
QString prettyName() const;
|
QString name() const { return m_name; }
|
||||||
QString description() const;
|
QString packageName() const { return m_packageName; }
|
||||||
QString preScript() const;
|
|
||||||
QString packageName() const;
|
QString description() const { return m_description; }
|
||||||
QString postScript() const;
|
QString preScript() const { return m_preScript; }
|
||||||
|
QString postScript() const { return m_postScript; }
|
||||||
|
|
||||||
/** @brief Is this item hidden?
|
/** @brief Is this item hidden?
|
||||||
*
|
*
|
||||||
* Hidden items (generally only groups) are maintained separately,
|
* Hidden items (generally only groups) are maintained separately,
|
||||||
* not shown to the user, but do enter into the package-installation process.
|
* not shown to the user, but do enter into the package-installation process.
|
||||||
*/
|
*/
|
||||||
bool isHidden() const;
|
bool isHidden() const { return m_isHidden; }
|
||||||
|
|
||||||
/** @brief Is this hidden item, considered "selected"?
|
/** @brief Is this hidden item, considered "selected"?
|
||||||
*
|
*
|
||||||
@ -87,7 +71,7 @@ public:
|
|||||||
* A critical group must be successfully installed, for the Calamares
|
* A critical group must be successfully installed, for the Calamares
|
||||||
* installation to continue.
|
* installation to continue.
|
||||||
*/
|
*/
|
||||||
bool isCritical() const;
|
bool isCritical() const { return m_isCritical; }
|
||||||
|
|
||||||
/** @brief Is this group expanded on start?
|
/** @brief Is this group expanded on start?
|
||||||
*
|
*
|
||||||
@ -95,17 +79,38 @@ public:
|
|||||||
* that expands on start is shown expanded (not collapsed)
|
* that expands on start is shown expanded (not collapsed)
|
||||||
* in the treeview when the page is loaded.
|
* in the treeview when the page is loaded.
|
||||||
*/
|
*/
|
||||||
bool expandOnStart() const { return m_data.startExpanded; }
|
bool expandOnStart() const { return m_startExpanded; }
|
||||||
|
|
||||||
|
/** @brief Turns this item into a variant for PackageOperations use
|
||||||
|
*
|
||||||
|
* For "plain" items, this is just the package name; items with
|
||||||
|
* scripts return a map. See the package module for how it's interpreted.
|
||||||
|
*/
|
||||||
|
QVariant toOperation() const;
|
||||||
|
|
||||||
Qt::CheckState isSelected() const;
|
Qt::CheckState isSelected() const;
|
||||||
void setSelected( Qt::CheckState isSelected );
|
void setSelected( Qt::CheckState isSelected );
|
||||||
void setChildrenSelected( Qt::CheckState isSelected );
|
void setChildrenSelected( Qt::CheckState isSelected );
|
||||||
|
|
||||||
|
// QStandardItem methods
|
||||||
int type() const override;
|
int type() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
PackageTreeItem* m_parentItem;
|
PackageTreeItem* m_parentItem;
|
||||||
QList< PackageTreeItem* > m_childItems;
|
PackageList m_childItems;
|
||||||
ItemData m_data;
|
|
||||||
|
// An entry can be a packkage, or a group.
|
||||||
|
QString m_name;
|
||||||
|
QString m_packageName;
|
||||||
|
Qt::CheckState m_selected = Qt::Unchecked;
|
||||||
|
|
||||||
|
// These are only useful for groups
|
||||||
|
QString m_description;
|
||||||
|
QString m_preScript;
|
||||||
|
QString m_postScript;
|
||||||
|
bool m_isCritical = false;
|
||||||
|
bool m_isHidden = false;
|
||||||
|
bool m_startExpanded = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // PACKAGETREEITEM_H
|
#endif // PACKAGETREEITEM_H
|
||||||
|
Loading…
Reference in New Issue
Block a user