#include <dolphinview.h>
#include <kurl.h>
-#include <QObject>
+#include <QtCore/QObject>
+#include <libdolphin_export.h>
class KUrl;
class QModelIndex;
* when an item should be triggered and a lot more. The controller emits the corresponding signals
* so that the receiver may react on those changes.
*/
-class DolphinController : public QObject
+class LIBDOLPHINPRIVATE_EXPORT DolphinController : public QObject
{
Q_OBJECT
explicit DolphinController(QObject* parent);
virtual ~DolphinController();
- void setUrl(const KUrl& url) { m_url = url; }
- const KUrl& url() const { return m_url; }
+ inline void setUrl(const KUrl& url);
+ inline const KUrl& url() const;
void triggerContextMenuRequest(const QPoint& pos);
void triggerActivation();
void indicateDroppedUrls(const KUrl::List& urls,
- const QPoint& pos);
+ const QModelIndex& index,
+ QWidget* source);
void indicateSortingChange(DolphinView::Sorting sorting);
void indicateSortOrderChange(Qt::SortOrder order);
+ void setShowPreview(bool show);
+ inline bool showPreview() const;
+
+ void setShowAdditionalInfo(bool show);
+ inline bool showAdditionalInfo() const;
+
+ void triggerZoomIn();
+ inline void setZoomInPossible(bool possible);
+ inline bool isZoomInPossible() const;
+
+ void triggerZoomOut();
+ inline void setZoomOutPossible(bool possible);
+ inline bool isZoomOutPossible() const;
+
public slots:
+ /**
+ * Emits the signal itemTriggered(). The method should be invoked by the
+ * controller parent whenever the user has triggered an item. */
void triggerItem(const QModelIndex& index);
- void indicateSelectionChange();
+
+ /**
+ * Emits the signal itemEntered(). The method should be invoked by
+ * the controller parent whenever the mouse cursor is above an item.
+ */
+ void emitItemEntered(const QModelIndex& index);
+
+ /**
+ * Emits the signal viewportEntered(). The method should be invoked by
+ * the controller parent whenever the mouse cursor is above the viewport.
+ */
+ void emitViewportEntered();
signals:
/**
void activated();
/**
- * Is emitted if the URLs \a urls have been dropped.
- * @param pos Position relative to the view widget where the
- * dropping has been done. It is recommended
- * to get the corresponding model index from
- * this position to find out the destination.
+ * Is emitted if the URLs \a urls have been dropped to the index
+ * \a index. \a source indicates the widget where the dragging has
+ * been started from.
*/
void urlsDropped(const KUrl::List& urls,
- const QPoint& pos);
+ const QModelIndex& index,
+ QWidget* source);
/** Is emitted if the sorting has been changed to \a sorting. */
void sortingChanged(DolphinView::Sorting sorting);
/** Is emitted if the sort order has been changed to \a sort order. */
void sortOrderChanged(Qt::SortOrder order);
+ /**
+ * Is emitted if the state for showing previews has been
+ * changed to \a show.
+ */
+ void showPreviewChanged(bool show);
+
+ /**
+ * Is emitted if the state for showing additional info has been
+ * changed to \a show.
+ */
+ void showAdditionalInfoChanged(bool show);
+
/**
* Is emitted if the item with the index \a index should be triggered.
* Usually triggering on a directory opens the directory, triggering
*/
void itemTriggered(const QModelIndex& index);
- /** Is emitted if the selection has been changed by the user. */
- void selectionChanged();
+ /**
+ * Is emitted if the mouse cursor has entered the item
+ * given by \a index.
+ */
+ void itemEntered(const QModelIndex& index);
+
+ /**
+ * Is emitted if the mouse cursor has entered
+ * the viewport. */
+ void viewportEntered();
+
+ /** Is emitted if the view should zoom in. */
+ void zoomIn();
+
+ /** Is emitted if the view should zoom out. */
+ void zoomOut();
private:
+ bool m_showPreview;
+ bool m_showAdditionalInfo;
+ bool m_zoomInPossible;
+ bool m_zoomOutPossible;
KUrl m_url;
};
+void DolphinController::setUrl(const KUrl& url)
+{
+ m_url = url;
+}
+
+const KUrl& DolphinController::url() const
+{
+ return m_url;
+}
+
+bool DolphinController::showPreview() const
+{
+ return m_showPreview;
+}
+
+bool DolphinController::showAdditionalInfo() const
+{
+ return m_showAdditionalInfo;
+}
+
+void DolphinController::setZoomInPossible(bool possible)
+{
+ m_zoomInPossible = possible;
+}
+
+bool DolphinController::isZoomInPossible() const
+{
+ return m_zoomInPossible;
+}
+
+void DolphinController::setZoomOutPossible(bool possible)
+{
+ m_zoomOutPossible = possible;
+}
+
+bool DolphinController::isZoomOutPossible() const
+{
+ return m_zoomOutPossible;
+}
+
#endif