void QgsBrowserDockWidget::showContextMenu( QPoint pt ) { QModelIndex index = mProxyModel->mapToSource( mBrowserView->indexAt( pt ) ); QgsDataItem *item = mModel->dataItem( index ); if ( !item ) return; QMenu *menu = new QMenu( this ); if ( item->type() == QgsDataItem::Directory ) { QgsSettings settings; QStringList favDirs = settings.value( QStringLiteral( "browser/favourites" ) ).toStringList(); bool inFavDirs = item->parent() && item->parent()->type() == QgsDataItem::Favorites; if ( item->parent() && !inFavDirs ) { // only non-root directories can be added as favorites menu->addAction( tr( "Add as a Favorite" ), this, SLOT( addFavorite() ) ); } else if ( inFavDirs ) { // only favorites can be removed menu->addAction( tr( "Remove Favorite" ), this, SLOT( removeFavorite() ) ); } menu->addAction( tr( "Properties..." ), this, SLOT( showProperties() ) ); menu->addAction( tr( "Hide from Browser" ), this, SLOT( hideItem() ) ); QAction *action = menu->addAction( tr( "Fast Scan this Directory" ), this, SLOT( toggleFastScan() ) ); action->setCheckable( true ); action->setChecked( settings.value( QStringLiteral( "qgis/scanItemsFastScanUris" ), QStringList() ).toStringList().contains( item->path() ) ); } else if ( item->type() == QgsDataItem::Layer ) { menu->addAction( tr( "Add Selected Layer(s)" ), this, SLOT( addSelectedLayers() ) ); menu->addAction( tr( "Properties..." ), this, SLOT( showProperties() ) ); } else if ( item->type() == QgsDataItem::Favorites ) { menu->addAction( tr( "Add a Directory..." ), this, SLOT( addFavoriteDirectory() ) ); } QList<QAction *> actions = item->actions(); if ( !actions.isEmpty() ) { if ( !menu->actions().isEmpty() ) menu->addSeparator(); // add action to the menu menu->addActions( actions ); } if ( menu->actions().isEmpty() ) { delete menu; return; } menu->popup( mBrowserView->mapToGlobal( pt ) ); }
void CursorMgr::setCursor(uint index, const Common::Point point, const Common::String &itemName) { switch (index) { case kClickableFirstFrameCursor: case kPDAClickableFirstFrameCursor: startAnimation(index); hideItem(); break; case kHoldingItemCursor: _game->setCursor(index); _isPlayingAnimation = false; showItem(itemName, point); break; default: _game->setCursor(index); _isPlayingAnimation = false; hideItem(); break; } }
void MAbstractLayoutPolicy::removeAt(int index) { Q_D(MAbstractLayoutPolicy); if (isActive() && !d->removingFromLayout) //Do not hide the item if it's going to be removed from the layout totally hideItem(index); d->items.removeAt(index); //This is an overkill - not all policies require laying out all the items again when one is removed //(e.g. freestyle) updateGeometry(); invalidatePolicyAndLayout(); }
void PlacesItemModel::setHiddenItemsShown(bool show) { if (m_hiddenItemsShown == show) { return; } m_hiddenItemsShown = show; if (show) { // Move all items that are part of m_bookmarkedItems to the model. QList<PlacesItem*> itemsToInsert; QList<int> insertPos; int modelIndex = 0; for (int i = 0; i < m_bookmarkedItems.count(); ++i) { if (m_bookmarkedItems[i]) { itemsToInsert.append(m_bookmarkedItems[i]); m_bookmarkedItems[i] = 0; insertPos.append(modelIndex); } ++modelIndex; } // Inserting the items will automatically insert an item // to m_bookmarkedItems in PlacesItemModel::onItemsInserted(). // The items are temporary saved in itemsToInsert, so // m_bookmarkedItems can be shrinked now. m_bookmarkedItems.erase(m_bookmarkedItems.begin(), m_bookmarkedItems.begin() + itemsToInsert.count()); for (int i = 0; i < itemsToInsert.count(); ++i) { insertItem(insertPos[i], itemsToInsert[i]); } Q_ASSERT(m_bookmarkedItems.count() == count()); } else { // Move all items of the model, where the "isHidden" property is true, to // m_bookmarkedItems. Q_ASSERT(m_bookmarkedItems.count() == count()); for (int i = count() - 1; i >= 0; --i) { if (placesItem(i)->isHidden()) { hideItem(i); } } } #ifdef PLACESITEMMODEL_DEBUG qCDebug(DolphinDebug) << "Changed visibility of hidden items"; showModelState(); #endif }
/****************************************************************************** * Public Slots * *****************************************************************************/ void K3IconViewSearchLine::updateSearch( const QString &s ) { Q3IconView *iv = d->iconView; if( ! iv ) return; // disabled QString search = d->search = s.isNull() ? text() : s; QIconViewItemList *hi = &(d->hiddenItems); Q3IconViewItem *currentItem = iv->currentItem(); Q3IconViewItem *item = NULL; // Remove Non-Matching items, add them them to hidden list Q3IconViewItem *i = iv->firstItem(); while ( i != NULL ) { item = i; i = i->nextItem(); // Point to next, otherwise will loose it. if ( ! itemMatches( item, search ) ) { hideItem( item ); if ( item == currentItem ) currentItem = NULL; // It's not in iconView anymore. } } // Add Matching items, remove from hidden list QIconViewItemList::iterator it = hi->begin(); while ( it != hi->end() ) { item = *it; ++it; if ( itemMatches( item, search ) ) showItem( item ); } iv->sort(); if ( currentItem != NULL ) iv->ensureItemVisible( currentItem ); }