summaryrefslogtreecommitdiff
path: root/noncore/unsupported/mail2/listviewplus.cpp
authorconber <conber>2002-06-15 09:46:14 (UTC)
committer conber <conber>2002-06-15 09:46:14 (UTC)
commit7f2eef29708380844922f34f59ba4e9beefbf7c3 (patch) (side-by-side diff)
treef57125fbaabddecc35d6677f1b9e48a4594165d5 /noncore/unsupported/mail2/listviewplus.cpp
parent0acbdd392814589df303b6e50c79d9822e3db27a (diff)
downloadopie-7f2eef29708380844922f34f59ba4e9beefbf7c3.zip
opie-7f2eef29708380844922f34f59ba4e9beefbf7c3.tar.gz
opie-7f2eef29708380844922f34f59ba4e9beefbf7c3.tar.bz2
initial checkin
Diffstat (limited to 'noncore/unsupported/mail2/listviewplus.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/unsupported/mail2/listviewplus.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/noncore/unsupported/mail2/listviewplus.cpp b/noncore/unsupported/mail2/listviewplus.cpp
new file mode 100644
index 0000000..ce5f35f
--- a/dev/null
+++ b/noncore/unsupported/mail2/listviewplus.cpp
@@ -0,0 +1,54 @@
+#include <qpopupmenu.h>
+#include <qtimer.h>
+
+#include "listviewplus.h"
+
+ListViewPlus::ListViewPlus(QWidget *parent, const char *name, WFlags fl)
+ : QListView(parent, name, fl)
+{
+
+}
+
+void ListViewPlus::keyPressEvent(QKeyEvent *event)
+{
+ switch(event->key()) {
+ case Qt::Key_Space: // FALLTHROUGH
+ case Qt::Key_Enter:
+ if (currentItem() != 0)
+ emit clicked(currentItem());
+ break;
+ default: break;
+ }
+
+ QListView::keyPressEvent(event);
+}
+
+void ListViewPlus::setPopup(QPopupMenu *popup, int delay)
+{
+ _popup = popup;
+ _delay = delay;
+
+ connect(this, SIGNAL(pressed(QListViewItem *, const QPoint &, int)), SLOT(_initPopup(QListViewItem *, const QPoint &, int)));
+ connect(this, SIGNAL(clicked(QListViewItem *, const QPoint &, int)), SLOT(_cancelPopup(QListViewItem *, const QPoint &, int)));
+}
+
+void ListViewPlus::_initPopup(QListViewItem *, const QPoint &point, int)
+{
+ _point = point;
+
+ _timer = new QTimer();
+ _timer->start(_delay, true);
+
+ connect(_timer, SIGNAL(timeout()), this, SLOT(_showPopup()));
+}
+
+void ListViewPlus::_cancelPopup(QListViewItem *, const QPoint &, int)
+{
+ delete _timer;
+}
+
+void ListViewPlus::_showPopup()
+{
+ _popup->popup(_point);
+}
+