summaryrefslogtreecommitdiff
path: root/noncore/net/mail/accountview.cpp
Unidiff
Diffstat (limited to 'noncore/net/mail/accountview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/accountview.cpp52
1 files changed, 47 insertions, 5 deletions
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp
index c747a8b..d01d6bb 100644
--- a/noncore/net/mail/accountview.cpp
+++ b/noncore/net/mail/accountview.cpp
@@ -20,11 +20,17 @@ using namespace Opie::Core;
20AccountView::AccountView( QWidget *parent, const char *name, WFlags flags ) 20AccountView::AccountView( QWidget *parent, const char *name, WFlags flags )
21 : QListView( parent, name, flags ) 21 : QListView( parent, name, flags )
22{ 22{
23 setSorting(0);
24 setSelectionMode(Single);
25 m_rightPressed = false;
26
23 connect( this, SIGNAL( selectionChanged(QListViewItem*) ), 27 connect( this, SIGNAL( selectionChanged(QListViewItem*) ),
24 SLOT( refresh(QListViewItem*) ) ); 28 SLOT( slotSelectionChanged(QListViewItem*) ) );
25 connect( this, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, 29 connect( this, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this,
26 SLOT( slotHold(int,QListViewItem*,const QPoint&,int) ) ); 30 SLOT( slotMouseButton(int,QListViewItem*,const QPoint&,int) ) );
27 setSorting(0); 31 connect( this, SIGNAL(clicked(QListViewItem*) ),this,
32 SLOT( slotMouseClicked(QListViewItem*) ) );
33 m_currentItem = 0;
28} 34}
29 35
30AccountView::~AccountView() 36AccountView::~AccountView()
@@ -33,6 +39,18 @@ AccountView::~AccountView()
33 mhAccounts.clear(); 39 mhAccounts.clear();
34} 40}
35 41
42void AccountView::slotSelectionChanged(QListViewItem*item)
43{
44 odebug << "AccountView: Selection changed" << oendl;
45 if (!item) {
46 emit serverSelected(0);
47 return;
48 }
49 AccountViewItem *view = static_cast<AccountViewItem *>(item);
50
51 emit serverSelected(view->isServer());
52}
53
36void AccountView::slotContextMenu(int id) 54void AccountView::slotContextMenu(int id)
37{ 55{
38 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); 56 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem());
@@ -40,9 +58,9 @@ void AccountView::slotContextMenu(int id)
40 view->contextMenuSelected(id); 58 view->contextMenuSelected(id);
41} 59}
42 60
43void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int) 61void AccountView::slotRightButton(int button, QListViewItem * item,const QPoint&,int)
44{ 62{
45 if (button==1) {return;} 63 m_rightPressed = true;
46 if (!item) return; 64 if (!item) return;
47 AccountViewItem *view = static_cast<AccountViewItem *>(item); 65 AccountViewItem *view = static_cast<AccountViewItem *>(item);
48 QPopupMenu*m = view->getContextMenu(); 66 QPopupMenu*m = view->getContextMenu();
@@ -51,6 +69,30 @@ void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int)
51 m->setFocus(); 69 m->setFocus();
52 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); 70 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
53 delete m; 71 delete m;
72 setSelected(item,true);
73}
74
75void AccountView::slotLeftButton(int button, QListViewItem * item,const QPoint&,int)
76{
77 m_rightPressed = false;
78}
79
80void AccountView::slotMouseClicked(QListViewItem*item)
81{
82 if (m_rightPressed) return;
83 if (!item || m_currentItem == item) return;
84 /* ### ToDo check settings if on single tab it should open */
85 m_currentItem = item;
86 refresh(m_currentItem);
87}
88
89void AccountView::slotMouseButton(int button, QListViewItem * item,const QPoint&pos,int column)
90{
91 if (button==1) {
92 slotLeftButton(button,item,pos,column);
93 } else if (button==2) {
94 slotRightButton(button,item,pos,column);
95 }
54} 96}
55 97
56void AccountView::populate( QList<Account> list ) 98void AccountView::populate( QList<Account> list )