summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/mainwindow.cpp43
-rw-r--r--noncore/net/mail/mainwindow.h8
2 files changed, 41 insertions, 10 deletions
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp
index a57fb0d..dc8c188 100644
--- a/noncore/net/mail/mainwindow.cpp
+++ b/noncore/net/mail/mainwindow.cpp
@@ -116,16 +116,24 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags )
layout->addWidget( mailView );
layout->setStretchFactor( folderView, 1 );
layout->setStretchFactor( mailView, 2 );
slotAdjustLayout();
-
- connect( mailView, SIGNAL( clicked( QListViewItem * ) ),this,
- SLOT( displayMail( QListViewItem * ) ) );
-
+
+ QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold);
+
+ connect( mailView, SIGNAL( mouseButtonClicked(int, QListViewItem *,const QPoint&,int ) ),this,
+ SLOT( mailLeftClicked( int, QListViewItem *,const QPoint&,int ) ) );
+
+ connect( mailView, SIGNAL( mouseButtonPressed(int, QListViewItem *,const QPoint&,int ) ),this,
+ SLOT( mailHold( int, QListViewItem *,const QPoint&,int ) ) );
+#if 0
+ connect( mailView, SIGNAL( rightButtonClicked( QListViewItem *,const QPoint&,int ) ),this,
+ SLOT( mailHold(QListViewItem *,const QPoint&,int) ));
+#endif
connect(folderView, SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*)));
QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) );
}
@@ -180,19 +188,26 @@ void MainWindow::refreshMailView(QList<RecMail>*list)
for (unsigned int i = 0; i < list->count();++i) {
item = new MailListViewItem(mailView,item);
item->storeData(*(list->at(i)));
item->showEntry();
}
}
-void MainWindow::displayMail(QListViewItem*item)
+void MainWindow::mailLeftClicked(int button, QListViewItem *item,const QPoint&,int )
{
+ /* just LEFT button - or tap with stylus on pda */
+ if (button!=1) return;
+ if (!item) return;
+ displayMail();
+}
+void MainWindow::displayMail()
+{
+ QListViewItem*item = mailView->currentItem();
if (!item) return;
RecMail mail = ((MailListViewItem*)item)->data();
RecBody body = folderView->fetchBody(mail);
-
ViewMail readMail( this );
readMail.setBody( body );
readMail.setMail( mail );
readMail.showMaximized();
readMail.exec();
@@ -210,13 +225,27 @@ void MainWindow::slotDeleteMail()
if ( QMessageBox::warning(this, tr("Delete Mail"), QString( tr("<p>Do you really want to delete this mail? <br><br>" ) + mail.getFrom() + " - " + mail.getSubject() ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes ) {
mail.Wrapper()->deleteMail( mail );
folderView->refreshCurrent();
}
}
-
+void MainWindow::mailHold(int button, QListViewItem *item,const QPoint&,int )
+{
+ /* just the RIGHT button - or hold on pda */
+ if (button!=2) {return;}
+ qDebug("Event right/hold");
+ if (!item) return;
+ QPopupMenu *m = new QPopupMenu(0);
+ if (m) {
+ m->insertItem(tr("Read this mail"),this,SLOT(displayMail()));
+ m->insertItem(tr("Delete this mail"),this,SLOT(slotDeleteMail()));
+ m->setFocus();
+ m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
+ delete m;
+ }
+}
MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * item )
:QListViewItem(parent,item),mail_data()
{
}
diff --git a/noncore/net/mail/mainwindow.h b/noncore/net/mail/mainwindow.h
index 4e4f4bb..638232a 100644
--- a/noncore/net/mail/mainwindow.h
+++ b/noncore/net/mail/mainwindow.h
@@ -23,16 +23,18 @@ public:
public slots:
void slotAdjustColumns();
protected slots:
virtual void slotShowFolders( bool show );
virtual void refreshMailView(QList<RecMail>*);
- virtual void displayMail(QListViewItem*);
+ virtual void displayMail();
virtual void slotDeleteMail();
- void slotAdjustLayout();
- void slotEditSettings();
+ virtual void mailHold(int, QListViewItem *,const QPoint&,int);
+ virtual void slotAdjustLayout();
+ virtual void slotEditSettings();
+ virtual void mailLeftClicked( int, QListViewItem *,const QPoint&,int );
protected:
QToolBar *toolBar;
StatusWidget *statusWidget;
QMenuBar *menuBar;
QPopupMenu *mailMenu, *settingsMenu;