Applets
urlitemview.h
Go to the documentation of this file.00001 /* 00002 Copyright 2007 Robert Knight <robertknight@gmail.com> 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Library General Public 00006 License as published by the Free Software Foundation; either 00007 version 2 of the License, or (at your option) any later version. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to 00016 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 00017 Boston, MA 02110-1301, USA. 00018 */ 00019 00020 #ifndef URLITEMVIEW_H 00021 #define URLITEMVIEW_H 00022 00023 // Qt 00024 #include <QAbstractItemView> 00025 00026 namespace Kickoff 00027 { 00028 00029 class ItemStateProvider; 00030 class UrlItemView : public QAbstractItemView 00031 { 00032 Q_OBJECT 00033 00034 public: 00035 UrlItemView(QWidget *parent = 0); 00036 virtual ~UrlItemView(); 00037 00038 void setItemStateProvider(ItemStateProvider *provider); 00039 ItemStateProvider *itemStateProvider() const; 00040 00041 // reimplemented from QAbstractItemView 00042 virtual QModelIndex indexAt(const QPoint& point) const; 00043 virtual void scrollTo(const QModelIndex& index, ScrollHint hint = EnsureVisible); 00044 virtual QRect visualRect(const QModelIndex& index) const; 00045 virtual void setModel(QAbstractItemModel *model); 00046 protected: 00047 // reimplemented from QAbstractItemView 00048 virtual int horizontalOffset() const; 00049 virtual bool isIndexHidden(const QModelIndex& index) const; 00050 virtual QModelIndex moveCursor(CursorAction action, Qt::KeyboardModifiers modifiers); 00051 virtual void setSelection(const QRect& rect, QItemSelectionModel::SelectionFlags flags); 00052 virtual int verticalOffset() const; 00053 virtual QRegion visualRegionForSelection(const QItemSelection& selection) const; 00054 virtual void startDrag(Qt::DropActions supportedActions); 00055 virtual void dragEnterEvent(QDragEnterEvent *event); 00056 virtual void dragLeaveEvent(QDragLeaveEvent *event); 00057 virtual void dragMoveEvent(QDragMoveEvent *event); 00058 00059 // reimplemented from QWidget 00060 virtual void paintEvent(QPaintEvent *event); 00061 virtual void resizeEvent(QResizeEvent *event); 00062 virtual void mouseMoveEvent(QMouseEvent *event); 00063 virtual void mousePressEvent(QMouseEvent *event); 00064 virtual void mouseReleaseEvent(QMouseEvent *event); 00065 virtual void dropEvent(QDropEvent *event); 00066 virtual void leaveEvent(QEvent *event); 00067 00068 00069 private Q_SLOTS: 00070 // lays out all items in the view and sets the current index to the first 00071 // selectable item 00072 void updateLayout(); 00073 00074 private: 00075 class Private; 00076 Private * const d; 00077 }; 00078 00079 } 00080 00081 #endif // URLITEMVIEW_H