30 Q_ASSERT_X(action,
"nullcheck",
"QAction must not be null");
36 Q_ASSERT_X(item,
"nullcheck",
"Item must not be null");
39 contributions.append(item);
51 AddToGroup(groupName, item,
true);
56 QListIterator<IContributionItem::Pointer> e(contributions);
60 QString itemId = item->GetId();
61 if (itemId.compare(
id, Qt::CaseInsensitive) != 0)
76 return contributions.size();
81 if (overrides.IsNull())
92 overrides =
new _DefaultOverride;
102 QString itemId = item->GetId();
103 if (item->GetId().compare(
id, Qt::CaseInsensitive) == 0)
114 if (index > contributions.size())
116 QString msg = QString(
"inserting ") + item->GetId() +
" at " + QString::number(index);
117 throw std::invalid_argument(msg.toStdString());
121 contributions.insert(index, item);
131 throw ctkInvalidArgumentException(QString(
"can't find ID") + ID);
133 int ix = contributions.indexOf(ci);
139 contributions.insert(ix + 1, item);
150 throw ctkInvalidArgumentException(QString(
"can't find ID ") + ID);
152 int ix = contributions.indexOf(ci);
158 contributions.insert(ix, item);
185 return contributions.empty();
195 AddToGroup(groupName, item,
false);
210 if (contributions.removeAll(item))
220 QList<IContributionItem::Pointer> items =
GetItems();
221 contributions.clear();
233 if (identifier.isNull())
238 const int index =
IndexOf(identifier);
249 contributions.replace(index, replacementItem);
253 QMutableListIterator<IContributionItem::Pointer> i(contributions);
255 while (i.hasPrevious())
258 if ((item.
IsNotNull()) && (identifier == item->GetId()))
274 overrides = newOverrides;
278 : isDirty(true), dynamicItems(0)
290 int size = contributions.size();
293 BERRY_INFO <<
" Number of elements: " << size;
295 for (
int i = 0; i < size; i++)
297 if (contributions.at(i)->IsVisible())
302 BERRY_INFO <<
" Number of visible elements: " << sum;
308 return (dynamicItems > 0);
313 return contributions.indexOf(item);
318 item->SetParent(
this);
320 if (item->IsDynamic())
328 item->SetParent(
nullptr);
330 if (item->IsDynamic())
343 contributions.clear();
344 for (
int i = 0; i < items.size(); ++i)
348 contributions.append(items[i]);
356 QMutableListIterator<IContributionItem::Pointer> items(contributions);
357 for (
int i = 0; items.hasNext(); ++i)
360 if (o->IsGroupMarker())
362 QString
id = o->GetId();
363 if (
id.
compare(groupName, Qt::CaseInsensitive) == 0)
368 for (; items.hasNext(); ++i)
371 if (ci->IsGroupMarker())
379 contributions.insert(i, item);
386 throw ctkInvalidArgumentException(QString(
"Group not found: ") + groupName);
void RemoveAll() override
SmartPointer< IContributionManagerOverrides > GetOverrides() override
void SetDirty(bool dirty)
QList< SmartPointer< IContributionItem > > GetItems() const override
void ItemRemoved(const SmartPointer< IContributionItem > &item)
~ContributionManager() override
void InternalSetItems(const QList< SmartPointer< IContributionItem > > &items)
virtual QString ToString() const
void Add(QAction *action, const QString &id) override
berry::SmartPointer< Self > Pointer
void AppendToGroup(const QString &groupName, QAction *action, const QString &id) override
void MarkDirty() override
SmartPointer< IContributionItem > Find(const QString &id) const override
bool ReplaceItem(const QString &identifier, const SmartPointer< IContributionItem > &replacementItem)
bool compare(std::pair< double, int > i, std::pair< double, int > j)
bool IsDirty() const override
bool IsEmpty() const override
void InsertAfter(const QString &ID, const SmartPointer< IContributionItem > &item) override
bool HasDynamicItems() const
virtual bool AllowItem(IContributionItem *itemToAdd)
void ItemAdded(const SmartPointer< IContributionItem > &item)
void SetOverrides(const SmartPointer< IContributionManagerOverrides > &newOverrides)
int IndexOf(const QString &id)
void InsertBefore(const QString &ID, const SmartPointer< IContributionItem > &item) override
void Insert(int index, const SmartPointer< IContributionItem > &item)
SmartPointer< IContributionItem > Remove(const QString &ID) override
void PrependToGroup(const QString &groupName, const SmartPointer< IContributionItem > &item) override
ObjectType * GetPointer() const