private:
ViewProperties* m_viewProps;
- KFileItemList m_lstItems;
int m_currentItem;
int m_progress;
KUrl m_dir;
const QAbstractProxyModel* proxyModel = static_cast<const QAbstractProxyModel*>(m_view->model());
const KDirModel* dirModel = static_cast<const KDirModel*>(proxyModel->sourceModel());
const QModelIndex dirIndex = proxyModel->mapToSource(index);
- KFileItem* item = dirModel->itemForIndex(dirIndex);
- if (item != 0) {
+ KFileItem item = dirModel->itemForIndex(dirIndex);
+ if (!item.isNull()) {
QItemSelectionModel* selModel = selectionModel();
bool activate = true;
}
selModel->select(index, QItemSelectionModel::Toggle);
swallowMousePressEvent = true;
- } else if (item->isDir()) {
- m_childUrl = item->url();
+ } else if (item.isDir()) {
+ m_childUrl = item.url();
viewport()->update();
// Only request the activation if not the left button is pressed.
const KDirModel* dirModel = static_cast<const KDirModel*>(proxyModel->sourceModel());
const QModelIndex dirModelIndex = proxyModel->mapToSource(index);
- KFileItem* fileItem = dirModel->itemForIndex(dirModelIndex);
- if (fileItem != 0) {
- columnUrl = fileItem->url();
+ KFileItem fileItem = dirModel->itemForIndex(dirModelIndex);
+ if (!fileItem.isNull()) {
+ columnUrl = fileItem.url();
}
}
#include <Qt3Support/Q3ValueList>
DolphinContextMenu::DolphinContextMenu(DolphinMainWindow* parent,
- KFileItem* fileInfo,
+ const KFileItem& fileInfo,
const KUrl& baseUrl) :
m_mainWindow(parent),
m_fileInfo(fileInfo),
m_context |= TrashContext;
}
- if (m_fileInfo != 0) {
+ if (!m_fileInfo.isNull()) {
m_context |= ItemContext;
// TODO: handle other use cases like devices + desktop files
}
void DolphinContextMenu::openItemContextMenu()
{
- Q_ASSERT(m_fileInfo != 0);
+ Q_ASSERT(!m_fileInfo.isNull());
KMenu* popup = new KMenu(m_mainWindow);
insertDefaultItemActions(popup);
// insert 'Bookmark This Folder' entry if exactly one item is selected
QAction* bookmarkAction = 0;
- if (m_fileInfo->isDir() && (m_selectedUrls.count() == 1)) {
+ if (m_fileInfo.isDir() && (m_selectedUrls.count() == 1)) {
bookmarkAction = popup->addAction(KIcon("bookmark-folder"),
i18nc("@action:inmenu", "Bookmark Folder..."));
}
QAction* activatedAction = popup->exec(QCursor::pos());
if ((bookmarkAction != 0) && (activatedAction == bookmarkAction)) {
- const KUrl selectedUrl(m_fileInfo->url());
+ const KUrl selectedUrl(m_fileInfo.url());
if (selectedUrl.isValid()) {
DolphinSettings::instance().placesModel()->addPlace(selectedUrl.fileName(),
selectedUrl);
void DolphinContextMenu::openViewportContextMenu()
{
- Q_ASSERT(m_fileInfo == 0);
+ Q_ASSERT(!m_fileInfo.isNull());
KMenu* popup = new KMenu(m_mainWindow);
// setup 'Create New' menu
// attached which allows to select a custom application. If no applications are registered
// no sub menu is created at all, only "Open With..." will be offered.
bool insertOpenWithItems = true;
- const QString contextMimeType(m_fileInfo->mimetype());
+ const QString contextMimeType(m_fileInfo.mimetype());
- QListIterator<KFileItem*> mimeIt(m_selectedItems);
+ QListIterator<KFileItem> mimeIt(m_selectedItems);
while (insertOpenWithItems && mimeIt.hasNext()) {
- KFileItem* item = mimeIt.next();
- insertOpenWithItems = (contextMimeType == item->mimetype());
+ KFileItem item = mimeIt.next();
+ insertOpenWithItems = (contextMimeType == item.mimetype());
}
QList<QAction*> openWithActions;
if (insertOpenWithItems) {
// fill the 'Open with' sub menu with application types
- const KMimeType::Ptr mimePtr = KMimeType::findByUrl(m_fileInfo->url());
+ const KMimeType::Ptr mimePtr = KMimeType::findByUrl(m_fileInfo.url());
KService::List offers = KMimeTypeTrader::self()->query(mimePtr->name(),
"Application",
"Type == 'Application'");
if ((*it) == "all/allfiles") {
// The service type is valid for all files, but not for directories.
// Check whether the selected items only consist of files...
- QListIterator<KFileItem*> mimeIt(m_selectedItems);
+ QListIterator<KFileItem> mimeIt(m_selectedItems);
insert = true;
while (insert && mimeIt.hasNext()) {
- KFileItem* item = mimeIt.next();
- insert = !item->isDir();
+ KFileItem item = mimeIt.next();
+ insert = !item.isDir();
}
}
// Check whether the MIME types of all selected files match
// to the mimetype of the service action. As soon as one MIME
// type does not match, no service menu is shown at all.
- QListIterator<KFileItem*> mimeIt(m_selectedItems);
+ QListIterator<KFileItem> mimeIt(m_selectedItems);
insert = true;
while (insert && mimeIt.hasNext()) {
- KFileItem* item = mimeIt.next();
- const QString mimeType(item->mimetype());
+ KFileItem item = mimeIt.next();
+ const QString mimeType(item.mimetype());
const QString mimeGroup(mimeType.left(mimeType.indexOf('/')));
insert = (*it == mimeType) ||
* @viewType On which view type is the context menu shown.
*/
DolphinContextMenu(DolphinMainWindow* parent,
- KFileItem* fileInfo,
+ const KFileItem& fileInfo,
const KUrl& baseUrl);
virtual ~DolphinContextMenu();
};
DolphinMainWindow* m_mainWindow;
- KFileItem* m_fileInfo;
+ KFileItem m_fileInfo;
KUrl m_baseUrl;
- KFileItemList m_selectedItems;
+ QList<KFileItem> m_selectedItems;
KUrl::List m_selectedUrls;
int m_context;
};
}
const KDirModel *dirModel = qobject_cast<const KDirModel*>(index.model());
- KFileItem *item = dirModel->itemForIndex(index);
+ KFileItem item = dirModel->itemForIndex(index);
switch (sortRole)
{
QVariant data = theIndex.model()->data(theIndex, Qt::DisplayRole);
if (data.toString().size())
{
- if (!item->isHidden() && data.toString().at(0).isLetter())
+ if (!item.isHidden() && data.toString().at(0).isLetter())
retString = data.toString().toUpper().at(0);
- else if (item->isHidden() && data.toString().at(0) == '.' &&
+ else if (item.isHidden() && data.toString().at(0) == '.' &&
data.toString().at(1).isLetter())
retString = data.toString().toUpper().at(1);
- else if (item->isHidden() && data.toString().at(0) == '.' &&
+ else if (item.isHidden() && data.toString().at(0) == '.' &&
!data.toString().at(1).isLetter())
retString = i18nc("@title:group Name", "Others");
- else if (item->isHidden() && data.toString().at(0) != '.')
+ else if (item.isHidden() && data.toString().at(0) != '.')
retString = data.toString().toUpper().at(0);
- else if (item->isHidden())
+ else if (item.isHidden())
retString = data.toString().toUpper().at(0);
else
{
case DolphinView::SortByDate:
{
- KDateTime modifiedTime = item->time(KFileItem::ModificationTime);
+ KDateTime modifiedTime = item.time(KFileItem::ModificationTime);
modifiedTime = modifiedTime.toLocalZone();
if (modifiedTime.daysTo(KDateTime::currentLocalDateTime()) == 0)
}
case DolphinView::SortByPermissions:
- retString = item->permissionsString();
+ retString = item.permissionsString();
break;
case DolphinView::SortByOwner:
- retString = item->user();
+ retString = item.user();
break;
case DolphinView::SortByGroup:
- retString = item->group();
+ retString = item.group();
break;
case DolphinView::SortBySize: {
- const int fileSize = item ? item->size() : -1;
- if (item && item->isDir()) {
+ const int fileSize = !item.isNull() ? item.size() : -1;
+ if (!item.isNull() && item.isDir()) {
retString = i18nc("@title:group Size", "Folders");
} else if (fileSize < 5242880) {
retString = i18nc("@title:group Size", "Small");
}
case DolphinView::SortByType:
- retString = item->mimeComment();
+ retString = item.mimeComment();
break;
#ifdef HAVE_NEPOMUK
{
QRect starRect = option.rect;
- int iconSize = KIconLoader::global()->currentSize(K3Icon::Small);
+ int iconSize = KIconLoader::global()->currentSize(K3Icon::Small);
const QString category = categoryForItem(index, sortRole);
QColor color = option.palette.color(QPalette::Text);
case DolphinView::SortByType: {
opt.rect.setTop(option.rect.top() + (option.rect.height() / 2) - (iconSize / 2));
const KDirModel *model = static_cast<const KDirModel*>(index.model());
- KFileItem *item = model->itemForIndex(index);
- icon = KIconLoader::global()->loadIcon(KMimeType::iconNameForUrl(item->url()),
+ KFileItem item = model->itemForIndex(index);
+ icon = KIconLoader::global()->loadIcon(KMimeType::iconNameForUrl(item.url()),
K3Icon::Small);
break;
}
}
}
-void DolphinMainWindow::changeSelection(const KFileItemList& selection)
+void DolphinMainWindow::changeSelection(const QList<KFileItem>& selection)
{
activeViewContainer()->view()->changeSelection(selection);
}
}
}
-void DolphinMainWindow::slotSelectionChanged(const KFileItemList& selection)
+void DolphinMainWindow::slotSelectionChanged(const QList<KFileItem>& selection)
{
updateEditActions();
void DolphinMainWindow::properties()
{
- const KFileItemList list = m_activeViewContainer->view()->selectedItems();
- KPropertiesDialog dialog(list, this);
+ QList<KFileItem> list = m_activeViewContainer->view()->selectedItems();
+ // ### KPropertiesDialog still uses pointer-based KFileItemList
+ KFileItemList lst;
+ // Can't be a const_iterator :(
+ for ( QList<KFileItem>::iterator it = list.begin(), end = list.end() ; it != end ; ++it ) {
+ lst << & *it; // ugly!
+ }
+ KPropertiesDialog dialog(lst, this);
dialog.exec();
}
addDockWidget(Qt::RightDockWidgetArea, infoDock);
connect(this, SIGNAL(urlChanged(KUrl)),
infoWidget, SLOT(setUrl(KUrl)));
- connect(this, SIGNAL(selectionChanged(KFileItemList)),
- infoWidget, SLOT(setSelection(KFileItemList)));
+ connect(this, SIGNAL(selectionChanged(QList<KFileItem>)),
+ infoWidget, SLOT(setSelection(QList<KFileItem>)));
connect(this, SIGNAL(requestItemInfo(KFileItem)),
infoWidget, SLOT(requestDelayedItemInfo(KFileItem)));
treeWidget, SLOT(setUrl(KUrl)));
connect(treeWidget, SIGNAL(changeUrl(KUrl)),
this, SLOT(changeUrl(KUrl)));
- connect(treeWidget, SIGNAL(changeSelection(KFileItemList)),
- this, SLOT(changeSelection(KFileItemList)));
+ connect(treeWidget, SIGNAL(changeSelection(QList<KFileItem>)),
+ this, SLOT(changeSelection(QList<KFileItem>)));
connect(treeWidget, SIGNAL(urlsDropped(KUrl::List, KUrl)),
this, SLOT(dropUrls(KUrl::List, KUrl)));
void DolphinMainWindow::updateEditActions()
{
- const KFileItemList list = m_activeViewContainer->view()->selectedItems();
+ const QList<KFileItem> list = m_activeViewContainer->view()->selectedItems();
if (list.isEmpty()) {
stateChanged("has_no_selection");
} else {
bool enableMoveToTrash = true;
- KFileItemList::const_iterator it = list.begin();
- const KFileItemList::const_iterator end = list.end();
+ QList<KFileItem>::const_iterator it = list.begin();
+ const QList<KFileItem>::const_iterator end = list.end();
while (it != end) {
- KFileItem* item = *it;
- const KUrl& url = item->url();
+ const KUrl& url = (*it).url();
// only enable the 'Move to Trash' action for local files
if (!url.isLocalFile()) {
enableMoveToTrash = false;
this, SLOT(slotSortOrderChanged(Qt::SortOrder)));
connect(view, SIGNAL(additionalInfoChanged(KFileItemDelegate::AdditionalInformation)),
this, SLOT(slotAdditionalInfoChanged(KFileItemDelegate::AdditionalInformation)));
- connect(view, SIGNAL(selectionChanged(KFileItemList)),
- this, SLOT(slotSelectionChanged(KFileItemList)));
+ connect(view, SIGNAL(selectionChanged(QList<KFileItem>)),
+ this, SLOT(slotSelectionChanged(QList<KFileItem>)));
connect(view, SIGNAL(requestItemInfo(KFileItem)),
this, SLOT(slotRequestItemInfo(KFileItem)));
connect(view, SIGNAL(activated()),
* Inform all affected dolphin components that a selection change is
* requested.
*/
- void changeSelection(const KFileItemList& selection);
+ void changeSelection(const QList<KFileItem>& selection);
/** Stores all settings and quits Dolphin. */
void quit();
* Is sent if the selection of the currently active view has
* been changed.
*/
- void selectionChanged(const KFileItemList& selection);
+ void selectionChanged(const QList<KFileItem>& selection);
/**
* Is sent if the url of the currently active view has
* Updates the state of the 'Edit' menu actions and emits
* the signal selectionChanged().
*/
- void slotSelectionChanged(const KFileItemList& selection);
+ void slotSelectionChanged(const QList<KFileItem>& selection);
/** Emits the signal requestItemInfo(). */
void slotRequestItemInfo(const KFileItem&);
connect(m_view, SIGNAL(errorMessage(QString)), this, SLOT(slotErrorMessage(QString)));
// TODO connect to urlsDropped
// TOOD connect to requestContextMenu
- connect(m_view, SIGNAL(selectionChanged(KFileItemList)), m_extension, SIGNAL(selectionInfo(KFileItemList)));
+ connect(m_view, SIGNAL(selectionChanged(QList<KFileItem>)), m_extension, SIGNAL(selectionInfo(QList<KFileItem>)));
connect(m_view, SIGNAL(requestItemInfo(KFileItem)), this, SLOT(slotRequestItemInfo(KFileItem)));
{
KDirModel* dirModel = static_cast<KDirModel*>(sourceModel());
- const KFileItem* leftFileItem = dirModel->itemForIndex(left);
- const KFileItem* rightFileItem = dirModel->itemForIndex(right);
+ const KFileItem leftFileItem = dirModel->itemForIndex(left);
+ const KFileItem rightFileItem = dirModel->itemForIndex(right);
//FIXME left.column() should be used instead!
switch (sortRole()) {
case DolphinView::SortByName: {
- QString leftFileName(leftFileItem->name());
+ QString leftFileName(leftFileItem.name());
if (leftFileName.at(0) == '.') {
leftFileName = leftFileName.mid(1);
}
- QString rightFileName(rightFileItem->name());
+ QString rightFileName(rightFileItem.name());
if (rightFileName.at(0) == '.') {
rightFileName = rightFileName.mid(1);
}
case DolphinView::SortBySize:
// If we are sorting by size, show folders first. We will sort them
// correctly later.
- return leftFileItem->isDir() && !rightFileItem->isDir();
+ return leftFileItem.isDir() && !rightFileItem.isDir();
case DolphinView::SortByDate: {
- KDateTime leftTime = leftFileItem->time(KFileItem::ModificationTime);
- KDateTime rightTime = rightFileItem->time(KFileItem::ModificationTime);
+ KDateTime leftTime = leftFileItem.time(KFileItem::ModificationTime);
+ KDateTime rightTime = rightFileItem.time(KFileItem::ModificationTime);
return leftTime > rightTime;
}
case DolphinView::SortByPermissions: {
- return naturalCompare(leftFileItem->permissionsString(),
- rightFileItem->permissionsString()) < 0;
+ return naturalCompare(leftFileItem.permissionsString(),
+ rightFileItem.permissionsString()) < 0;
}
case DolphinView::SortByOwner: {
- return naturalCompare(leftFileItem->user().toLower(),
- rightFileItem->user().toLower()) < 0;
+ return naturalCompare(leftFileItem.user().toLower(),
+ rightFileItem.user().toLower()) < 0;
}
case DolphinView::SortByGroup: {
- return naturalCompare(leftFileItem->group().toLower(),
- rightFileItem->group().toLower()) < 0;
+ return naturalCompare(leftFileItem.group().toLower(),
+ rightFileItem.group().toLower()) < 0;
}
case DolphinView::SortByType: {
// If we are sorting by size, show folders first. We will sort them
// correctly later.
- if (leftFileItem->isDir() && !rightFileItem->isDir()) {
+ if (leftFileItem.isDir() && !rightFileItem.isDir()) {
return true;
- } else if (!leftFileItem->isDir() && rightFileItem->isDir()) {
+ } else if (!leftFileItem.isDir() && rightFileItem.isDir()) {
return false;
}
- return naturalCompare(leftFileItem->mimeComment().toLower(),
- rightFileItem->mimeComment().toLower()) < 0;
+ return naturalCompare(leftFileItem.mimeComment().toLower(),
+ rightFileItem.mimeComment().toLower()) < 0;
}
#ifdef HAVE_NEPOMUK
case DolphinView::SortByRating: {
#ifdef HAVE_NEPOMUK
KDirModel* dirModel = static_cast<KDirModel*>(sourceModel());
- const KFileItem* leftFileItem = dirModel->itemForIndex(left);
- const KFileItem* rightFileItem = dirModel->itemForIndex(right);
+ const KFileItem leftFileItem = dirModel->itemForIndex(left);
+ const KFileItem rightFileItem = dirModel->itemForIndex(right);
// Hidden elements go before visible ones, if they both are
// folders or files.
- if (leftFileItem->isHidden() && !rightFileItem->isHidden()) {
+ if (leftFileItem.isHidden() && !rightFileItem.isHidden()) {
return true;
- } else if (!leftFileItem->isHidden() && rightFileItem->isHidden()) {
+ } else if (!leftFileItem.isHidden() && rightFileItem.isHidden()) {
return false;
}
// we know we are on the same category. On the check we do on the
// top of the method we don't know, so we remove that check when we
// are sorting by rating. (ereslibre)
- if (leftFileItem->isDir() && !rightFileItem->isDir()) {
+ if (leftFileItem.isDir() && !rightFileItem.isDir()) {
return true;
- } else if (!leftFileItem->isDir() && rightFileItem->isDir()) {
+ } else if (!leftFileItem.isDir() && rightFileItem.isDir()) {
return false;
}
return sortCaseSensitivity() ?
- (naturalCompare(leftFileItem->name(), rightFileItem->name()) < 0) :
- (naturalCompare(leftFileItem->name().toLower(), rightFileItem->name().toLower()) < 0);
+ (naturalCompare(leftFileItem.name(), rightFileItem.name()) < 0) :
+ (naturalCompare(leftFileItem.name().toLower(), rightFileItem.name().toLower()) < 0);
}
return leftRating > rightRating;
// we know we are on the same category. On the check we do on the
// top of the method we don't know, so we remove that check when we
// are sorting by tags. (ereslibre)
- if (leftFileItem->isDir() && !rightFileItem->isDir()) {
+ if (leftFileItem.isDir() && !rightFileItem.isDir()) {
return true;
- } else if (!leftFileItem->isDir() && rightFileItem->isDir()) {
+ } else if (!leftFileItem.isDir() && rightFileItem.isDir()) {
return false;
}
return sortCaseSensitivity() ?
- (naturalCompare(leftFileItem->name(), rightFileItem->name()) < 0) :
- (naturalCompare(leftFileItem->name().toLower(), rightFileItem->name().toLower()) < 0);
+ (naturalCompare(leftFileItem.name(), rightFileItem.name()) < 0) :
+ (naturalCompare(leftFileItem.name().toLower(), rightFileItem.name().toLower()) < 0);
}
return naturalCompare(leftTags, rightTags) < 0;
quint32 rating = 0;
const KDirModel* dirModel = static_cast<const KDirModel*>(index.model());
- KFileItem* item = dirModel->itemForIndex(index);
- if (item != 0) {
+ KFileItem item = dirModel->itemForIndex(index);
+ if (!item.isNull()) {
const Nepomuk::Resource resource(item->url().url(), Nepomuk::NFO::File());
rating = resource.rating();
}
QString tagsString;
const KDirModel* dirModel = static_cast<const KDirModel*>(index.model());
- KFileItem* item = dirModel->itemForIndex(index);
- if (item != 0) {
+ KFileItem item = dirModel->itemForIndex(index);
+ if (!item.isNull()) {
const Nepomuk::Resource resource(item->url().url(), Nepomuk::NFO::File());
const QList<Nepomuk::Tag> tags = resource.tags();
QStringList stringList;
itemView()->selectionModel()->clear();
}
-KFileItemList DolphinView::selectedItems() const
+QList<KFileItem> DolphinView::selectedItems() const
{
const QAbstractItemView* view = itemView();
Q_ASSERT((view != 0) && (view->selectionModel() != 0));
const QItemSelection selection = m_proxyModel->mapSelectionToSource(view->selectionModel()->selection());
- KFileItemList itemList;
+ QList<KFileItem> itemList;
const QModelIndexList indexList = selection.indexes();
QModelIndexList::const_iterator end = indexList.end();
for (QModelIndexList::const_iterator it = indexList.begin(); it != end; ++it) {
Q_ASSERT((*it).isValid());
- KFileItem* item = m_dirModel->itemForIndex(*it);
- if (item != 0) {
+ KFileItem item = m_dirModel->itemForIndex(*it);
+ if (!item.isNull()) {
itemList.append(item);
}
}
KUrl::List DolphinView::selectedUrls() const
{
KUrl::List urls;
-
- const KFileItemList list = selectedItems();
- KFileItemList::const_iterator it = list.begin();
- const KFileItemList::const_iterator end = list.end();
- while (it != end) {
- KFileItem* item = *it;
- urls.append(item->url());
- ++it;
+ const QList<KFileItem> list = selectedItems();
+ for ( QList<KFileItem>::const_iterator it = list.begin(), end = list.end();
+ it != end; ++it ) {
+ urls.append((*it).url());
}
-
return urls;
}
-KFileItem* DolphinView::fileItem(const QModelIndex index) const
+KFileItem DolphinView::fileItem(const QModelIndex& index) const
{
const QModelIndex dirModelIndex = m_proxyModel->mapToSource(index);
return m_dirModel->itemForIndex(dirModelIndex);
return;
}
- KFileItem* item = m_dirModel->itemForIndex(m_proxyModel->mapToSource(index));
- if (item == 0) {
+ KFileItem item = m_dirModel->itemForIndex(m_proxyModel->mapToSource(index));
+ if (item.isNull()) {
return;
}
// Prefer the local path over the URL.
bool isLocal;
- KUrl url = item->mostLocalUrl(isLocal);
+ KUrl url = item.mostLocalUrl(isLocal);
- if (item->isDir()) {
+ if (item.isDir()) {
setUrl(url);
- } else if (item->isFile()) {
+ } else if (item.isFile()) {
// allow to browse through ZIP and tar files
- KMimeType::Ptr mime = item->mimeTypePtr();
+ KMimeType::Ptr mime = item.mimeTypePtr();
if (mime->is("application/zip")) {
url.setProtocol("zip");
setUrl(url);
url.setProtocol("tar");
setUrl(url);
} else {
- item->run();
+ item.run();
}
} else {
- item->run();
+ item.run();
}
}
-void DolphinView::generatePreviews(const KFileItemList& items)
+void DolphinView::generatePreviews(const QList<KFileItem>& items)
{
if (m_controller->showPreview()) {
-
- // Must turn QList<KFileItem *> to QList<KFileItem>...
- QList<KFileItem> itemsToPreview;
- foreach( KFileItem* it, items )
- itemsToPreview.append( *it );
-
- KIO::PreviewJob* job = KIO::filePreview(itemsToPreview, 128);
+ KIO::PreviewJob* job = KIO::filePreview(items, 128);
connect(job, SIGNAL(gotPreview(const KFileItem&, const QPixmap&)),
this, SLOT(showPreview(const KFileItem&, const QPixmap&)));
}
}
}
-void DolphinView::changeSelection(const KFileItemList& selection)
+void DolphinView::changeSelection(const QList<KFileItem>& selection)
{
clearSelection();
if (selection.isEmpty()) {
const KUrl& baseUrl = url();
KUrl url;
QItemSelection new_selection;
- foreach(KFileItem* item, selection) {
- url = item->url().upUrl();
+ foreach(const KFileItem& item, selection) {
+ url = item.url().upUrl();
if (baseUrl.equals(url, KUrl::CompareWithoutTrailingSlash)) {
- QModelIndex index = m_proxyModel->mapFromSource(m_dirModel->indexForItem(*item));
+ QModelIndex index = m_proxyModel->mapFromSource(m_dirModel->indexForItem(item));
new_selection.select(index, index);
}
}
void DolphinView::openContextMenu(const QPoint& pos)
{
- KFileItem* item = 0;
+ KFileItem item;
const QModelIndex index = itemView()->indexAt(pos);
if (isValidNameIndex(index)) {
const QModelIndex& index,
QWidget* source)
{
- KFileItem* directory = 0;
+ KFileItem directory;
if (isValidNameIndex(index)) {
- KFileItem* item = fileItem(index);
- Q_ASSERT(item != 0);
- if (item->isDir()) {
+ KFileItem item = fileItem(index);
+ Q_ASSERT(!item.isNull());
+ if (item.isDir()) {
// the URLs are dropped above a directory
directory = item;
}
}
- if ((directory == 0) && (source == itemView())) {
+ if ((directory.isNull()) && (source == itemView())) {
// The dropping is done into the same viewport where
// the dragging has been started. Just ignore this...
return;
}
- const KUrl& destination = (directory == 0) ?
- url() : directory->url();
+ const KUrl& destination = (directory.isNull()) ?
+ url() : directory.url();
dropUrls(urls, destination);
}
return;
}
- const KFileItem* item = fileItem(index);
- if (item != 0) {
- emit requestItemInfo(*item);
+ const KFileItem item = fileItem(index);
+ if (!item.isNull()) {
+ emit requestItemInfo(item);
}
}
KFileItem* item = *it;
if (isCutItem(*item)) {
const QModelIndex index = m_dirModel->indexForItem(*item);
- const KFileItem* item = m_dirModel->itemForIndex(index);
+ // Huh? the item is already known
+ //const KFileItem item = m_dirModel->itemForIndex(index);
const QVariant value = m_dirModel->data(index, Qt::DecorationRole);
- if ((value.type() == QVariant::Icon) && (item != 0)) {
+ if (value.type() == QVariant::Icon) {
const QIcon icon(qvariant_cast<QIcon>(value));
QPixmap pixmap = icon.pixmap(128, 128);
* selected.
* @see DolphinView::selectedUrls()
*/
- KFileItemList selectedItems() const;
+ QList<KFileItem> selectedItems() const;
/**
* Returns a list of URLs for all selected items. An empty list
/**
* Returns the file item for the given model index \a index.
*/
- KFileItem* fileItem(const QModelIndex index) const;
+ KFileItem fileItem(const QModelIndex& index) const;
/**
* Sets the upper left position of the view content
* will actually get selected. The view will e.g. not select items which
* are not in the currently displayed folder.
*/
- void changeSelection(const KFileItemList& selection);
+ void changeSelection(const QList<KFileItem>& selection);
signals:
/**
/**
* Is emitted whenever the selection has been changed.
*/
- void selectionChanged(const KFileItemList& selection);
+ void selectionChanged(const QList<KFileItem>& selection);
/**
* Is emitted if a context menu is requested for the item \a item,
* which is part of \a url. If the item is 0, the context menu
* for the URL should be shown.
*/
- void requestContextMenu(KFileItem* item, const KUrl& url);
+ void requestContextMenu(const KFileItem& item, const KUrl& url);
/**
* Is emitted if the URLs \a are dropped to the destination URL
* The current preview settings (maximum size, 'Show Preview' menu)
* are respected.
*/
- void generatePreviews(const KFileItemList& items);
+ void generatePreviews(const QList<KFileItem>& items);
/**
* Replaces the icon of the item \a item by the preview pixmap
m_proxyModel);
connect(m_view, SIGNAL(urlChanged(const KUrl&)),
m_urlNavigator, SLOT(setUrl(const KUrl&)));
- connect(m_view, SIGNAL(requestContextMenu(KFileItem*, const KUrl&)),
- this, SLOT(openContextMenu(KFileItem*, const KUrl&)));
+ connect(m_view, SIGNAL(requestContextMenu(KFileItem, const KUrl&)),
+ this, SLOT(openContextMenu(KFileItem, const KUrl&)));
connect(m_view, SIGNAL(urlsDropped(const KUrl::List&, const KUrl&)),
m_mainWindow, SLOT(dropUrls(const KUrl::List&, const KUrl&)));
connect(m_view, SIGNAL(contentsMoved(int, int)),
return m_urlNavigator->isUrlEditable();
}
-KFileItem* DolphinViewContainer::fileItem(const QModelIndex index) const
+KFileItem DolphinViewContainer::fileItem(const QModelIndex& index) const
{
const QModelIndex dirModelIndex = m_proxyModel->mapToSource(index);
return m_dirModel->itemForIndex(dirModelIndex);
QString DolphinViewContainer::selectionStatusBarText() const
{
QString text;
- const KFileItemList list = m_view->selectedItems();
+ const QList<KFileItem> list = m_view->selectedItems();
if (list.isEmpty()) {
// when an item is triggered, it is temporary selected but selectedItems()
// will return an empty list
int fileCount = 0;
int folderCount = 0;
KIO::filesize_t byteSize = 0;
- KFileItemList::const_iterator it = list.begin();
- const KFileItemList::const_iterator end = list.end();
+ QList<KFileItem>::const_iterator it = list.begin();
+ const QList<KFileItem>::const_iterator end = list.end();
while (it != end) {
- KFileItem* item = *it;
- if (item->isDir()) {
+ const KFileItem& item = *it;
+ if (item.isDir()) {
++folderCount;
} else {
++fileCount;
- byteSize += item->size();
+ byteSize += item.size();
}
++it;
}
#endif
}
-void DolphinViewContainer::openContextMenu(KFileItem* item,
+void DolphinViewContainer::openContextMenu(const KFileItem& item,
const KUrl& url)
{
DolphinContextMenu contextMenu(m_mainWindow, item, url);
*/
void renameSelectedItems();
- KFileItem* fileItem(const QModelIndex index) const;
+ KFileItem fileItem(const QModelIndex& index) const;
inline const DolphinStatusBar* statusBar() const;
inline DolphinStatusBar* statusBar();
* should be applied to \a url.
* @url URL which contains \a item.
*/
- void openContextMenu(KFileItem* item, const KUrl& url);
+ void openContextMenu(const KFileItem& item, const KUrl& url);
/**
* Saves the position of the contents to the
}
}
-void InfoSidebarPage::setSelection(const KFileItemList& selection)
+void InfoSidebarPage::setSelection(const QList<KFileItem>& selection)
{
SidebarPage::setSelection(selection);
m_timer->start(TimerDelay);
cancelRequest();
- const KFileItemList& selectedItems = selection();
+ const QList<KFileItem>& selectedItems = selection();
KUrl file;
if (selectedItems.isEmpty()) {
file = m_shownUrl;
} else {
- file = selectedItems[0]->url();
+ file = selectedItems[0].url();
}
if (!file.isValid()) {
return;
{
QString text;
- const KFileItemList& selectedItems = selection();
+ const QList<KFileItem>& selectedItems = selection();
if (selectedItems.size() <= 1) {
KFileItem fileItem(S_IFDIR, KFileItem::Unknown, m_shownUrl);
fileItem.refresh();
}
} else {
if (MetaDataWidget::metaDataAvailable()) {
- m_metadataWidget->setFiles(selectedItems.urlList());
+ KUrl::List urls;
+ foreach (const KFileItem& item, selectedItems) {
+ urls.append(item.url());
+ }
+ m_metadataWidget->setFiles(urls);
}
unsigned long int totalSize = 0;
- foreach (KFileItem* item, selectedItems) {
+ foreach (const KFileItem& item, selectedItems) {
// TODO: what to do with directories (same with the one-item-selected-code)?,
- // item->size() does not return the size of the content : not very instinctive for users
- totalSize += item->size();
+ // item.size() does not return the size of the content : not very instinctive for users
+ totalSize += item.size();
}
addInfoLine(text, i18nc("@label", "Total size:"), KIO::convertSize(totalSize));
}
virtual void setUrl(const KUrl& url);
/** @see SidebarPage::setSelection() */
- virtual void setSelection(const KFileItemList& selection);
+ virtual void setSelection(const QList<KFileItem>& selection);
/**
* Does a delayed request of information for the item \a item.
SidebarPage::SidebarPage(QWidget* parent) :
QWidget(parent),
m_url(KUrl()),
- m_currentSelection(KFileItemList())
+ m_currentSelection()
{
}
return m_url;
}
-const KFileItemList& SidebarPage::selection() const
+const QList<KFileItem>& SidebarPage::selection() const
{
return m_currentSelection;
}
m_url = url;
}
-void SidebarPage::setSelection(const KFileItemList& selection)
+void SidebarPage::setSelection(const QList<KFileItem>& selection)
{
m_currentSelection = selection;
}
const KUrl& url() const;
/** Returns the current selected items of the active Dolphin view. */
- const KFileItemList& selection() const;
+ const QList<KFileItem>& selection() const;
public slots:
/**
* This is invoked to inform the sidebar that the user has selected a new
* set of items.
*/
- virtual void setSelection(const KFileItemList& selection);
+ virtual void setSelection(const QList<KFileItem>& selection);
signals:
/**
* e.g. the current folder. The new selection will be reported via the
* setSelection slot.
*/
- void changeSelection(const KFileItemList& selection);
+ void changeSelection(const QList<KFileItem>& selection);
/**
* This signal is emitted whenever a drop action on this widget needs the
private:
KUrl m_url;
- KFileItemList m_currentSelection;
+ QList<KFileItem> m_currentSelection;
};
#endif // _SIDEBARPAGE_H_
#include <QtGui/QClipboard>
TreeViewContextMenu::TreeViewContextMenu(QWidget* parent,
- KFileItem* fileInfo) :
+ const KFileItem& fileInfo) :
m_parent(parent),
m_fileInfo(fileInfo)
{
void TreeViewContextMenu::open()
{
- Q_ASSERT(m_fileInfo != 0);
+ Q_ASSERT(!m_fileInfo.isNull());
KMenu* popup = new KMenu(m_parent);
const KSharedConfig::Ptr globalConfig = KSharedConfig::openConfig("kdeglobals", KConfig::NoGlobals);
const KConfigGroup kdeConfig(globalConfig, "KDE");
bool showDeleteCommand = kdeConfig.readEntry("ShowDeleteCommand", false);
- const KUrl& url = m_fileInfo->url();
+ const KUrl& url = m_fileInfo.url();
if (url.isLocalFile()) {
QAction* moveToTrashAction = new QAction(KIcon("edit-trash"),
i18nc("@action:inmenu", "Move To Trash"), this);
{
QMimeData* mimeData = new QMimeData();
KUrl::List kdeUrls;
- kdeUrls.append(m_fileInfo->url());
+ kdeUrls.append(m_fileInfo.url());
KonqMimeData::populateMimeData(mimeData, kdeUrls, KUrl::List(), true);
QApplication::clipboard()->setMimeData(mimeData);
}
{
QMimeData* mimeData = new QMimeData();
KUrl::List kdeUrls;
- kdeUrls.append(m_fileInfo->url());
+ kdeUrls.append(m_fileInfo.url());
KonqMimeData::populateMimeData(mimeData, kdeUrls, KUrl::List(), false);
QApplication::clipboard()->setMimeData(mimeData);
}
const QMimeData* mimeData = clipboard->mimeData();
const KUrl::List source = KUrl::List::fromMimeData(mimeData);
- const KUrl& dest = m_fileInfo->url();
+ const KUrl& dest = m_fileInfo.url();
if (KonqMimeData::decodeIsCutSelection(mimeData)) {
KonqOperations::copy(m_parent, KonqOperations::MOVE, source, dest);
clipboard->clear();
void TreeViewContextMenu::rename()
{
- const KUrl& oldUrl = m_fileInfo->url();
+ const KUrl& oldUrl = m_fileInfo.url();
RenameDialog dialog(oldUrl);
if (dialog.exec() == QDialog::Accepted) {
const QString& newName = dialog.newName();
void TreeViewContextMenu::moveToTrash()
{
- KonqOperations::del(m_parent, KonqOperations::TRASH, m_fileInfo->url());
+ KonqOperations::del(m_parent, KonqOperations::TRASH, m_fileInfo.url());
}
void TreeViewContextMenu::deleteItem()
{
- KonqOperations::del(m_parent, KonqOperations::DEL, m_fileInfo->url());
+ KonqOperations::del(m_parent, KonqOperations::DEL, m_fileInfo.url());
}
void TreeViewContextMenu::showProperties()
{
- KPropertiesDialog dialog(m_fileInfo->url());
+ KPropertiesDialog dialog(m_fileInfo.url());
dialog.exec();
}
#define TREEVIEWCONTEXTMENU_H
#include <QtCore/QObject>
-
-class KFileItem;
+#include <KFileItem>
/**
* @brief Represents the context menu which appears when doing a right
* is above the viewport.
*/
TreeViewContextMenu(QWidget* parent,
- KFileItem* fileInfo);
+ const KFileItem& fileInfo);
virtual ~TreeViewContextMenu();
private:
QWidget* m_parent;
- KFileItem* m_fileInfo;
+ KFileItem m_fileInfo;
};
#endif
}
const QModelIndex dirModelIndex = m_proxyModel->mapToSource(index);
- KFileItem* item = m_dirModel->itemForIndex(dirModelIndex);
+ KFileItem item = m_dirModel->itemForIndex(dirModelIndex);
- emit changeSelection(KFileItemList());
+ emit changeSelection(QList<KFileItem>());
TreeViewContextMenu contextMenu(this, item);
contextMenu.open();
}
void TreeViewSidebarPage::updateActiveView(const QModelIndex& index)
{
const QModelIndex dirIndex = m_proxyModel->mapToSource(index);
- const KFileItem* item = m_dirModel->itemForIndex(dirIndex);
- if (item != 0) {
- const KUrl& url = item->url();
- emit changeUrl(url);
+ const KFileItem item = m_dirModel->itemForIndex(dirIndex);
+ if (!item.isNull()) {
+ emit changeUrl(item.url());
}
}
{
if (index.isValid()) {
const QModelIndex dirIndex = m_proxyModel->mapToSource(index);
- KFileItem* item = m_dirModel->itemForIndex(dirIndex);
- Q_ASSERT(item != 0);
- if (item->isDir()) {
- emit urlsDropped(urls, item->url());
+ KFileItem item = m_dirModel->itemForIndex(dirIndex);
+ Q_ASSERT(!item.isNull());
+ if (item.isDir()) {
+ emit urlsDropped(urls, item.url());
}
}
}