本文整理汇总了C++中KFileItemList::count方法的典型用法代码示例。如果您正苦于以下问题:C++ KFileItemList::count方法的具体用法?C++ KFileItemList::count怎么用?C++ KFileItemList::count使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类KFileItemList
的用法示例。
在下文中一共展示了KFileItemList::count方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setSelection
void InformationPanel::setSelection(const KFileItemList& selection)
{
if (!isVisible()) {
return;
}
if (selection.isEmpty() && m_selection.isEmpty()) {
// The selection has not really changed, only the current index.
// QItemSelectionModel emits a signal in this case and it is less
// expensive doing the check this way instead of patching
// DolphinView::emitSelectionChanged().
return;
}
m_selection = selection;
m_fileItem = KFileItem();
const int count = selection.count();
if (count == 0) {
if (!isEqualToShownUrl(url())) {
m_shownUrl = url();
showItemInfo();
}
} else {
if ((count == 1) && !selection.first().url().isEmpty()) {
m_urlCandidate = selection.first().url();
}
m_infoTimer->start();
}
}
示例2: qDebug
void KDirModelV2Private::newItemsFromLister(const KFileItemList& items)
{
qDebug() << "newItemsFromLister delay:" << m_time.elapsed();
m_time.restart();
const int itemCount = items.count();
const int newItemListLength = m_itemList.count() + itemCount;
// We can already determine the number of items in this list. Reserve them manyally.
m_itemList.reserve(newItemListLength);
m_model->beginInsertRows(m_currentIndex, rowCount, itemCount);
QTime time;
time.start();
/*
#pragma omp parallel for schedule(dynamic, 100)
for(int i = 0; i < itemCount; i++) {
ItemData newData;
newData.item = new KFileItem(items.at(i));
// newData.collationSequence = new CNaturalString(newData.item->name().toAscii().constData());
newData.modelIndex = m_model->createIndex(i, 0);
#pragma omp critical
m_itemList.append(newData);
}
#pragma omp parallel for schedule(dynamic, 100)
for(int i = 0; i < itemCount; i++) {
ItemData * newData = &m_itemList[iBase + i];
newData->collationSequence = new CNaturalString(newData->item->name().toAscii().constData());
}
*/
for(int i = 0; i < itemCount; i++) {
ItemData newData;
newData.item = new KFileItem(items.at(i));
newData.collationSequence = new CNaturalString(newData.item->name().toAscii().constData());
newData.modelIndex = m_model->createIndex(i, 0);
m_itemList.append(newData);
}
qDebug() << "Time elapsed:" << time.elapsed() << "ms";
rowCount = m_itemList.count();
// std::sort(m_itemList.begin(), m_itemList.end(), lessThan);
// qSort(m_itemList.begin(), m_itemList.end(), lessThan);
m_model->endInsertRows();
emit m_model->layoutChanged();
// Move the current index to the last inserted item.
ItemData lastItem = m_itemList.last();
m_currentIndex = lastItem.modelIndex;
qDebug() << "KDirModelV2Private::newItemsFromLister rowCount:" << rowCount;
}
示例3: slotRefreshItems
void KFileTreeBranch::slotRefreshItems( const KFileItemList& list )
{
KFileItemListIterator it( list );
kdDebug(250) << "Refreshing " << list.count() << " items !" << endl;
KFileItem *currItem;
KFileTreeViewItem *item = 0;
while ( (currItem = it.current()) != 0 )
{
item = findTVIByURL(currItem->url());
if (item) {
item->setPixmap(0, item->fileItem()->pixmap( TDEIcon::SizeSmall ));
item->setText( 0, item->fileItem()->text());
}
++it;
}
}
示例4: properties
void CFontFileListView::properties()
{
QList<QTreeWidgetItem *> items(selectedItems());
QTreeWidgetItem *item;
KFileItemList files;
foreach(item, items)
if(item->parent())
files.append(KFileItem(KUrl::fromPath(item->text(0)),
KMimeType::findByPath(item->text(0))->name(),
item->text(COL_LINK).isEmpty() ? S_IFREG : S_IFLNK));
if(files.count())
{
KPropertiesDialog dlg(files, this);
dlg.exec();
}
}
示例5: showItems
void InformationPanelContent::showItems(const KFileItemList& items)
{
m_pendingPreview = false;
KIconLoader iconLoader;
QPixmap icon = iconLoader.loadIcon("dialog-information",
KIconLoader::NoGroup,
KIconLoader::SizeEnormous);
m_preview->setPixmap(icon);
setNameLabelText(i18ncp("@label", "%1 item selected", "%1 items selected", items.count()));
if (m_metaDataWidget) {
m_metaDataWidget->setItems(items);
}
m_phononWidget->hide();
m_item = KFileItem();
}
示例6: foreach
QList<QAction*> VersionControlObserver::actions(const KFileItemList& items) const
{
QList<QAction*> actions;
bool hasNullItems = false;
foreach (const KFileItem& item, items) {
if (item.isNull()) {
kWarning() << "Requesting version-control-actions for empty items";
hasNullItems = true;
break;
}
}
if (!m_model || hasNullItems) {
return actions;
}
KVersionControlPlugin2* pluginV2 = qobject_cast<KVersionControlPlugin2*>(m_plugin);
if (pluginV2) {
// Use version 2 of the KVersionControlPlugin which allows providing actions
// also for non-versioned directories.
actions = pluginV2->actions(items);
} else if (isVersioned()) {
// Support deprecated interfaces from KVersionControlPlugin version 1.
// Context menu actions where only available for versioned directories.
QString directory;
if (items.count() == 1) {
const KFileItem rootItem = m_model->rootItem();
if (!rootItem.isNull() && items.first().url() == rootItem.url()) {
directory = rootItem.url().path(KUrl::AddTrailingSlash);
}
}
actions = directory.isEmpty() ? m_plugin->contextMenuActions(items)
: m_plugin->contextMenuActions(directory);
}
return actions;
}
示例7: showItems
void InformationPanelContent::showItems(const KFileItemList& items)
{
// If there is a preview job, kill it to prevent that we have jobs for
// multiple items running, and thus a race condition (bug 250787).
if (m_previewJob) {
m_previewJob->kill();
}
KIconLoader iconLoader;
QPixmap icon = iconLoader.loadIcon(QStringLiteral("dialog-information"),
KIconLoader::NoGroup,
KIconLoader::SizeEnormous);
m_preview->setPixmap(icon);
setNameLabelText(i18ncp("@label", "%1 item selected", "%1 items selected", items.count()));
if (m_metaDataWidget) {
m_metaDataWidget->setItems(items);
}
m_phononWidget->hide();
m_item = KFileItem();
}
示例8: addItems
void KFileTreeBranch::addItems( const KFileItemList& list )
{
KFileItemListIterator it( list );
kdDebug(250) << "Adding " << list.count() << " items !" << endl;
KFileItem *currItem;
KFileTreeViewItemList treeViewItList;
KFileTreeViewItem *parentItem = 0;
while ( (currItem = it.current()) != 0 )
{
parentItem = parentKFTVItem( currItem );
/* Only create a new KFileTreeViewItem if it does not yet exist */
KFileTreeViewItem *newKFTVI =
static_cast<KFileTreeViewItem *>(currItem->extraData( this ));
if( ! newKFTVI )
{
newKFTVI = createTreeViewItem( parentItem, currItem );
if (!newKFTVI)
{
// TODO: Don't fail if parentItem == 0
++it;
continue;
}
currItem->setExtraData( this, newKFTVI );
/* Cut off the file extension in case it is not a directory */
if( !m_showExtensions && !currItem->isDir() ) /* Need to cut the extension */
{
TQString name = currItem->text();
int mPoint = name.findRev( '.' );
if( mPoint > 0 )
name = name.left( mPoint );
newKFTVI->setText( 0, name );
}
}
/* Now try to find out if there are children for dirs in the treeview */
/* This stats a directory on the local file system and checks the */
/* hardlink entry in the stat-buf. This works only for local directories. */
if( dirOnlyMode() && !m_recurseChildren && currItem->isLocalFile( ) && currItem->isDir() )
{
KURL url = currItem->url();
TQString filename = url.directory( false, true ) + url.fileName();
/* do the stat trick of Carsten. The problem is, that the hardlink
* count only contains directory links. Thus, this method only seem
* to work in dir-only mode */
kdDebug(250) << "Doing stat on " << filename << endl;
KDE_struct_stat statBuf;
if( KDE_stat( TQFile::encodeName( filename ), &statBuf ) == 0 )
{
int hardLinks = statBuf.st_nlink; /* Count of dirs */
kdDebug(250) << "stat succeeded, hardlinks: " << hardLinks << endl;
// If the link count is > 2, the directory likely has subdirs. If it's < 2
// it's something weird like a mounted SMB share. In that case we don't know
// if there are subdirs, thus show it as expandable.
if( hardLinks != 2 )
{
newKFTVI->setExpandable(true);
}
else
{
newKFTVI->setExpandable(false);
}
if( hardLinks >= 2 ) // "Normal" directory with subdirs
{
kdDebug(250) << "Emitting for " << url.prettyURL() << endl;
emit( directoryChildCount( newKFTVI, hardLinks-2)); // parentItem, hardLinks-1 ));
}
}
else
{
kdDebug(250) << "stat of " << filename << " failed !" << endl;
}
}
++it;
treeViewItList.append( newKFTVI );
}
emit newTreeViewItems( this, treeViewItList );
}
示例9: init
void KonqPopupMenuPrivate::init(KonqPopupMenu::Flags kpf, KParts::BrowserExtension::PopupFlags flags)
{
m_itemFlags = flags;
q->setFont(KGlobalSettings::menuFont());
Q_ASSERT(m_popupItemProperties.items().count() >= 1);
bool bTrashIncluded = false;
const KFileItemList lstItems = m_popupItemProperties.items();
KFileItemList::const_iterator it = lstItems.constBegin();
const KFileItemList::const_iterator kend = lstItems.constEnd();
for ( ; it != kend; ++it )
{
const KUrl url = (*it).url();
if ( !bTrashIncluded && (
( url.protocol() == "trash" && url.path().length() <= 1 ) ) ) {
bTrashIncluded = true;
}
}
const bool isDirectory = m_popupItemProperties.isDirectory();
const bool sReading = m_popupItemProperties.supportsReading();
bool sDeleting = (m_itemFlags & KParts::BrowserExtension::NoDeletion) == 0
&& m_popupItemProperties.supportsDeleting();
const bool sWriting = m_popupItemProperties.supportsWriting();
const bool sMoving = sDeleting && m_popupItemProperties.supportsMoving();
const bool isLocal = m_popupItemProperties.isLocal();
KUrl url = m_sViewURL;
url.cleanPath();
bool isTrashLink = false;
bool isCurrentTrash = false;
bool currentDir = false;
bool isSymLink = false;
bool isSymLinkInSameDir = false; // true for "ln -s foo bar", false for links to foo/sub or /foo
//check if url is current directory
if ( lstItems.count() == 1 )
{
KFileItem firstPopupItem( lstItems.first() );
if (firstPopupItem.isLink()) {
isSymLink = true;
isSymLinkInSameDir = !firstPopupItem.linkDest().contains('/');
}
KUrl firstPopupURL( firstPopupItem.url() );
firstPopupURL.cleanPath();
//kDebug(1203) << "View path is " << url.url();
//kDebug(1203) << "First popup path is " << firstPopupURL.url();
currentDir = firstPopupURL.equals( url, KUrl::CompareWithoutTrailingSlash );
if ( firstPopupItem.isDesktopFile() ) {
KDesktopFile desktopFile( firstPopupItem.localPath() );
const KConfigGroup cfg = desktopFile.desktopGroup();
isTrashLink = ( cfg.readEntry("Type") == "Link" && cfg.readEntry("URL") == "trash:/" );
}
if (isTrashLink) {
sDeleting = false;
}
// isCurrentTrash: popup on trash:/ itself, or on the trash.desktop link
isCurrentTrash = (firstPopupURL.protocol() == "trash" && firstPopupURL.path().length() <= 1)
|| isTrashLink;
}
const bool isIntoTrash = (url.protocol() == "trash") && !isCurrentTrash; // trashed file, not trash:/ itself
const bool bIsLink = (m_itemFlags & KParts::BrowserExtension::IsLink);
//kDebug() << "isLocal=" << isLocal << " url=" << url << " isCurrentTrash=" << isCurrentTrash << " isIntoTrash=" << isIntoTrash << " bTrashIncluded=" << bTrashIncluded;
//////////////////////////////////////////////////////////////////////////
addGroup( "topactions" ); // used e.g. for ShowMenuBar. includes a separator at the end
KAction * act;
KAction *actNewWindow = 0;
#if 0 // TODO in the desktop code itself.
if (( flags & KParts::BrowserExtension::ShowProperties ) && isOnDesktop &&
!KAuthorized::authorizeKAction("editable_desktop_icons"))
{
flags &= ~KParts::BrowserExtension::ShowProperties; // remove flag
}
#endif
// Either 'newview' is in the actions we're given (probably in the tabhandling group)
// or we need to insert it ourselves (e.g. for the desktop).
// In the first case, actNewWindow must remain 0.
if ( ((kpf & KonqPopupMenu::ShowNewWindow) != 0) && sReading )
{
const QString openStr = i18n("&Open");
actNewWindow = new KAction(m_parentWidget /*for status tips*/);
m_ownActions.append(actNewWindow);
actNewWindow->setIcon( KIcon("window-new") );
actNewWindow->setText( openStr );
QObject::connect(actNewWindow, SIGNAL(triggered()), q, SLOT(slotPopupNewView()));
}
//.........这里部分代码省略.........
示例10: showContextMenu
void PopupView::showContextMenu(QWidget *widget, const QPoint &screenPos, const QList<QModelIndex> &indexes)
{
Q_UNUSED(widget)
// contextMenuRequest is only called from the icon view, which is created in init()
// which mean m_model should always be initialized
Q_ASSERT(m_model);
if (indexes.isEmpty()) {
return;
}
if (m_actionCollection.isEmpty()) {
createActions();
}
KFileItemList items;
bool hasRemoteFiles = false;
bool isTrashLink = false;
foreach (const QModelIndex &index, m_selectionModel->selectedIndexes()) {
KFileItem item = m_model->itemForIndex(index);
if (!item.isNull()) {
hasRemoteFiles |= item.localPath().isEmpty();
items.append(item);
}
}
// Check if we're showing the menu for the trash link
if (items.count() == 1 && items.at(0).isDesktopFile()) {
KDesktopFile file(items.at(0).localPath());
if (file.readType() == "Link" && file.readUrl() == "trash:/") {
isTrashLink = true;
}
}
QAction *pasteTo = m_actionCollection.action("pasteto");
if (pasteTo) {
if (QAction *paste = m_actionCollection.action("paste")) {
pasteTo->setEnabled(paste->isEnabled());
pasteTo->setText(paste->text());
}
}
QList<QAction*> editActions;
editActions.append(m_actionCollection.action("rename"));
KConfigGroup configGroup(KGlobal::config(), "KDE");
bool showDeleteCommand = configGroup.readEntry("ShowDeleteCommand", false);
// Don't add the "Move to Trash" action if we're showing the menu for the trash link
if (!isTrashLink) {
if (!hasRemoteFiles) {
editActions.append(m_actionCollection.action("trash"));
} else {
showDeleteCommand = true;
}
}
if (showDeleteCommand) {
editActions.append(m_actionCollection.action("del"));
}
KParts::BrowserExtension::ActionGroupMap actionGroups;
actionGroups.insert("editactions", editActions);
KParts::BrowserExtension::PopupFlags flags = KParts::BrowserExtension::ShowProperties;
flags |= KParts::BrowserExtension::ShowUrlOperations;
// m_newMenu can be NULL here but KonqPopupMenu does handle this.
KonqPopupMenu *contextMenu = new KonqPopupMenu(items, m_url, m_actionCollection, m_newMenu,
KonqPopupMenu::ShowNewWindow, flags,
QApplication::desktop(),
KBookmarkManager::userBookmarksManager(),
actionGroups);
connect(contextMenu->fileItemActions(), SIGNAL(openWithDialogAboutToBeShown()), this, SLOT(openWithDialogAboutToShow()));
m_showingMenu = true;
contextMenu->exec(screenPos);
delete contextMenu;
m_showingMenu = false;
if (pasteTo) {
pasteTo->setEnabled(false);
}
if (m_delayedClose) {
m_delayedClose = false;
closeThisAndParentPopup();
}
}