┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphincontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/dolphincontroller.cpp')
-rw-r--r--src/dolphincontroller.cpp275
1 files changed, 0 insertions, 275 deletions
diff --git a/src/dolphincontroller.cpp b/src/dolphincontroller.cpp
deleted file mode 100644
index b61c126b5..000000000
--- a/src/dolphincontroller.cpp
+++ /dev/null
@@ -1,275 +0,0 @@
-/***************************************************************************
- * Copyright (C) 2006 by Peter Penz ([email protected]) *
- * *
- * This program is free software; you can redistribute it and/or modify *
- * it under the terms of the GNU General Public License as published by *
- * the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
- * *
- * This program is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU General Public License for more details. *
- * *
- * You should have received a copy of the GNU General Public License *
- * along with this program; if not, write to the *
- * Free Software Foundation, Inc., *
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA *
- ***************************************************************************/
-
-#include "dolphincontroller.h"
-#include "zoomlevelinfo.h"
-
-#include <kdirmodel.h>
-#include <QAbstractProxyModel>
-#include <QApplication>
-#include <QClipboard>
-#include <QDir>
-
-Qt::MouseButtons DolphinController::m_mouseButtons = Qt::NoButton;
-
-DolphinController::DolphinController(DolphinView* dolphinView) :
- QObject(dolphinView),
- m_zoomLevel(0),
- m_nameFilter(),
- m_url(),
- m_dolphinView(dolphinView),
- m_itemView(0),
- m_versionControlActions()
-{
-}
-
-DolphinController::~DolphinController()
-{
-}
-
-void DolphinController::setUrl(const KUrl& url)
-{
- if (m_url != url) {
- m_url = url;
- emit cancelPreviews();
- emit urlChanged(url);
- }
-}
-
-void DolphinController::redirectToUrl(const KUrl& url)
-{
- m_url = url;
-}
-
-void DolphinController::setItemView(QAbstractItemView* view)
-{
- if (m_itemView != 0) {
- disconnect(m_itemView, SIGNAL(pressed(const QModelIndex&)),
- this, SLOT(updateMouseButtonState()));
- }
-
- m_itemView = view;
-
- if (m_itemView != 0) {
- m_zoomLevel = ZoomLevelInfo::zoomLevelForIconSize(m_itemView->iconSize());
-
- // TODO: this is a workaround until Qt-issue 176832 has been fixed
- connect(m_itemView, SIGNAL(pressed(const QModelIndex&)),
- this, SLOT(updateMouseButtonState()));
- }
-}
-
-void DolphinController::triggerContextMenuRequest(const QPoint& pos,
- const QList<QAction*>& customActions)
-{
- emit activated();
- emit requestContextMenu(pos, customActions);
-}
-
-void DolphinController::requestActivation()
-{
- emit activated();
-}
-
-void DolphinController::indicateDroppedUrls(const KFileItem& destItem,
- const KUrl& destPath,
- QDropEvent* event)
-{
- emit urlsDropped(destItem, destPath, event);
-}
-
-
-void DolphinController::indicateSortingChange(DolphinView::Sorting sorting)
-{
- emit sortingChanged(sorting);
-}
-
-void DolphinController::indicateSortOrderChange(Qt::SortOrder order)
-{
- emit sortOrderChanged(order);
-}
-
-void DolphinController::indicateSortFoldersFirstChange(bool foldersFirst)
-{
- emit sortFoldersFirstChanged(foldersFirst);
-}
-
-void DolphinController::indicateAdditionalInfoChange(const KFileItemDelegate::InformationList& info)
-{
- emit additionalInfoChanged(info);
-}
-
-void DolphinController::indicateActivationChange(bool active)
-{
- emit activationChanged(active);
-}
-
-void DolphinController::setNameFilter(const QString& nameFilter)
-{
- if (nameFilter != m_nameFilter) {
- m_nameFilter = nameFilter;
- emit nameFilterChanged(nameFilter);
- }
-}
-
-QString DolphinController::nameFilter() const
-{
- return m_nameFilter;
-}
-
-void DolphinController::setZoomLevel(int level)
-{
- Q_ASSERT(level >= ZoomLevelInfo::minimumLevel());
- Q_ASSERT(level <= ZoomLevelInfo::maximumLevel());
- if (level != m_zoomLevel) {
- m_zoomLevel = level;
- emit zoomLevelChanged(m_zoomLevel);
- }
-}
-
-void DolphinController::setVersionControlActions(QList<QAction*> actions)
-{
- m_versionControlActions = actions;
-}
-
-QList<QAction*> DolphinController::versionControlActions(const KFileItemList& items)
-{
- emit requestVersionControlActions(items);
- // All view implementations are connected with the signal requestVersionControlActions()
- // (see ViewExtensionFactory) and will invoke DolphinController::setVersionControlActions(),
- // so that the context dependent actions can be returned.
- return m_versionControlActions;
-}
-
-void DolphinController::handleKeyPressEvent(QKeyEvent* event)
-{
- Q_ASSERT(m_itemView != 0);
-
- const QItemSelectionModel* selModel = m_itemView->selectionModel();
- const QModelIndex currentIndex = selModel->currentIndex();
- const bool trigger = currentIndex.isValid()
- && ((event->key() == Qt::Key_Return) || (event->key() == Qt::Key_Enter))
- && !selModel->selectedIndexes().isEmpty();
- if (!trigger) {
- return;
- }
-
- // Emit the signal itemTriggered() for all selected files.
- // Several selected directories are opened in separate tabs,
- // one selected directory will get opened in the view.
- QModelIndexList dirQueue;
- const QModelIndexList indexList = selModel->selectedIndexes();
- foreach (const QModelIndex& index, indexList) {
- if (itemForIndex(index).isDir()) {
- dirQueue << index;
- } else {
- emit itemTriggered(itemForIndex(index));
- }
- }
-
- if (dirQueue.length() == 1) {
- // open directory in the view
- emit itemTriggered(itemForIndex(dirQueue[0]));
- } else {
- // open directories in separate tabs
- foreach(const QModelIndex& dir, dirQueue) {
- emit tabRequested(itemForIndex(dir).url());
- }
- }
-}
-
-void DolphinController::replaceUrlByClipboard()
-{
- const QClipboard* clipboard = QApplication::clipboard();
- QString text;
- if (clipboard->mimeData(QClipboard::Selection)->hasText()) {
- text = clipboard->mimeData(QClipboard::Selection)->text();
- } else if (clipboard->mimeData(QClipboard::Clipboard)->hasText()) {
- text = clipboard->mimeData(QClipboard::Clipboard)->text();
- }
- if (!text.isEmpty() && QDir::isAbsolutePath(text)) {
- m_dolphinView->setUrl(KUrl(text));
- }
-}
-
-void DolphinController::emitHideToolTip()
-{
- emit hideToolTip();
-}
-
-void DolphinController::emitItemTriggered(const KFileItem& item)
-{
- emit itemTriggered(item);
-}
-
-KFileItem DolphinController::itemForIndex(const QModelIndex& index) const
-{
- Q_ASSERT(m_itemView != 0);
-
- QAbstractProxyModel* proxyModel = static_cast<QAbstractProxyModel*>(m_itemView->model());
- KDirModel* dirModel = static_cast<KDirModel*>(proxyModel->sourceModel());
- const QModelIndex dirIndex = proxyModel->mapToSource(index);
- return dirModel->itemForIndex(dirIndex);
-}
-
-void DolphinController::triggerItem(const QModelIndex& index)
-{
- if (m_mouseButtons & Qt::LeftButton) {
- const KFileItem item = itemForIndex(index);
- if (index.isValid() && (index.column() == KDirModel::Name)) {
- emit itemTriggered(item);
- } else {
- m_itemView->clearSelection();
- emit itemEntered(KFileItem());
- }
- }
-}
-
-void DolphinController::requestTab(const QModelIndex& index)
-{
- if (m_mouseButtons & Qt::MidButton) {
- const KFileItem item = itemForIndex(index);
- const bool validRequest = index.isValid() &&
- (index.column() == KDirModel::Name) &&
- (item.isDir() || m_dolphinView->isTabsForFilesEnabled());
- if (validRequest) {
- emit tabRequested(item.url());
- }
- }
-}
-
-void DolphinController::emitItemEntered(const QModelIndex& index)
-{
- KFileItem item = itemForIndex(index);
- if (!item.isNull()) {
- emit itemEntered(item);
- }
-}
-
-void DolphinController::emitViewportEntered()
-{
- emit viewportEntered();
-}
-
-void DolphinController::updateMouseButtonState()
-{
- m_mouseButtons = QApplication::mouseButtons();
-}
-
-#include "dolphincontroller.moc"