diff options
author | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-17 23:39:35 +0000 |
---|---|---|
committer | tpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da> | 2010-01-17 23:39:35 +0000 |
commit | f48aef5ed7f2e333984766d9ceb02e01ecbd47a7 (patch) | |
tree | 6ed79de882f3051cf7999a9cee2b633d8daabeab /src/dolphiniconsview.h | |
download | dolphin-f48aef5ed7f2e333984766d9ceb02e01ecbd47a7.tar.gz dolphin-f48aef5ed7f2e333984766d9ceb02e01ecbd47a7.zip |
Added old KDE3 version of dolphin
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/applications/dolphin@1076309 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'src/dolphiniconsview.h')
-rw-r--r-- | src/dolphiniconsview.h | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/src/dolphiniconsview.h b/src/dolphiniconsview.h new file mode 100644 index 0000000..9be2102 --- /dev/null +++ b/src/dolphiniconsview.h @@ -0,0 +1,168 @@ +/*************************************************************************** + * 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. * + ***************************************************************************/ + +#ifndef DOLPHINICONSVIEW_H +#define DOLPHINICONSVIEW_H + +#include <kfileiconview.h> +#include <qpixmap.h> +#include <kurl.h> +#include <itemeffectsmanager.h> + +class DolphinView; + +/** + * @brief Represents the view, where each item is shown as an icon. + * + * It is also possible that instead of the icon a preview of the item + * content is shown. + * + * @author Peter Penz + */ +class DolphinIconsView : public KFileIconView, public ItemEffectsManager +{ + Q_OBJECT + +public: + enum LayoutMode { + Icons, + Previews + }; + + DolphinIconsView(DolphinView *parent, LayoutMode layoutMode); + + virtual ~DolphinIconsView(); + + void setLayoutMode(LayoutMode mode); + LayoutMode layoutMode() const { return m_layoutMode; } + + /** @see ItemEffectsManager::updateItems */ + virtual void beginItemUpdates(); + + /** @see ItemEffectsManager::updateItems */ + virtual void endItemUpdates(); + + /** + * Reads out the dolphin settings for the icons view and refreshs + * the details view. + */ + // TODO: Other view implementations use a similar interface. When using + // Interview in Qt4 this method should be moved to a base class (currently + // not possible due to having different base classes for the views). + void refreshSettings(); + + /** @see ItemEffectsManager::zoomIn() */ + virtual void zoomIn(); + + /** @see ItemEffectsManager::zoomOut() */ + virtual void zoomOut(); + + /** @see ItemEffectsManager::isZoomInPossible() */ + virtual bool isZoomInPossible() const; + + /** @see ItemEffectsManager::isZoomOutPossible() */ + virtual bool isZoomOutPossible() const; + +public slots: + /** + * Bypass a layout issue in KFileIconView in combination with previews. + * @see KFileIconView::arrangeItemsInGrid + */ + virtual void arrangeItemsInGrid(bool updated = true); + +signals: + /** + * Is send, if the details view should be activated. Usually an activation + * is triggered by a mouse click. + */ + void signalRequestActivation(); + +protected: + /** @see ItemEffectsManager::setContextPixmap */ + virtual void setContextPixmap(void* context, + const QPixmap& pixmap); + + /** @see ItemEffectsManager::contextPixmap */ + virtual const QPixmap* contextPixmap(void* context); + + /** @see ItemEffectsManager::firstContext */ + virtual void* firstContext(); + + /** @see ItemEffectsManager::nextContext */ + virtual void* nextContext(void* context); + + /** @see ItemEffectsManager::contextFileInfo */ + virtual KFileItem* contextFileInfo(void* context); + + /** @see KFileIconView::contentsMousePressEvent */ + virtual void contentsMousePressEvent(QMouseEvent* event); + + /** @see KFileIconView::contentsMouseReleaseEvent */ + virtual void contentsMouseReleaseEvent(QMouseEvent* event); + + /** @see KFileIconView::drawBackground */ + virtual void drawBackground(QPainter* painter, const QRect& rect); + + /** @see KFileIconView::dragObject */ + virtual QDragObject* dragObject(); + + /** @see KFileIconView::contentsDragEnterEvent */ + virtual void contentsDragEnterEvent(QDragEnterEvent* event); + + /** @see KFileIconView::contentsDragMoveEvent */ + virtual void contentsDragMoveEvent(QDragMoveEvent* event); + + /** @see KFileIconView::contentsDropEvent */ + virtual void contentsDropEvent(QDropEvent* event); + +private slots: + /** Is connected to the onItem-signal from KFileIconView. */ + void slotOnItem(QIconViewItem* item); + + /** Is connected to the onViewport-signal from KFileIconView. */ + void slotOnViewport(); + + /** + * Opens the context menu for the item \a item on the given + * position \a pos. + */ + void slotContextMenuRequested(QIconViewItem* item, + const QPoint& pos); + + /** Renames the item \a item to the name \a name. */ + void slotItemRenamed(QIconViewItem* item, + const QString& name); + + void slotActivationUpdate(); + void slotUpdateDisabledItems(); + +private: + int m_previewIconSize; + LayoutMode m_layoutMode; + DolphinView* m_dolphinView; + + /** Returns the increased icon size for the size \a size. */ + int increasedIconSize(int size) const; + + /** Returns the decreased icon size for the size \a size. */ + int decreasedIconSize(int size) const; +}; + +#endif |