Add ViewStepItem ctor overload that takes a callback.

Needed when a ViewStep doesn't exist yet when the VSI is created.
main
Teo Mrnjavac 10 years ago
parent 171248ad4f
commit 9d5ab4bf98

@ -23,13 +23,24 @@
#include "viewpages/ViewStep.h"
ViewStepItem::ViewStepItem( const Calamares::ViewStep* step, ProgressTreeItem* parent )
ViewStepItem::ViewStepItem( const QString& prettyName,
std::function< const Calamares::ViewStep*() > accessor,
ProgressTreeItem* parent )
: ProgressTreeItem( parent )
, m_step( 0 )
, m_prettyName( prettyName )
{
m_step = step;
m_accessor = accessor;
}
ViewStepItem::ViewStepItem( const Calamares::ViewStep* step,
ProgressTreeItem* parent )
: ProgressTreeItem( parent )
{
m_step = step;
}
void
ViewStepItem::appendChild( ProgressTreeItem* item )
{
@ -43,8 +54,10 @@ ViewStepItem::data( int role ) const
if ( role == ProgressTreeModel::ProgressTreeItemRole )
return this;
if ( role == Qt::DisplayRole )
return m_step->prettyName();
return m_step ? m_step->prettyName() : m_prettyName;
if ( role == ProgressTreeModel::ProgressTreeItemCurrentRole )
return Calamares::ViewManager::instance()->currentStep() == m_step;
return m_step ?
( Calamares::ViewManager::instance()->currentStep() == m_step ) :
( Calamares::ViewManager::instance()->currentStep() == m_accessor() );
return QVariant();
}

@ -21,6 +21,8 @@
#include "ProgressTreeItem.h"
#include <functional>
namespace Calamares
{
class ViewStep;
@ -29,13 +31,20 @@ class ViewStep;
class ViewStepItem : public ProgressTreeItem
{
public:
explicit ViewStepItem( const Calamares::ViewStep* step, ProgressTreeItem* parent = nullptr );
explicit ViewStepItem( const QString& prettyName,
std::function< const Calamares::ViewStep*() > accessor,
ProgressTreeItem* parent = nullptr );
explicit ViewStepItem( const Calamares::ViewStep* step,
ProgressTreeItem* parent = nullptr );
void appendChild( ProgressTreeItem* item ) override;
QVariant data( int role ) const override;
private:
std::function< const Calamares::ViewStep*() > m_accessor;
QString m_prettyName;
const Calamares::ViewStep* m_step;
};

Loading…
Cancel
Save