mirror of
https://invent.kde.org/system/dolphin
synced 2024-07-04 17:30:55 +00:00
reanimated the context menu
svn path=/trunk/playground/utils/dolphin/; revision=609962
This commit is contained in:
parent
4f951f75e2
commit
c94276725b
|
@ -273,12 +273,11 @@ QList<QAction*> DolphinContextMenu::insertOpenWithItems(KMenu* popup,
|
|||
// are listed which are registered to open the item. As last entry "Other..." will be
|
||||
// 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.
|
||||
const KFileItemList* list = m_dolphinView->selectedItems();
|
||||
assert(list != 0);
|
||||
const KFileItemList list = m_dolphinView->selectedItems();
|
||||
|
||||
bool insertOpenWithItems = true;
|
||||
const QString contextMimeType(m_fileInfo->mimetype());
|
||||
QListIterator<KFileItem*> mimeIt(*list);
|
||||
QListIterator<KFileItem*> mimeIt(list);
|
||||
while (insertOpenWithItems && mimeIt.hasNext()) {
|
||||
KFileItem* item = mimeIt.next();
|
||||
insertOpenWithItems = (contextMimeType == item->mimetype());
|
||||
|
@ -359,10 +358,9 @@ QList<QAction*> DolphinContextMenu::insertActionItems(KMenu* popup,
|
|||
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...
|
||||
const KFileItemList* list = m_dolphinView->selectedItems();
|
||||
assert(list != 0);
|
||||
const KFileItemList list = m_dolphinView->selectedItems();
|
||||
|
||||
QListIterator<KFileItem*> mimeIt(*list);
|
||||
QListIterator<KFileItem*> mimeIt(list);
|
||||
insert = true;
|
||||
while (insert && mimeIt.hasNext()) {
|
||||
KFileItem* item = mimeIt.next();
|
||||
|
@ -374,10 +372,9 @@ QList<QAction*> DolphinContextMenu::insertActionItems(KMenu* popup,
|
|||
// 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.
|
||||
const KFileItemList* list = m_dolphinView->selectedItems();
|
||||
assert(list != 0);
|
||||
const KFileItemList list = m_dolphinView->selectedItems();
|
||||
|
||||
QListIterator<KFileItem*> mimeIt(*list);
|
||||
QListIterator<KFileItem*> mimeIt(list);
|
||||
insert = true;
|
||||
while (insert && mimeIt.hasNext()) {
|
||||
KFileItem* item = mimeIt.next();
|
||||
|
|
|
@ -21,6 +21,9 @@
|
|||
#include "dolphiniconsview.h"
|
||||
#include "dolphinview.h"
|
||||
|
||||
#include <kdirmodel.h>
|
||||
#include <kfileitem.h>
|
||||
|
||||
DolphinIconsView::DolphinIconsView(DolphinView* parent) :
|
||||
QListView(parent),
|
||||
m_parentView( parent )
|
||||
|
@ -32,9 +35,28 @@ DolphinIconsView::~DolphinIconsView()
|
|||
{
|
||||
}
|
||||
|
||||
void DolphinIconsView::mouseReleaseEvent(QMouseEvent *e)
|
||||
void DolphinIconsView::mousePressEvent(QMouseEvent* event)
|
||||
{
|
||||
QListView::mouseReleaseEvent(e);
|
||||
QListView::mousePressEvent(event);
|
||||
|
||||
if (event->button() != Qt::RightButton) {
|
||||
return;
|
||||
}
|
||||
|
||||
KFileItem* item = 0;
|
||||
|
||||
const QModelIndex index = indexAt(event->pos());
|
||||
if (index.isValid()) {
|
||||
KDirModel* dirModel = static_cast<KDirModel*>(model());
|
||||
item = dirModel->itemForIndex(index);
|
||||
}
|
||||
|
||||
m_parentView->openContextMenu(item, event->globalPos());
|
||||
}
|
||||
|
||||
void DolphinIconsView::mouseReleaseEvent(QMouseEvent* event)
|
||||
{
|
||||
QListView::mouseReleaseEvent(event);
|
||||
m_parentView->declareViewActive();
|
||||
}
|
||||
|
||||
|
|
|
@ -42,10 +42,11 @@ public:
|
|||
virtual ~DolphinIconsView();
|
||||
|
||||
protected:
|
||||
void mouseReleaseEvent(QMouseEvent* event);
|
||||
virtual void mousePressEvent(QMouseEvent* event);
|
||||
virtual void mouseReleaseEvent(QMouseEvent* event);
|
||||
|
||||
private:
|
||||
DolphinView *m_parentView;
|
||||
DolphinView* m_parentView;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
|
@ -589,20 +589,7 @@ void DolphinMainWindow::deleteItems()
|
|||
|
||||
void DolphinMainWindow::properties()
|
||||
{
|
||||
const KFileItemList* sourceList = m_activeView->selectedItems();
|
||||
if (sourceList == 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
KFileItemList list;
|
||||
KFileItemList::const_iterator it = sourceList->begin();
|
||||
const KFileItemList::const_iterator end = sourceList->end();
|
||||
KFileItem* item = 0;
|
||||
while (it != end) {
|
||||
list.append(item);
|
||||
++it;
|
||||
}
|
||||
|
||||
const KFileItemList list = m_activeView->selectedItems();
|
||||
new KPropertiesDialog(list, this);
|
||||
}
|
||||
|
||||
|
@ -1461,8 +1448,8 @@ void DolphinMainWindow::updateHistory()
|
|||
|
||||
void DolphinMainWindow::updateEditActions()
|
||||
{
|
||||
const KFileItemList* list = m_activeView->selectedItems();
|
||||
if ((list == 0) || (*list).isEmpty()) {
|
||||
const KFileItemList list = m_activeView->selectedItems();
|
||||
if (list.isEmpty()) {
|
||||
stateChanged("has_no_selection");
|
||||
}
|
||||
else {
|
||||
|
@ -1470,13 +1457,13 @@ void DolphinMainWindow::updateEditActions()
|
|||
|
||||
KAction* renameAction = actionCollection()->action("rename");
|
||||
if (renameAction != 0) {
|
||||
renameAction->setEnabled(list->count() >= 1);
|
||||
renameAction->setEnabled(list.count() >= 1);
|
||||
}
|
||||
|
||||
bool enableMoveToTrash = true;
|
||||
|
||||
KFileItemList::const_iterator it = list->begin();
|
||||
const KFileItemList::const_iterator end = list->end();
|
||||
KFileItemList::const_iterator it = list.begin();
|
||||
const KFileItemList::const_iterator end = list.end();
|
||||
while (it != end) {
|
||||
KFileItem* item = *it;
|
||||
const KUrl& url = item->url();
|
||||
|
|
|
@ -20,8 +20,9 @@
|
|||
|
||||
#include "dolphinview.h"
|
||||
|
||||
#include <kdirmodel.h>
|
||||
#include <QItemSelectionModel>
|
||||
|
||||
#include <kdirmodel.h>
|
||||
|
||||
#include <qlayout.h>
|
||||
//Added by qt3to4:
|
||||
|
@ -480,29 +481,42 @@ const Q3ValueList<UrlNavigator::HistoryElem> DolphinView::urlHistory(int& index)
|
|||
|
||||
bool DolphinView::hasSelection() const
|
||||
{
|
||||
const KFileItemList* list = selectedItems();
|
||||
return (list != 0) && !list->isEmpty();
|
||||
return m_iconsView->selectionModel()->hasSelection();
|
||||
}
|
||||
|
||||
const KFileItemList* DolphinView::selectedItems() const
|
||||
KFileItemList DolphinView::selectedItems() const
|
||||
{
|
||||
return 0; //fileView()->selectedItems();
|
||||
QItemSelectionModel* selModel = m_iconsView->selectionModel();
|
||||
assert(selModel != 0);
|
||||
|
||||
KFileItemList itemList;
|
||||
if (selModel->hasSelection()) {
|
||||
KDirModel* dirModel = static_cast<KDirModel*>(m_iconsView->model());
|
||||
const QModelIndexList indexList = selModel->selectedIndexes();
|
||||
|
||||
QModelIndexList::const_iterator end = indexList.end();
|
||||
for (QModelIndexList::const_iterator it = indexList.begin(); it != end; ++it) {
|
||||
KFileItem* item = dirModel->itemForIndex(*it);
|
||||
if (item != 0) {
|
||||
itemList.append(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
return itemList;
|
||||
}
|
||||
|
||||
KUrl::List DolphinView::selectedUrls() const
|
||||
{
|
||||
KUrl::List urls;
|
||||
|
||||
/*const KFileItemList* list = fileView()->selectedItems();
|
||||
if (list != 0) {
|
||||
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 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;
|
||||
}
|
||||
|
||||
return urls;
|
||||
}
|
||||
|
@ -903,14 +917,18 @@ QString DolphinView::selectionStatusBarText() const
|
|||
// TODO: the following code is not suitable for languages where multiple forms
|
||||
// of plurals are given (e. g. in Poland three forms of plurals exist).
|
||||
QString text;
|
||||
const KFileItemList* list = selectedItems();
|
||||
assert((list != 0) && !list->isEmpty());
|
||||
const KFileItemList list = selectedItems();
|
||||
if (list.isEmpty()) {
|
||||
// TODO: assert(!list.isEmpty()) should be used, as this method is only invoked if
|
||||
// DolphinView::hasSelection() is true. Inconsistent behavior?
|
||||
return QString();
|
||||
}
|
||||
|
||||
int fileCount = 0;
|
||||
int folderCount = 0;
|
||||
KIO::filesize_t byteSize = 0;
|
||||
KFileItemList::const_iterator it = list->begin();
|
||||
const KFileItemList::const_iterator end = list->end();
|
||||
KFileItemList::const_iterator it = list.begin();
|
||||
const KFileItemList::const_iterator end = list.end();
|
||||
while (it != end){
|
||||
KFileItem* item = *it;
|
||||
if (item->isDir()) {
|
||||
|
|
|
@ -210,11 +210,11 @@ public:
|
|||
bool hasSelection() const;
|
||||
|
||||
/**
|
||||
* Returns the selected items. 0 is returned, if no item
|
||||
* is selected.
|
||||
* Returns the selected items. The list is empty if no item has been
|
||||
* selected.
|
||||
* @see DolphinView::selectedUrls()
|
||||
*/
|
||||
const KFileItemList* selectedItems() const;
|
||||
KFileItemList selectedItems() const;
|
||||
|
||||
/**
|
||||
* Returns a list of Urls for all selected items. An empty list
|
||||
|
|
|
@ -154,8 +154,8 @@ void InfoSidebarPage::showItemInfo()
|
|||
|
||||
// show the preview...
|
||||
DolphinView* view = mainWindow()->activeView();
|
||||
const KFileItemList* selectedItems = view->selectedItems();
|
||||
if ((selectedItems != 0) && selectedItems->count() > 1) {
|
||||
const KFileItemList selectedItems = view->selectedItems();
|
||||
if (selectedItems.count() > 1) {
|
||||
m_multipleSelection = true;
|
||||
}
|
||||
|
||||
|
@ -165,7 +165,7 @@ void InfoSidebarPage::showItemInfo()
|
|||
K3Icon::NoGroup,
|
||||
K3Icon::SizeEnormous);
|
||||
m_preview->setPixmap(icon);
|
||||
m_name->setText(i18n("%1 items selected",selectedItems->count()));
|
||||
m_name->setText(i18n("%1 items selected",selectedItems.count()));
|
||||
}
|
||||
else if (!applyBookmark()) {
|
||||
// try to get a preview pixmap from the item...
|
||||
|
@ -429,12 +429,10 @@ void InfoSidebarPage::insertActions()
|
|||
// of KFileItems. If no selection is given, a temporary KFileItem
|
||||
// by the given Url 'url' is created and added to the list.
|
||||
KFileItem fileItem(S_IFDIR, KFileItem::Unknown, m_shownUrl);
|
||||
KFileItemList localList;
|
||||
const KFileItemList* itemList = mainWindow()->activeView()->selectedItems();
|
||||
if ((itemList == 0) || itemList->isEmpty()) {
|
||||
KFileItemList itemList = mainWindow()->activeView()->selectedItems();
|
||||
if (itemList.isEmpty()) {
|
||||
fileItem.refresh();
|
||||
localList.append(&fileItem);
|
||||
itemList = &localList;
|
||||
itemList.append(&fileItem);
|
||||
}
|
||||
|
||||
// 'itemList' contains now all KFileItems, where an item information should be shown.
|
||||
|
@ -458,7 +456,7 @@ void InfoSidebarPage::insertActions()
|
|||
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(*itemList);
|
||||
QListIterator<KFileItem*> mimeIt(itemList);
|
||||
insert = true;
|
||||
while (insert && mimeIt.hasNext()) {
|
||||
KFileItem* item = mimeIt.next();
|
||||
|
@ -470,7 +468,7 @@ void InfoSidebarPage::insertActions()
|
|||
// 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(*itemList);
|
||||
QListIterator<KFileItem*> mimeIt(itemList);
|
||||
insert = true;
|
||||
while (insert && mimeIt.hasNext()) {
|
||||
KFileItem* item = mimeIt.next();
|
||||
|
|
Loading…
Reference in New Issue
Block a user