author | alwin <alwin> | 2005-03-20 00:12:11 (UTC) |
---|---|---|
committer | alwin <alwin> | 2005-03-20 00:12:11 (UTC) |
commit | bde8cf28573964aeb78fa9785cf1514cb8aa35a7 (patch) (unidiff) | |
tree | e91895f42ea3f9f5ac3d77128b8715b359ab54bf | |
parent | 9b608c7c967b2a22d4c6a8d8b98a4635d3b21204 (diff) | |
download | opie-bde8cf28573964aeb78fa9785cf1514cb8aa35a7.zip opie-bde8cf28573964aeb78fa9785cf1514cb8aa35a7.tar.gz opie-bde8cf28573964aeb78fa9785cf1514cb8aa35a7.tar.bz2 |
user may switch open folders/mails on single-click
-rw-r--r-- | noncore/net/mail/accountview.cpp | 11 | ||||
-rw-r--r-- | noncore/net/mail/accountview.h | 2 | ||||
-rw-r--r-- | noncore/net/mail/defines.h | 2 | ||||
-rw-r--r-- | noncore/net/mail/mainwindow.cpp | 7 | ||||
-rw-r--r-- | noncore/net/mail/mainwindow.h | 4 | ||||
-rw-r--r-- | noncore/net/mail/opiemail.cpp | 13 | ||||
-rw-r--r-- | noncore/net/mail/opiemail.h | 3 | ||||
-rw-r--r-- | noncore/net/mail/settingsdialog.cpp | 4 | ||||
-rw-r--r-- | noncore/net/mail/settingsdialogui.ui | 30 |
9 files changed, 69 insertions, 7 deletions
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp index 1183704..0e739e2 100644 --- a/noncore/net/mail/accountview.cpp +++ b/noncore/net/mail/accountview.cpp | |||
@@ -1,65 +1,74 @@ | |||
1 | 1 | ||
2 | #include "accountview.h" | 2 | #include "accountview.h" |
3 | #include "accountitem.h" | 3 | #include "accountitem.h" |
4 | #include "selectstore.h" | 4 | #include "selectstore.h" |
5 | 5 | ||
6 | #include <libmailwrapper/settings.h> | 6 | #include <libmailwrapper/settings.h> |
7 | #include <libmailwrapper/mailwrapper.h> | 7 | #include <libmailwrapper/mailwrapper.h> |
8 | #include <libmailwrapper/mailtypes.h> | 8 | #include <libmailwrapper/mailtypes.h> |
9 | #include <libmailwrapper/abstractmail.h> | 9 | #include <libmailwrapper/abstractmail.h> |
10 | 10 | ||
11 | /* OPIE */ | 11 | /* OPIE */ |
12 | #include <opie2/odebug.h> | 12 | #include <opie2/odebug.h> |
13 | #include <qpe/qpeapplication.h> | 13 | #include <qpe/qpeapplication.h> |
14 | #include <qpe/config.h> | ||
14 | 15 | ||
15 | /* QT */ | 16 | /* QT */ |
16 | #include <qmessagebox.h> | 17 | #include <qmessagebox.h> |
17 | #include <qpopupmenu.h> | 18 | #include <qpopupmenu.h> |
18 | 19 | ||
19 | using namespace Opie::Core; | 20 | using namespace Opie::Core; |
20 | AccountView::AccountView( QWidget *parent, const char *name, WFlags flags ) | 21 | AccountView::AccountView( QWidget *parent, const char *name, WFlags flags ) |
21 | : QListView( parent, name, flags ) | 22 | : QListView( parent, name, flags ) |
22 | { | 23 | { |
23 | setSorting(0); | 24 | setSorting(0); |
24 | setSelectionMode(Single); | 25 | setSelectionMode(Single); |
25 | m_rightPressed = false; | 26 | m_rightPressed = false; |
26 | 27 | ||
27 | connect( this, SIGNAL( selectionChanged(QListViewItem*) ), | 28 | connect( this, SIGNAL( selectionChanged(QListViewItem*) ), |
28 | SLOT( slotSelectionChanged(QListViewItem*) ) ); | 29 | SLOT( slotSelectionChanged(QListViewItem*) ) ); |
29 | connect( this, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, | 30 | connect( this, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, |
30 | SLOT( slotMouseButton(int,QListViewItem*,const QPoint&,int) ) ); | 31 | SLOT( slotMouseButton(int,QListViewItem*,const QPoint&,int) ) ); |
31 | connect( this, SIGNAL(clicked(QListViewItem*) ),this, | 32 | connect( this, SIGNAL(clicked(QListViewItem*) ),this, |
32 | SLOT( slotMouseClicked(QListViewItem*) ) ); | 33 | SLOT( slotMouseClicked(QListViewItem*) ) ); |
33 | m_currentItem = 0; | 34 | m_currentItem = 0; |
35 | readSettings(); | ||
34 | } | 36 | } |
35 | 37 | ||
36 | AccountView::~AccountView() | 38 | AccountView::~AccountView() |
37 | { | 39 | { |
38 | imapAccounts.clear(); | 40 | imapAccounts.clear(); |
39 | mhAccounts.clear(); | 41 | mhAccounts.clear(); |
40 | } | 42 | } |
41 | 43 | ||
44 | void AccountView::readSettings() | ||
45 | { | ||
46 | Config cfg("mail"); | ||
47 | cfg.setGroup( "Settings" ); | ||
48 | m_clickopens = cfg.readBoolEntry("clickOpensFolder",true); | ||
49 | } | ||
50 | |||
42 | void AccountView::slotSelectionChanged(QListViewItem*item) | 51 | void AccountView::slotSelectionChanged(QListViewItem*item) |
43 | { | 52 | { |
44 | if (!item) { | 53 | if (!item) { |
45 | emit serverSelected(0); | 54 | emit serverSelected(0); |
46 | return; | 55 | return; |
47 | } | 56 | } |
48 | AccountViewItem *view = static_cast<AccountViewItem *>(item); | 57 | AccountViewItem *view = static_cast<AccountViewItem *>(item); |
49 | emit serverSelected(view->isServer()); | 58 | emit serverSelected(view->isServer()); |
50 | } | 59 | } |
51 | 60 | ||
52 | QMap<int,QString> AccountView::currentServerMenu()const | 61 | QMap<int,QString> AccountView::currentServerMenu()const |
53 | { | 62 | { |
54 | QMap<int,QString> smap; | 63 | QMap<int,QString> smap; |
55 | AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); | 64 | AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); |
56 | if (!view)return smap; | 65 | if (!view)return smap; |
57 | smap = view->serverMenu(); | 66 | smap = view->serverMenu(); |
58 | return smap; | 67 | return smap; |
59 | } | 68 | } |
60 | 69 | ||
61 | QMap<int,QString> AccountView::currentFolderMenu()const | 70 | QMap<int,QString> AccountView::currentFolderMenu()const |
62 | { | 71 | { |
63 | QMap<int,QString> fmap; | 72 | QMap<int,QString> fmap; |
64 | AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); | 73 | AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); |
65 | if (!view)return fmap; | 74 | if (!view)return fmap; |
@@ -77,49 +86,49 @@ void AccountView::slotContextMenu(int id) | |||
77 | } | 86 | } |
78 | } | 87 | } |
79 | 88 | ||
80 | void AccountView::slotRightButton(int, QListViewItem * item,const QPoint&,int) | 89 | void AccountView::slotRightButton(int, QListViewItem * item,const QPoint&,int) |
81 | { | 90 | { |
82 | m_rightPressed = true; | 91 | m_rightPressed = true; |
83 | if (!item) return; | 92 | if (!item) return; |
84 | AccountViewItem *view = static_cast<AccountViewItem *>(item); | 93 | AccountViewItem *view = static_cast<AccountViewItem *>(item); |
85 | QPopupMenu*m = view->getContextMenu(); | 94 | QPopupMenu*m = view->getContextMenu(); |
86 | if (!m) return; | 95 | if (!m) return; |
87 | connect(m,SIGNAL(activated(int)),this,SLOT(slotContextMenu(int))); | 96 | connect(m,SIGNAL(activated(int)),this,SLOT(slotContextMenu(int))); |
88 | m->setFocus(); | 97 | m->setFocus(); |
89 | m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); | 98 | m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); |
90 | delete m; | 99 | delete m; |
91 | } | 100 | } |
92 | 101 | ||
93 | void AccountView::slotLeftButton(int, QListViewItem *,const QPoint&,int) | 102 | void AccountView::slotLeftButton(int, QListViewItem *,const QPoint&,int) |
94 | { | 103 | { |
95 | m_rightPressed = false; | 104 | m_rightPressed = false; |
96 | } | 105 | } |
97 | 106 | ||
98 | void AccountView::slotMouseClicked(QListViewItem*item) | 107 | void AccountView::slotMouseClicked(QListViewItem*item) |
99 | { | 108 | { |
100 | if (m_rightPressed) return; | 109 | if (m_rightPressed) return; |
101 | if (!item || m_currentItem == item) return; | 110 | if (!item || m_currentItem == item||!m_clickopens) return; |
102 | /* ### ToDo check settings if on single tab it should open */ | 111 | /* ### ToDo check settings if on single tab it should open */ |
103 | m_currentItem = item; | 112 | m_currentItem = item; |
104 | refresh(m_currentItem); | 113 | refresh(m_currentItem); |
105 | } | 114 | } |
106 | 115 | ||
107 | void AccountView::slotMouseButton(int button, QListViewItem * item,const QPoint&pos,int column) | 116 | void AccountView::slotMouseButton(int button, QListViewItem * item,const QPoint&pos,int column) |
108 | { | 117 | { |
109 | if (button==1) { | 118 | if (button==1) { |
110 | slotLeftButton(button,item,pos,column); | 119 | slotLeftButton(button,item,pos,column); |
111 | } else if (button==2) { | 120 | } else if (button==2) { |
112 | slotRightButton(button,item,pos,column); | 121 | slotRightButton(button,item,pos,column); |
113 | } | 122 | } |
114 | } | 123 | } |
115 | 124 | ||
116 | void AccountView::populate( QList<Account> list ) | 125 | void AccountView::populate( QList<Account> list ) |
117 | { | 126 | { |
118 | clear(); | 127 | clear(); |
119 | 128 | ||
120 | imapAccounts.clear(); | 129 | imapAccounts.clear(); |
121 | mhAccounts.clear(); | 130 | mhAccounts.clear(); |
122 | mhAccounts.append(new MHviewItem(AbstractMail::defaultLocalfolder(),this)); | 131 | mhAccounts.append(new MHviewItem(AbstractMail::defaultLocalfolder(),this)); |
123 | 132 | ||
124 | Account *it; | 133 | Account *it; |
125 | for ( it = list.first(); it; it = list.next() ) { | 134 | for ( it = list.first(); it; it = list.next() ) { |
diff --git a/noncore/net/mail/accountview.h b/noncore/net/mail/accountview.h index 5c4b559..418f4f3 100644 --- a/noncore/net/mail/accountview.h +++ b/noncore/net/mail/accountview.h | |||
@@ -12,47 +12,49 @@ class Folder; | |||
12 | class AbstractMail; | 12 | class AbstractMail; |
13 | class Account; | 13 | class Account; |
14 | class IMAPviewItem; | 14 | class IMAPviewItem; |
15 | class MHviewItem; | 15 | class MHviewItem; |
16 | 16 | ||
17 | class AccountView : public QListView | 17 | class AccountView : public QListView |
18 | { | 18 | { |
19 | Q_OBJECT | 19 | Q_OBJECT |
20 | 20 | ||
21 | public: | 21 | public: |
22 | AccountView( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 ); | 22 | AccountView( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 ); |
23 | virtual ~AccountView(); | 23 | virtual ~AccountView(); |
24 | virtual void populate( QList<Account> list ); | 24 | virtual void populate( QList<Account> list ); |
25 | virtual RecBodyP fetchBody(const Opie::Core::OSmartPointer<RecMail>&aMail); | 25 | virtual RecBodyP fetchBody(const Opie::Core::OSmartPointer<RecMail>&aMail); |
26 | virtual void downloadMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,AbstractMail*fromWrapper); | 26 | virtual void downloadMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,AbstractMail*fromWrapper); |
27 | virtual bool currentisDraft(); | 27 | virtual bool currentisDraft(); |
28 | QMap<int,QString> currentServerMenu()const; | 28 | QMap<int,QString> currentServerMenu()const; |
29 | QMap<int,QString> currentFolderMenu()const; | 29 | QMap<int,QString> currentFolderMenu()const; |
30 | 30 | ||
31 | public slots: | 31 | public slots: |
32 | virtual void refreshAll(); | 32 | virtual void refreshAll(); |
33 | virtual void refresh(QListViewItem *item); | 33 | virtual void refresh(QListViewItem *item); |
34 | virtual void refreshCurrent(); | 34 | virtual void refreshCurrent(); |
35 | virtual void slotContextMenu(int id); | 35 | virtual void slotContextMenu(int id); |
36 | virtual void readSettings(); | ||
36 | 37 | ||
37 | void setupFolderselect(Selectstore*sels); | 38 | void setupFolderselect(Selectstore*sels); |
38 | 39 | ||
39 | signals: | 40 | signals: |
40 | void refreshMailview(const QValueList<RecMailP>& ); | 41 | void refreshMailview(const QValueList<RecMailP>& ); |
41 | void serverSelected(int); | 42 | void serverSelected(int); |
42 | void refreshMenues(int); | 43 | void refreshMenues(int); |
43 | 44 | ||
44 | protected: | 45 | protected: |
45 | QListViewItem* m_currentItem; | 46 | QListViewItem* m_currentItem; |
46 | QValueList<IMAPviewItem*> imapAccounts; | 47 | QValueList<IMAPviewItem*> imapAccounts; |
47 | QValueList<MHviewItem*> mhAccounts; | 48 | QValueList<MHviewItem*> mhAccounts; |
48 | bool m_rightPressed:1; | 49 | bool m_rightPressed:1; |
50 | bool m_clickopens:1; | ||
49 | 51 | ||
50 | protected slots: | 52 | protected slots: |
51 | virtual void slotRightButton(int, QListViewItem *,const QPoint&,int); | 53 | virtual void slotRightButton(int, QListViewItem *,const QPoint&,int); |
52 | virtual void slotLeftButton(int, QListViewItem *,const QPoint&,int); | 54 | virtual void slotLeftButton(int, QListViewItem *,const QPoint&,int); |
53 | virtual void slotMouseButton(int, QListViewItem *,const QPoint&,int); | 55 | virtual void slotMouseButton(int, QListViewItem *,const QPoint&,int); |
54 | virtual void slotMouseClicked(QListViewItem*); | 56 | virtual void slotMouseClicked(QListViewItem*); |
55 | virtual void slotSelectionChanged(QListViewItem*); | 57 | virtual void slotSelectionChanged(QListViewItem*); |
56 | }; | 58 | }; |
57 | 59 | ||
58 | #endif | 60 | #endif |
diff --git a/noncore/net/mail/defines.h b/noncore/net/mail/defines.h index 5fcbf0f..50d63dd 100644 --- a/noncore/net/mail/defines.h +++ b/noncore/net/mail/defines.h | |||
@@ -1,51 +1,53 @@ | |||
1 | #ifndef DEFINE_CONSTANTS_H | 1 | #ifndef DEFINE_CONSTANTS_H |
2 | #define DEFINE_CONSTANTS_H | 2 | #define DEFINE_CONSTANTS_H |
3 | 3 | ||
4 | #include <qpe/resource.h> | 4 | #include <qpe/resource.h> |
5 | 5 | ||
6 | #define USER_AGENT "OpieMail v0.3" | 6 | #define USER_AGENT "OpieMail v0.3" |
7 | 7 | ||
8 | #define PIC_COMPOSEMAIL "mail/composemail" | 8 | #define PIC_COMPOSEMAIL "mail/composemail" |
9 | #define PIC_SENDQUEUED "mail/sendqueued" | 9 | #define PIC_SENDQUEUED "mail/sendqueued" |
10 | #define PIC_SHOWFOLDERS "mail/showfolders" | 10 | #define PIC_SHOWFOLDERS "mail/showfolders" |
11 | #define PIC_SYNC "mail/sync" | 11 | #define PIC_SYNC "mail/sync" |
12 | #define PIC_IMAPFOLDER "mail/imapfolder" | 12 | #define PIC_IMAPFOLDER "mail/imapfolder" |
13 | #define PIC_MBOXFOLDER "mail/mboxfolder" | 13 | #define PIC_MBOXFOLDER "mail/mboxfolder" |
14 | #define PIC_POP3FOLDER "mail/pop3folder" | 14 | #define PIC_POP3FOLDER "mail/pop3folder" |
15 | #define PIC_INBOXFOLDER "mail/inbox" | 15 | #define PIC_INBOXFOLDER "mail/inbox" |
16 | #define PIC_OUTBOXFOLDER "mail/outbox" | 16 | #define PIC_OUTBOXFOLDER "mail/outbox" |
17 | #define PIC_LOCALFOLDER "mail/localfolder" | 17 | #define PIC_LOCALFOLDER "mail/localfolder" |
18 | 18 | ||
19 | #define PIC_OFFLINE "mail/notconnected" | 19 | #define PIC_OFFLINE "mail/notconnected" |
20 | #define PIC_DOCUMENT "DocsIcon" | ||
20 | 21 | ||
21 | #define ICON_COMPOSEMAIL QIconSet( Resource::loadPixmap( PIC_COMPOSEMAIL ) ) | 22 | #define ICON_COMPOSEMAIL QIconSet( Resource::loadPixmap( PIC_COMPOSEMAIL ) ) |
22 | #define ICON_SENDQUEUED QIconSet( Resource::loadPixmap( PIC_SENDQUEUED ) ) | 23 | #define ICON_SENDQUEUED QIconSet( Resource::loadPixmap( PIC_SENDQUEUED ) ) |
23 | #define ICON_SHOWFOLDERS QIconSet( Resource::loadPixmap( PIC_SHOWFOLDERS ) ) | 24 | #define ICON_SHOWFOLDERS QIconSet( Resource::loadPixmap( PIC_SHOWFOLDERS ) ) |
24 | #define ICON_SEARCHMAILS QIconSet( Resource::loadPixmap( PIC_SEARCHMAILS ) ) | 25 | #define ICON_SEARCHMAILS QIconSet( Resource::loadPixmap( PIC_SEARCHMAILS ) ) |
25 | #define ICON_EDITSETTINGS QIconSet( Resource::loadPixmap( PIC_EDITSETTINGS ) ) | 26 | #define ICON_EDITSETTINGS QIconSet( Resource::loadPixmap( PIC_EDITSETTINGS ) ) |
26 | #define ICON_EDITACCOUNTS QIconSet( Resource::loadPixmap( PIC_EDITACCOUNTS ) ) | 27 | #define ICON_EDITACCOUNTS QIconSet( Resource::loadPixmap( PIC_EDITACCOUNTS ) ) |
27 | #define ICON_SYNC QIconSet( Resource::loadPixmap( PIC_SYNC ) ) | 28 | #define ICON_SYNC QIconSet( Resource::loadPixmap( PIC_SYNC ) ) |
29 | #define ICON_READMAIL QIconSet( Resource::loadPixmap( PIC_DOCUMENT)) | ||
28 | 30 | ||
29 | #define PIXMAP_IMAPFOLDER QPixmap( Resource::loadPixmap( PIC_IMAPFOLDER ) ) | 31 | #define PIXMAP_IMAPFOLDER QPixmap( Resource::loadPixmap( PIC_IMAPFOLDER ) ) |
30 | #define PIXMAP_POP3FOLDER QPixmap( Resource::loadPixmap( PIC_POP3FOLDER ) ) | 32 | #define PIXMAP_POP3FOLDER QPixmap( Resource::loadPixmap( PIC_POP3FOLDER ) ) |
31 | #define PIXMAP_INBOXFOLDER QPixmap( Resource::loadPixmap( PIC_INBOXFOLDER) ) | 33 | #define PIXMAP_INBOXFOLDER QPixmap( Resource::loadPixmap( PIC_INBOXFOLDER) ) |
32 | #define PIXMAP_MBOXFOLDER QPixmap( Resource::loadPixmap( PIC_MBOXFOLDER ) ) | 34 | #define PIXMAP_MBOXFOLDER QPixmap( Resource::loadPixmap( PIC_MBOXFOLDER ) ) |
33 | #define PIXMAP_OUTBOXFOLDER QPixmap( Resource::loadPixmap( PIC_OUTBOXFOLDER) ) | 35 | #define PIXMAP_OUTBOXFOLDER QPixmap( Resource::loadPixmap( PIC_OUTBOXFOLDER) ) |
34 | #define PIXMAP_LOCALFOLDER QPixmap( Resource::loadPixmap( PIC_LOCALFOLDER) ) | 36 | #define PIXMAP_LOCALFOLDER QPixmap( Resource::loadPixmap( PIC_LOCALFOLDER) ) |
35 | #define PIXMAP_OFFLINE QPixmap( Resource::loadPixmap( PIC_OFFLINE) ) | 37 | #define PIXMAP_OFFLINE QPixmap( Resource::loadPixmap( PIC_OFFLINE) ) |
36 | 38 | ||
37 | #define IMAP_PORT "143" | 39 | #define IMAP_PORT "143" |
38 | #define IMAP_SSL_PORT "993" | 40 | #define IMAP_SSL_PORT "993" |
39 | #define SMTP_PORT "25" | 41 | #define SMTP_PORT "25" |
40 | #define SMTP_SSL_PORT "465" | 42 | #define SMTP_SSL_PORT "465" |
41 | #define POP3_PORT "110" | 43 | #define POP3_PORT "110" |
42 | #define POP3_SSL_PORT "995" | 44 | #define POP3_SSL_PORT "995" |
43 | #define NNTP_PORT "119" | 45 | #define NNTP_PORT "119" |
44 | #define NNTP_SSL_PORT "563" | 46 | #define NNTP_SSL_PORT "563" |
45 | 47 | ||
46 | /* used for decoding imapfoldername */ | 48 | /* used for decoding imapfoldername */ |
47 | #define UNDEFINED 64 | 49 | #define UNDEFINED 64 |
48 | #define MAXLINE 76 | 50 | #define MAXLINE 76 |
49 | #define UTF16MASK 0x03FFUL | 51 | #define UTF16MASK 0x03FFUL |
50 | #define UTF16SHIFT 10 | 52 | #define UTF16SHIFT 10 |
51 | #define UTF16BASE 0x10000UL | 53 | #define UTF16BASE 0x10000UL |
diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp index 3689352..b587424 100644 --- a/noncore/net/mail/mainwindow.cpp +++ b/noncore/net/mail/mainwindow.cpp | |||
@@ -42,53 +42,59 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) | |||
42 | } | 42 | } |
43 | serverMenu->insertItem(tr("Disconnect"),SERVER_MENU_DISCONNECT); | 43 | serverMenu->insertItem(tr("Disconnect"),SERVER_MENU_DISCONNECT); |
44 | serverMenu->insertItem(tr("Set on/offline"),SERVER_MENU_OFFLINE); | 44 | serverMenu->insertItem(tr("Set on/offline"),SERVER_MENU_OFFLINE); |
45 | serverMenu->insertSeparator(); | 45 | serverMenu->insertSeparator(); |
46 | serverMenu->insertItem(tr("Refresh folder list"),SERVER_MENU_REFRESH_FOLDER); | 46 | serverMenu->insertItem(tr("Refresh folder list"),SERVER_MENU_REFRESH_FOLDER); |
47 | serverMenu->insertItem(tr("Create new folder"),SERVER_MENU_CREATE_FOLDER); | 47 | serverMenu->insertItem(tr("Create new folder"),SERVER_MENU_CREATE_FOLDER); |
48 | serverMenu->insertSeparator(); | 48 | serverMenu->insertSeparator(); |
49 | serverMenu->insertItem(tr("(Un-)Subscribe groups"),SERVER_MENU_SUBSCRIBE); | 49 | serverMenu->insertItem(tr("(Un-)Subscribe groups"),SERVER_MENU_SUBSCRIBE); |
50 | 50 | ||
51 | folderMenu->insertItem(tr("Refresh headerlist"),FOLDER_MENU_REFRESH_HEADER); | 51 | folderMenu->insertItem(tr("Refresh headerlist"),FOLDER_MENU_REFRESH_HEADER); |
52 | folderMenu->insertItem(tr("Delete all mails"),FOLDER_MENU_DELETE_ALL_MAILS); | 52 | folderMenu->insertItem(tr("Delete all mails"),FOLDER_MENU_DELETE_ALL_MAILS); |
53 | folderMenu->insertItem(tr("New subfolder"),FOLDER_MENU_NEW_SUBFOLDER); | 53 | folderMenu->insertItem(tr("New subfolder"),FOLDER_MENU_NEW_SUBFOLDER); |
54 | folderMenu->insertItem(tr("Delete folder"),FOLDER_MENU_DELETE_FOLDER); | 54 | folderMenu->insertItem(tr("Delete folder"),FOLDER_MENU_DELETE_FOLDER); |
55 | folderMenu->insertItem(tr("Move/Copie all mails"),FOLDER_MENU_MOVE_MAILS); | 55 | folderMenu->insertItem(tr("Move/Copie all mails"),FOLDER_MENU_MOVE_MAILS); |
56 | menuBar->setItemEnabled(m_ServerMenuId,false); | 56 | menuBar->setItemEnabled(m_ServerMenuId,false); |
57 | menuBar->setItemEnabled(m_FolderMenuId,false); | 57 | menuBar->setItemEnabled(m_FolderMenuId,false); |
58 | 58 | ||
59 | addToolBar( toolBar ); | 59 | addToolBar( toolBar ); |
60 | toolBar->setHorizontalStretchable( true ); | 60 | toolBar->setHorizontalStretchable( true ); |
61 | 61 | ||
62 | QLabel *spacer = new QLabel( toolBar ); | 62 | QLabel *spacer = new QLabel( toolBar ); |
63 | spacer->setBackgroundMode( QWidget::PaletteButton ); | 63 | spacer->setBackgroundMode( QWidget::PaletteButton ); |
64 | toolBar->setStretchableWidget( spacer ); | 64 | toolBar->setStretchableWidget( spacer ); |
65 | 65 | ||
66 | readMail = new QAction(tr("Read current mail"),ICON_READMAIL,0,0,this); | ||
67 | readMail->addTo(toolBar); | ||
68 | readMail->addTo(mailMenu); | ||
69 | connect(readMail,SIGNAL(activated()),this,SLOT(displayMail())); | ||
70 | |||
66 | composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL, | 71 | composeMail = new QAction( tr( "Compose new mail" ), ICON_COMPOSEMAIL, |
67 | 0, 0, this ); | 72 | 0, 0, this ); |
68 | composeMail->addTo( toolBar ); | 73 | composeMail->addTo( toolBar ); |
69 | composeMail->addTo( mailMenu ); | 74 | composeMail->addTo( mailMenu ); |
70 | 75 | ||
76 | |||
71 | sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED, | 77 | sendQueued = new QAction( tr( "Send queued mails" ), ICON_SENDQUEUED, |
72 | 0, 0, this ); | 78 | 0, 0, this ); |
73 | sendQueued->addTo( toolBar ); | 79 | sendQueued->addTo( toolBar ); |
74 | sendQueued->addTo( mailMenu ); | 80 | sendQueued->addTo( mailMenu ); |
75 | 81 | ||
76 | /* | 82 | /* |
77 | syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC, | 83 | syncFolders = new QAction( tr( "Sync mailfolders" ), ICON_SYNC, |
78 | 0, 0, this ); | 84 | 0, 0, this ); |
79 | syncFolders->addTo( toolBar ); | 85 | syncFolders->addTo( toolBar ); |
80 | syncFolders->addTo( mailMenu ); | 86 | syncFolders->addTo( mailMenu ); |
81 | */ | 87 | */ |
82 | 88 | ||
83 | showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS, | 89 | showFolders = new QAction( tr( "Show/Hide folders" ), ICON_SHOWFOLDERS, |
84 | 0, 0, this, 0, true ); | 90 | 0, 0, this, 0, true ); |
85 | showFolders->addTo( toolBar ); | 91 | showFolders->addTo( toolBar ); |
86 | showFolders->addTo( mailMenu ); | 92 | showFolders->addTo( mailMenu ); |
87 | showFolders->setOn( true ); | 93 | showFolders->setOn( true ); |
88 | connect(showFolders, SIGNAL( toggled(bool) ), | 94 | connect(showFolders, SIGNAL( toggled(bool) ), |
89 | SLOT( slotShowFolders(bool) ) ); | 95 | SLOT( slotShowFolders(bool) ) ); |
90 | 96 | ||
91 | /* | 97 | /* |
92 | searchMails = new QAction( tr( "Search mails" ), QIconSet( Resource::loadPixmap("find") ), | 98 | searchMails = new QAction( tr( "Search mails" ), QIconSet( Resource::loadPixmap("find") ), |
93 | 0, 0, this ); | 99 | 0, 0, this ); |
94 | searchMails->addTo( toolBar ); | 100 | searchMails->addTo( toolBar ); |
@@ -101,48 +107,49 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) | |||
101 | connect( deleteMails, SIGNAL( activated() ), | 107 | connect( deleteMails, SIGNAL( activated() ), |
102 | SLOT( slotDeleteMail() ) ); | 108 | SLOT( slotDeleteMail() ) ); |
103 | 109 | ||
104 | editSettings = new QAction( tr( "Edit settings" ), QIconSet( Resource::loadPixmap("SettingsIcon") ) , | 110 | editSettings = new QAction( tr( "Edit settings" ), QIconSet( Resource::loadPixmap("SettingsIcon") ) , |
105 | 0, 0, this ); | 111 | 0, 0, this ); |
106 | editSettings->addTo( settingsMenu ); | 112 | editSettings->addTo( settingsMenu ); |
107 | connect( editSettings, SIGNAL( activated() ), | 113 | connect( editSettings, SIGNAL( activated() ), |
108 | SLOT( slotEditSettings() ) ); | 114 | SLOT( slotEditSettings() ) ); |
109 | editAccounts = new QAction( tr( "Configure accounts" ), QIconSet( Resource::loadPixmap("mail/editaccounts") ) , | 115 | editAccounts = new QAction( tr( "Configure accounts" ), QIconSet( Resource::loadPixmap("mail/editaccounts") ) , |
110 | 0, 0, this ); | 116 | 0, 0, this ); |
111 | editAccounts->addTo( settingsMenu ); | 117 | editAccounts->addTo( settingsMenu ); |
112 | 118 | ||
113 | 119 | ||
114 | QWidget *view = new QWidget( this ); | 120 | QWidget *view = new QWidget( this ); |
115 | setCentralWidget( view ); | 121 | setCentralWidget( view ); |
116 | layout = new QBoxLayout ( view, QBoxLayout::LeftToRight ); | 122 | layout = new QBoxLayout ( view, QBoxLayout::LeftToRight ); |
117 | 123 | ||
118 | folderView = new AccountView( view ); | 124 | folderView = new AccountView( view ); |
119 | folderView->header()->hide(); | 125 | folderView->header()->hide(); |
120 | folderView->setRootIsDecorated( true ); | 126 | folderView->setRootIsDecorated( true ); |
121 | folderView->addColumn( tr( "Mailbox" ) ); | 127 | folderView->addColumn( tr( "Mailbox" ) ); |
122 | connect(folderView,SIGNAL(serverSelected(int)),this,SLOT(serverSelected(int))); | 128 | connect(folderView,SIGNAL(serverSelected(int)),this,SLOT(serverSelected(int))); |
123 | connect(serverMenu,SIGNAL(activated(int)),folderView,SLOT(slotContextMenu(int))); | 129 | connect(serverMenu,SIGNAL(activated(int)),folderView,SLOT(slotContextMenu(int))); |
124 | connect(folderMenu,SIGNAL(activated(int)),folderView,SLOT(slotContextMenu(int))); | 130 | connect(folderMenu,SIGNAL(activated(int)),folderView,SLOT(slotContextMenu(int))); |
131 | connect(this,SIGNAL(settingsChanged()),folderView,SLOT(readSettings())); | ||
125 | 132 | ||
126 | 133 | ||
127 | layout->addWidget( folderView ); | 134 | layout->addWidget( folderView ); |
128 | 135 | ||
129 | mailView = new QListView( view ); | 136 | mailView = new QListView( view ); |
130 | mailView->addColumn( "" ); | 137 | mailView->addColumn( "" ); |
131 | mailView->addColumn( tr( "Subject" ),QListView::Manual ); | 138 | mailView->addColumn( tr( "Subject" ),QListView::Manual ); |
132 | mailView->addColumn( tr( "Sender" ),QListView::Manual ); | 139 | mailView->addColumn( tr( "Sender" ),QListView::Manual ); |
133 | mailView->addColumn( tr( "Size" ),QListView::Manual); | 140 | mailView->addColumn( tr( "Size" ),QListView::Manual); |
134 | mailView->addColumn( tr( "Date" )); | 141 | mailView->addColumn( tr( "Date" )); |
135 | mailView->setAllColumnsShowFocus(true); | 142 | mailView->setAllColumnsShowFocus(true); |
136 | mailView->setShowSortIndicator(true); | 143 | mailView->setShowSortIndicator(true); |
137 | mailView->setSorting(4,false); | 144 | mailView->setSorting(4,false); |
138 | 145 | ||
139 | layout->addWidget( mailView ); | 146 | layout->addWidget( mailView ); |
140 | layout->setStretchFactor( folderView, 1 ); | 147 | layout->setStretchFactor( folderView, 1 ); |
141 | layout->setStretchFactor( mailView, 2 ); | 148 | layout->setStretchFactor( mailView, 2 ); |
142 | 149 | ||
143 | m_Rotate = (QApplication::desktop()->width() > QApplication::desktop()->height()?0:90); | 150 | m_Rotate = (QApplication::desktop()->width() > QApplication::desktop()->height()?0:90); |
144 | 151 | ||
145 | slotAdjustLayout(); | 152 | slotAdjustLayout(); |
146 | 153 | ||
147 | QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold); | 154 | QPEApplication::setStylusOperation( mailView->viewport(),QPEApplication::RightOnHold); |
148 | QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold); | 155 | QPEApplication::setStylusOperation( folderView->viewport(),QPEApplication::RightOnHold); |
diff --git a/noncore/net/mail/mainwindow.h b/noncore/net/mail/mainwindow.h index b781d62..6449ce8 100644 --- a/noncore/net/mail/mainwindow.h +++ b/noncore/net/mail/mainwindow.h | |||
@@ -28,34 +28,36 @@ public slots: | |||
28 | virtual void slotAdjustColumns(); | 28 | virtual void slotAdjustColumns(); |
29 | virtual void appMessage(const QCString &msg, const QByteArray &data); | 29 | virtual void appMessage(const QCString &msg, const QByteArray &data); |
30 | virtual void slotComposeMail(); | 30 | virtual void slotComposeMail(); |
31 | virtual void systemMessage( const QCString&, const QByteArray& ); | 31 | virtual void systemMessage( const QCString&, const QByteArray& ); |
32 | 32 | ||
33 | protected slots: | 33 | protected slots: |
34 | virtual void slotSendQueued(); | 34 | virtual void slotSendQueued(); |
35 | virtual void slotEditAccounts(); | 35 | virtual void slotEditAccounts(); |
36 | virtual void slotShowFolders( bool show ); | 36 | virtual void slotShowFolders( bool show ); |
37 | virtual void refreshMailView(const QValueList<RecMailP>&); | 37 | virtual void refreshMailView(const QValueList<RecMailP>&); |
38 | virtual void displayMail(); | 38 | virtual void displayMail(); |
39 | virtual void slotDeleteMail(); | 39 | virtual void slotDeleteMail(); |
40 | virtual void mailHold(int, QListViewItem *,const QPoint&,int); | 40 | virtual void mailHold(int, QListViewItem *,const QPoint&,int); |
41 | virtual void slotAdjustLayout(); | 41 | virtual void slotAdjustLayout(); |
42 | virtual void slotEditSettings(); | 42 | virtual void slotEditSettings(); |
43 | virtual void mailLeftClicked( int, QListViewItem *,const QPoint&,int ); | 43 | virtual void mailLeftClicked( int, QListViewItem *,const QPoint&,int ); |
44 | virtual void serverSelected(int); | 44 | virtual void serverSelected(int); |
45 | 45 | ||
46 | protected: | 46 | protected: |
47 | QToolBar *toolBar; | 47 | QToolBar *toolBar; |
48 | QMenuBar *menuBar; | 48 | QMenuBar *menuBar; |
49 | QPopupMenu *mailMenu, *settingsMenu,*serverMenu,*folderMenu; | 49 | QPopupMenu *mailMenu, *settingsMenu,*serverMenu,*folderMenu; |
50 | 50 | ||
51 | QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails, | 51 | QAction *composeMail, *sendQueued, *showFolders, *searchMails, *deleteMails, |
52 | *editSettings, *editAccounts, *syncFolders; | 52 | *editSettings, *editAccounts, *syncFolders,*readMail; |
53 | AccountView *folderView; | 53 | AccountView *folderView; |
54 | QListView *mailView; | 54 | QListView *mailView; |
55 | QBoxLayout *layout; | 55 | QBoxLayout *layout; |
56 | int m_Rotate; | 56 | int m_Rotate; |
57 | QCopChannel* m_sysChannel; | 57 | QCopChannel* m_sysChannel; |
58 | int m_ServerMenuId,m_FolderMenuId; | 58 | int m_ServerMenuId,m_FolderMenuId; |
59 | signals: | ||
60 | void settingsChanged(); | ||
59 | }; | 61 | }; |
60 | 62 | ||
61 | #endif | 63 | #endif |
diff --git a/noncore/net/mail/opiemail.cpp b/noncore/net/mail/opiemail.cpp index 1bc81e4..fb8877a 100644 --- a/noncore/net/mail/opiemail.cpp +++ b/noncore/net/mail/opiemail.cpp | |||
@@ -1,41 +1,42 @@ | |||
1 | 1 | ||
2 | #include "settingsdialog.h" | 2 | #include "settingsdialog.h" |
3 | #include "opiemail.h" | 3 | #include "opiemail.h" |
4 | #include "editaccounts.h" | 4 | #include "editaccounts.h" |
5 | #include "composemail.h" | 5 | #include "composemail.h" |
6 | #include "mailistviewitem.h" | 6 | #include "mailistviewitem.h" |
7 | #include "viewmail.h" | 7 | #include "viewmail.h" |
8 | #include "selectstore.h" | 8 | #include "selectstore.h" |
9 | #include "selectsmtp.h" | 9 | #include "selectsmtp.h" |
10 | 10 | ||
11 | #include <libmailwrapper/smtpwrapper.h> | 11 | #include <libmailwrapper/smtpwrapper.h> |
12 | #include <libmailwrapper/mailtypes.h> | 12 | #include <libmailwrapper/mailtypes.h> |
13 | #include <libmailwrapper/abstractmail.h> | 13 | #include <libmailwrapper/abstractmail.h> |
14 | /* OPIE */ | 14 | /* OPIE */ |
15 | #include <opie2/odebug.h> | 15 | #include <opie2/odebug.h> |
16 | #include <qpe/resource.h> | 16 | #include <qpe/resource.h> |
17 | #include <qpe/qpeapplication.h> | 17 | #include <qpe/qpeapplication.h> |
18 | #include <qpe/config.h> | ||
18 | 19 | ||
19 | /* QT */ | 20 | /* QT */ |
20 | #include <qmap.h> | 21 | #include <qmap.h> |
21 | #include <qvaluelist.h> | 22 | #include <qvaluelist.h> |
22 | 23 | ||
23 | /* UNIX */ | 24 | /* UNIX */ |
24 | #include <signal.h> | 25 | #include <signal.h> |
25 | 26 | ||
26 | using namespace Opie::Core; | 27 | using namespace Opie::Core; |
27 | 28 | ||
28 | typedef QMapNode<QString,QString> tkeyvalues; | 29 | typedef QMapNode<QString,QString> tkeyvalues; |
29 | typedef QValueList<tkeyvalues> tvaluelist; | 30 | typedef QValueList<tkeyvalues> tvaluelist; |
30 | 31 | ||
31 | class ValueExplode | 32 | class ValueExplode |
32 | { | 33 | { |
33 | protected: | 34 | protected: |
34 | //! what was parsed last | 35 | //! what was parsed last |
35 | tvaluelist m_LastParsed; | 36 | tvaluelist m_LastParsed; |
36 | //! the delemiter to use | 37 | //! the delemiter to use |
37 | QString mDelemiter; | 38 | QString mDelemiter; |
38 | //! the inner delemiter | 39 | //! the inner delemiter |
39 | QString m2Delemiter; | 40 | QString m2Delemiter; |
40 | //! the real split routine | 41 | //! the real split routine |
41 | void splitit(); | 42 | void splitit(); |
@@ -85,48 +86,52 @@ void ValueExplode::splitit() | |||
85 | iLine = m_Command; | 86 | iLine = m_Command; |
86 | while ( (pos = iLine.find(mDelemiter,startpos))!=-1) { | 87 | while ( (pos = iLine.find(mDelemiter,startpos))!=-1) { |
87 | pos2 = iLine.find(m2Delemiter,startpos); | 88 | pos2 = iLine.find(m2Delemiter,startpos); |
88 | if (pos2==-1||pos2>pos) { | 89 | if (pos2==-1||pos2>pos) { |
89 | m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos-startpos),"")); | 90 | m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos-startpos),"")); |
90 | } else { | 91 | } else { |
91 | m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos2-startpos),iLine.mid(pos2+1,pos-pos2-1))); | 92 | m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos2-startpos),iLine.mid(pos2+1,pos-pos2-1))); |
92 | } | 93 | } |
93 | startpos = pos+1; | 94 | startpos = pos+1; |
94 | } | 95 | } |
95 | if (startpos<iLine.length()) { | 96 | if (startpos<iLine.length()) { |
96 | pos2 = iLine.find(m2Delemiter,startpos); | 97 | pos2 = iLine.find(m2Delemiter,startpos); |
97 | if (pos2==-1) { | 98 | if (pos2==-1) { |
98 | m_LastParsed.append(tkeyvalues(iLine.mid(startpos),"")); | 99 | m_LastParsed.append(tkeyvalues(iLine.mid(startpos),"")); |
99 | } else { | 100 | } else { |
100 | m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos2-startpos),iLine.mid(pos2+1))); | 101 | m_LastParsed.append(tkeyvalues(iLine.mid(startpos,pos2-startpos),iLine.mid(pos2+1))); |
101 | } | 102 | } |
102 | } | 103 | } |
103 | } | 104 | } |
104 | 105 | ||
105 | OpieMail::OpieMail( QWidget *parent, const char *name, WFlags ) | 106 | OpieMail::OpieMail( QWidget *parent, const char *name, WFlags ) |
106 | : MainWindow( parent, name, WStyle_ContextHelp ) | 107 | : MainWindow( parent, name, WStyle_ContextHelp ) |
107 | { | 108 | { |
108 | setup_signalblocking(); | 109 | setup_signalblocking(); |
110 | Config cfg("mail"); | ||
111 | cfg.setGroup( "Settings" ); | ||
112 | m_clickopens = cfg.readBoolEntry("clickOpensMail",true); | ||
113 | |||
109 | settings = new Settings(); | 114 | settings = new Settings(); |
110 | folderView->populate( settings->getAccounts() ); | 115 | folderView->populate( settings->getAccounts() ); |
111 | connect(folderView,SIGNAL(refreshMenues(int)),this,SLOT(refreshMenu(int))); | 116 | connect(folderView,SIGNAL(refreshMenues(int)),this,SLOT(refreshMenu(int))); |
112 | } | 117 | } |
113 | 118 | ||
114 | OpieMail::~OpieMail() | 119 | OpieMail::~OpieMail() |
115 | { | 120 | { |
116 | if (settings) delete settings; | 121 | if (settings) delete settings; |
117 | } | 122 | } |
118 | 123 | ||
119 | void OpieMail::setup_signalblocking() | 124 | void OpieMail::setup_signalblocking() |
120 | { | 125 | { |
121 | /* for networking we must block SIGPIPE and Co. */ | 126 | /* for networking we must block SIGPIPE and Co. */ |
122 | struct sigaction blocking_action,temp_action; | 127 | struct sigaction blocking_action,temp_action; |
123 | blocking_action.sa_handler = SIG_IGN; | 128 | blocking_action.sa_handler = SIG_IGN; |
124 | sigemptyset(&(blocking_action.sa_mask)); | 129 | sigemptyset(&(blocking_action.sa_mask)); |
125 | blocking_action.sa_flags = 0; | 130 | blocking_action.sa_flags = 0; |
126 | sigaction(SIGPIPE,&blocking_action,&temp_action); | 131 | sigaction(SIGPIPE,&blocking_action,&temp_action); |
127 | } | 132 | } |
128 | 133 | ||
129 | void OpieMail::appMessage(const QCString &msg, const QByteArray &data) | 134 | void OpieMail::appMessage(const QCString &msg, const QByteArray &data) |
130 | { | 135 | { |
131 | // copied from old mail2 | 136 | // copied from old mail2 |
132 | if (msg == "writeMail(QString,QString)") | 137 | if (msg == "writeMail(QString,QString)") |
@@ -213,49 +218,54 @@ void OpieMail::slotSendQueued() | |||
213 | if ( QPEApplication::execDialog( &selsmtp ) == QDialog::Accepted ) | 218 | if ( QPEApplication::execDialog( &selsmtp ) == QDialog::Accepted ) |
214 | { | 219 | { |
215 | smtp = selsmtp.selected_smtp(); | 220 | smtp = selsmtp.selected_smtp(); |
216 | } | 221 | } |
217 | } | 222 | } |
218 | if (smtp) | 223 | if (smtp) |
219 | { | 224 | { |
220 | SMTPwrapper * wrap = new SMTPwrapper(smtp); | 225 | SMTPwrapper * wrap = new SMTPwrapper(smtp); |
221 | if ( wrap->flushOutbox() ) | 226 | if ( wrap->flushOutbox() ) |
222 | { | 227 | { |
223 | QMessageBox::information(0,tr("Info"),tr("Mail queue flushed")); | 228 | QMessageBox::information(0,tr("Info"),tr("Mail queue flushed")); |
224 | } | 229 | } |
225 | delete wrap; | 230 | delete wrap; |
226 | } | 231 | } |
227 | } | 232 | } |
228 | 233 | ||
229 | void OpieMail::slotSearchMails() | 234 | void OpieMail::slotSearchMails() |
230 | { | 235 | { |
231 | odebug << "Search Mails" << oendl; | 236 | odebug << "Search Mails" << oendl; |
232 | } | 237 | } |
233 | 238 | ||
234 | void OpieMail::slotEditSettings() | 239 | void OpieMail::slotEditSettings() |
235 | { | 240 | { |
236 | SettingsDialog settingsDialog( this, 0, true, WStyle_ContextHelp ); | 241 | SettingsDialog settingsDialog( this, 0, true, WStyle_ContextHelp ); |
237 | QPEApplication::execDialog( &settingsDialog ); | 242 | if (QPEApplication::execDialog( &settingsDialog )) { |
243 | Config cfg("mail"); | ||
244 | cfg.setGroup( "Settings" ); | ||
245 | m_clickopens = cfg.readBoolEntry("clickOpensMail",true); | ||
246 | emit settingsChanged(); | ||
247 | } | ||
238 | } | 248 | } |
239 | 249 | ||
240 | void OpieMail::slotEditAccounts() | 250 | void OpieMail::slotEditAccounts() |
241 | { | 251 | { |
242 | odebug << "Edit Accounts" << oendl; | 252 | odebug << "Edit Accounts" << oendl; |
243 | EditAccounts eaDialog( settings, this, 0, true, WStyle_ContextHelp ); | 253 | EditAccounts eaDialog( settings, this, 0, true, WStyle_ContextHelp ); |
244 | eaDialog.slotAdjustColumns(); | 254 | eaDialog.slotAdjustColumns(); |
245 | if (QPEApplication::execDialog( &eaDialog )==QDialog::Rejected);// return; | 255 | if (QPEApplication::execDialog( &eaDialog )==QDialog::Rejected);// return; |
246 | 256 | ||
247 | if ( settings ) delete settings; | 257 | if ( settings ) delete settings; |
248 | settings = new Settings(); | 258 | settings = new Settings(); |
249 | mailView->clear(); | 259 | mailView->clear(); |
250 | folderView->populate( settings->getAccounts() ); | 260 | folderView->populate( settings->getAccounts() ); |
251 | } | 261 | } |
252 | 262 | ||
253 | void OpieMail::displayMail() | 263 | void OpieMail::displayMail() |
254 | { | 264 | { |
255 | QListViewItem*item = mailView->currentItem(); | 265 | QListViewItem*item = mailView->currentItem(); |
256 | if (!item) return; | 266 | if (!item) return; |
257 | RecMailP mail = ((MailListViewItem*)item)->data(); | 267 | RecMailP mail = ((MailListViewItem*)item)->data(); |
258 | RecBodyP body = folderView->fetchBody(mail); | 268 | RecBodyP body = folderView->fetchBody(mail); |
259 | ViewMail readMail( this,"", Qt::WType_Modal | WStyle_ContextHelp ); | 269 | ViewMail readMail( this,"", Qt::WType_Modal | WStyle_ContextHelp ); |
260 | readMail.setBody( body ); | 270 | readMail.setBody( body ); |
261 | readMail.setMail( mail ); | 271 | readMail.setMail( mail ); |
@@ -321,48 +331,49 @@ void OpieMail::slotShowFolders( bool show ) | |||
321 | } | 331 | } |
322 | else if ( !show && !folderView->isHidden() ) | 332 | else if ( !show && !folderView->isHidden() ) |
323 | { | 333 | { |
324 | odebug << "-> hiding" << oendl; | 334 | odebug << "-> hiding" << oendl; |
325 | folderView->hide(); | 335 | folderView->hide(); |
326 | } | 336 | } |
327 | } | 337 | } |
328 | 338 | ||
329 | void OpieMail::refreshMailView(const QValueList<RecMailP>&list) | 339 | void OpieMail::refreshMailView(const QValueList<RecMailP>&list) |
330 | { | 340 | { |
331 | MailListViewItem*item = 0; | 341 | MailListViewItem*item = 0; |
332 | mailView->clear(); | 342 | mailView->clear(); |
333 | 343 | ||
334 | QValueList<RecMailP>::ConstIterator it; | 344 | QValueList<RecMailP>::ConstIterator it; |
335 | for (it = list.begin(); it != list.end();++it) | 345 | for (it = list.begin(); it != list.end();++it) |
336 | { | 346 | { |
337 | item = new MailListViewItem(mailView,item); | 347 | item = new MailListViewItem(mailView,item); |
338 | item->storeData((*it)); | 348 | item->storeData((*it)); |
339 | item->showEntry(); | 349 | item->showEntry(); |
340 | } | 350 | } |
341 | } | 351 | } |
342 | 352 | ||
343 | void OpieMail::mailLeftClicked(int button, QListViewItem *item,const QPoint&,int ) | 353 | void OpieMail::mailLeftClicked(int button, QListViewItem *item,const QPoint&,int ) |
344 | { | 354 | { |
355 | if (!m_clickopens) return; | ||
345 | /* just LEFT button - or tap with stylus on pda */ | 356 | /* just LEFT button - or tap with stylus on pda */ |
346 | if (button!=1) return; | 357 | if (button!=1) return; |
347 | if (!item) return; | 358 | if (!item) return; |
348 | if (folderView->currentisDraft()) { | 359 | if (folderView->currentisDraft()) { |
349 | reEditMail(); | 360 | reEditMail(); |
350 | } else { | 361 | } else { |
351 | displayMail(); | 362 | displayMail(); |
352 | } | 363 | } |
353 | } | 364 | } |
354 | 365 | ||
355 | void OpieMail::slotMoveCopyMail() | 366 | void OpieMail::slotMoveCopyMail() |
356 | { | 367 | { |
357 | if (!mailView->currentItem()) return; | 368 | if (!mailView->currentItem()) return; |
358 | RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data(); | 369 | RecMailP mail = ((MailListViewItem*)mailView->currentItem() )->data(); |
359 | AbstractMail*targetMail = 0; | 370 | AbstractMail*targetMail = 0; |
360 | QString targetFolder = ""; | 371 | QString targetFolder = ""; |
361 | Selectstore sels; | 372 | Selectstore sels; |
362 | folderView->setupFolderselect(&sels); | 373 | folderView->setupFolderselect(&sels); |
363 | if (!sels.exec()) return; | 374 | if (!sels.exec()) return; |
364 | targetMail = sels.currentMail(); | 375 | targetMail = sels.currentMail(); |
365 | targetFolder = sels.currentFolder(); | 376 | targetFolder = sels.currentFolder(); |
366 | if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) || | 377 | if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) || |
367 | targetFolder.isEmpty()) | 378 | targetFolder.isEmpty()) |
368 | { | 379 | { |
diff --git a/noncore/net/mail/opiemail.h b/noncore/net/mail/opiemail.h index 75a0b2d..327bef7 100644 --- a/noncore/net/mail/opiemail.h +++ b/noncore/net/mail/opiemail.h | |||
@@ -22,30 +22,33 @@ public slots: | |||
22 | virtual void slotwriteMail(const QString&name,const QString&email); | 22 | virtual void slotwriteMail(const QString&name,const QString&email); |
23 | virtual void slotComposeMail(); | 23 | virtual void slotComposeMail(); |
24 | virtual void appMessage(const QCString &msg, const QByteArray &data); | 24 | virtual void appMessage(const QCString &msg, const QByteArray &data); |
25 | void setDocument(const QString&); | 25 | void setDocument(const QString&); |
26 | 26 | ||
27 | protected slots: | 27 | protected slots: |
28 | virtual void slotSendQueued(); | 28 | virtual void slotSendQueued(); |
29 | virtual void slotSearchMails(); | 29 | virtual void slotSearchMails(); |
30 | virtual void slotEditSettings(); | 30 | virtual void slotEditSettings(); |
31 | virtual void slotEditAccounts(); | 31 | virtual void slotEditAccounts(); |
32 | virtual void displayMail(); | 32 | virtual void displayMail(); |
33 | virtual void slotDeleteMail(); | 33 | virtual void slotDeleteMail(); |
34 | virtual void mailHold(int, QListViewItem *,const QPoint&,int); | 34 | virtual void mailHold(int, QListViewItem *,const QPoint&,int); |
35 | virtual void slotShowFolders( bool show ); | 35 | virtual void slotShowFolders( bool show ); |
36 | virtual void refreshMailView(const QValueList<RecMailP>&); | 36 | virtual void refreshMailView(const QValueList<RecMailP>&); |
37 | virtual void mailLeftClicked( int, QListViewItem *,const QPoint&,int ); | 37 | virtual void mailLeftClicked( int, QListViewItem *,const QPoint&,int ); |
38 | virtual void slotMoveCopyMail(); | 38 | virtual void slotMoveCopyMail(); |
39 | virtual void reEditMail(); | 39 | virtual void reEditMail(); |
40 | virtual void serverSelected(int); | 40 | virtual void serverSelected(int); |
41 | virtual void refreshMenu(int); | 41 | virtual void refreshMenu(int); |
42 | 42 | ||
43 | protected: | 43 | protected: |
44 | void setup_signalblocking(); | 44 | void setup_signalblocking(); |
45 | 45 | ||
46 | bool m_clickopens:1; | ||
47 | |||
46 | private: | 48 | private: |
47 | Settings *settings; | 49 | Settings *settings; |
50 | signals: | ||
48 | 51 | ||
49 | }; | 52 | }; |
50 | 53 | ||
51 | #endif | 54 | #endif |
diff --git a/noncore/net/mail/settingsdialog.cpp b/noncore/net/mail/settingsdialog.cpp index 6441948..74b8b12 100644 --- a/noncore/net/mail/settingsdialog.cpp +++ b/noncore/net/mail/settingsdialog.cpp | |||
@@ -1,51 +1,55 @@ | |||
1 | #include <qcheckbox.h> | 1 | #include <qcheckbox.h> |
2 | #include <qspinbox.h> | 2 | #include <qspinbox.h> |
3 | 3 | ||
4 | #include <qpe/config.h> | 4 | #include <qpe/config.h> |
5 | 5 | ||
6 | #include "settingsdialog.h" | 6 | #include "settingsdialog.h" |
7 | 7 | ||
8 | 8 | ||
9 | SettingsDialog::SettingsDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) | 9 | SettingsDialog::SettingsDialog( QWidget* parent, const char* name, bool modal, WFlags fl ) |
10 | : SettingsDialogUI( parent, name, modal, fl ) { | 10 | : SettingsDialogUI( parent, name, modal, fl ) { |
11 | 11 | ||
12 | readConfig(); | 12 | readConfig(); |
13 | } | 13 | } |
14 | 14 | ||
15 | SettingsDialog::~SettingsDialog() { | 15 | SettingsDialog::~SettingsDialog() { |
16 | 16 | ||
17 | } | 17 | } |
18 | 18 | ||
19 | void SettingsDialog::readConfig() { | 19 | void SettingsDialog::readConfig() { |
20 | Config cfg("mail"); | 20 | Config cfg("mail"); |
21 | cfg.setGroup( "Settings" ); | 21 | cfg.setGroup( "Settings" ); |
22 | showHtmlButton->setChecked( cfg.readBoolEntry( "showHtml", false ) ); | 22 | showHtmlButton->setChecked( cfg.readBoolEntry( "showHtml", false ) ); |
23 | clickOpenMailButton->setChecked(cfg.readBoolEntry("clickOpensMail",true)); | ||
24 | clickOpenFolderButton->setChecked(cfg.readBoolEntry("clickOpensFolder",true)); | ||
23 | cfg.setGroup( "Compose" ); | 25 | cfg.setGroup( "Compose" ); |
24 | checkBoxLater->setChecked( cfg.readBoolEntry( "sendLater", false ) ); | 26 | checkBoxLater->setChecked( cfg.readBoolEntry( "sendLater", false ) ); |
25 | cfg.setGroup( "Applet" ); | 27 | cfg.setGroup( "Applet" ); |
26 | cbEnableTaskbarApplet->setChecked( cfg.readBoolEntry( "Disabled", false ) ); | 28 | cbEnableTaskbarApplet->setChecked( cfg.readBoolEntry( "Disabled", false ) ); |
27 | spCheckOften->setValue( cfg.readNumEntry( "CheckEvery", 5 ) ); | 29 | spCheckOften->setValue( cfg.readNumEntry( "CheckEvery", 5 ) ); |
28 | cbBlinkLed->setChecked( cfg.readBoolEntry( "BlinkLed", true ) ); | 30 | cbBlinkLed->setChecked( cfg.readBoolEntry( "BlinkLed", true ) ); |
29 | cbPlaySound->setChecked( cfg.readBoolEntry( "PlaySound", false ) ); | 31 | cbPlaySound->setChecked( cfg.readBoolEntry( "PlaySound", false ) ); |
30 | 32 | ||
31 | } | 33 | } |
32 | 34 | ||
33 | void SettingsDialog::writeConfig() { | 35 | void SettingsDialog::writeConfig() { |
34 | Config cfg( "mail" ); | 36 | Config cfg( "mail" ); |
35 | cfg.setGroup( "Settings" ); | 37 | cfg.setGroup( "Settings" ); |
38 | cfg.writeEntry("clickOpensMail",clickOpenMailButton->isChecked()); | ||
39 | cfg.writeEntry("clickOpensFolder",clickOpenFolderButton->isChecked()); | ||
36 | cfg.writeEntry( "showHtml", showHtmlButton->isChecked() ); | 40 | cfg.writeEntry( "showHtml", showHtmlButton->isChecked() ); |
37 | cfg.setGroup( "Compose" ); | 41 | cfg.setGroup( "Compose" ); |
38 | cfg.writeEntry( "sendLater", checkBoxLater->isChecked() ); | 42 | cfg.writeEntry( "sendLater", checkBoxLater->isChecked() ); |
39 | cfg.setGroup( "Applet" ); | 43 | cfg.setGroup( "Applet" ); |
40 | cfg.writeEntry( "Disabled", cbEnableTaskbarApplet->isChecked() ); | 44 | cfg.writeEntry( "Disabled", cbEnableTaskbarApplet->isChecked() ); |
41 | int check = spCheckOften->value(); | 45 | int check = spCheckOften->value(); |
42 | if (check<1)check=1;if (check>99)check=99; | 46 | if (check<1)check=1;if (check>99)check=99; |
43 | cfg.writeEntry( "CheckEvery", check); | 47 | cfg.writeEntry( "CheckEvery", check); |
44 | cfg.writeEntry( "BlinkLed", cbBlinkLed->isChecked() ); | 48 | cfg.writeEntry( "BlinkLed", cbBlinkLed->isChecked() ); |
45 | cfg.writeEntry( "PlaySound", cbPlaySound->isChecked() ); | 49 | cfg.writeEntry( "PlaySound", cbPlaySound->isChecked() ); |
46 | } | 50 | } |
47 | 51 | ||
48 | void SettingsDialog::accept() { | 52 | void SettingsDialog::accept() { |
49 | writeConfig(); | 53 | writeConfig(); |
50 | QDialog::accept(); | 54 | QDialog::accept(); |
51 | } | 55 | } |
diff --git a/noncore/net/mail/settingsdialogui.ui b/noncore/net/mail/settingsdialogui.ui index 4acd84a..0a97da0 100644 --- a/noncore/net/mail/settingsdialogui.ui +++ b/noncore/net/mail/settingsdialogui.ui | |||
@@ -1,102 +1,124 @@ | |||
1 | <!DOCTYPE UI><UI> | 1 | <!DOCTYPE UI><UI> |
2 | <class>SettingsDialogUI</class> | 2 | <class>SettingsDialogUI</class> |
3 | <widget> | 3 | <widget> |
4 | <class>QDialog</class> | 4 | <class>QDialog</class> |
5 | <property stdset="1"> | 5 | <property stdset="1"> |
6 | <name>name</name> | 6 | <name>name</name> |
7 | <cstring>SettingsDialogUI</cstring> | 7 | <cstring>SettingsDialogUI</cstring> |
8 | </property> | 8 | </property> |
9 | <property stdset="1"> | 9 | <property stdset="1"> |
10 | <name>geometry</name> | 10 | <name>geometry</name> |
11 | <rect> | 11 | <rect> |
12 | <x>0</x> | 12 | <x>0</x> |
13 | <y>0</y> | 13 | <y>0</y> |
14 | <width>312</width> | 14 | <width>304</width> |
15 | <height>379</height> | 15 | <height>378</height> |
16 | </rect> | 16 | </rect> |
17 | </property> | 17 | </property> |
18 | <property stdset="1"> | 18 | <property stdset="1"> |
19 | <name>caption</name> | 19 | <name>caption</name> |
20 | <string>Settings Dialog</string> | 20 | <string>Settings Dialog</string> |
21 | </property> | 21 | </property> |
22 | <property> | 22 | <property> |
23 | <name>layoutMargin</name> | 23 | <name>layoutMargin</name> |
24 | </property> | 24 | </property> |
25 | <property> | 25 | <property> |
26 | <name>layoutSpacing</name> | 26 | <name>layoutSpacing</name> |
27 | </property> | 27 | </property> |
28 | <vbox> | 28 | <vbox> |
29 | <property stdset="1"> | 29 | <property stdset="1"> |
30 | <name>margin</name> | 30 | <name>margin</name> |
31 | <number>3</number> | 31 | <number>3</number> |
32 | </property> | 32 | </property> |
33 | <property stdset="1"> | 33 | <property stdset="1"> |
34 | <name>spacing</name> | 34 | <name>spacing</name> |
35 | <number>3</number> | 35 | <number>3</number> |
36 | </property> | 36 | </property> |
37 | <widget> | 37 | <widget> |
38 | <class>QTabWidget</class> | 38 | <class>QTabWidget</class> |
39 | <property stdset="1"> | 39 | <property stdset="1"> |
40 | <name>name</name> | 40 | <name>name</name> |
41 | <cstring>TabWidget2</cstring> | 41 | <cstring>TabWidget2</cstring> |
42 | </property> | 42 | </property> |
43 | <property> | 43 | <property> |
44 | <name>layoutMargin</name> | 44 | <name>layoutMargin</name> |
45 | </property> | 45 | </property> |
46 | <property> | 46 | <property> |
47 | <name>layoutSpacing</name> | 47 | <name>layoutSpacing</name> |
48 | </property> | 48 | </property> |
49 | <widget> | 49 | <widget> |
50 | <class>QWidget</class> | 50 | <class>QWidget</class> |
51 | <property stdset="1"> | 51 | <property stdset="1"> |
52 | <name>name</name> | 52 | <name>name</name> |
53 | <cstring>tab</cstring> | 53 | <cstring>tab</cstring> |
54 | </property> | 54 | </property> |
55 | <attribute> | 55 | <attribute> |
56 | <name>title</name> | 56 | <name>title</name> |
57 | <string>View Mail</string> | 57 | <string>View Mail</string> |
58 | </attribute> | 58 | </attribute> |
59 | <vbox> | 59 | <vbox> |
60 | <property stdset="1"> | 60 | <property stdset="1"> |
61 | <name>margin</name> | 61 | <name>margin</name> |
62 | <number>3</number> | 62 | <number>11</number> |
63 | </property> | 63 | </property> |
64 | <property stdset="1"> | 64 | <property stdset="1"> |
65 | <name>spacing</name> | 65 | <name>spacing</name> |
66 | <number>3</number> | 66 | <number>6</number> |
67 | </property> | 67 | </property> |
68 | <widget> | 68 | <widget> |
69 | <class>QCheckBox</class> | 69 | <class>QCheckBox</class> |
70 | <property stdset="1"> | 70 | <property stdset="1"> |
71 | <name>name</name> | 71 | <name>name</name> |
72 | <cstring>showHtmlButton</cstring> | 72 | <cstring>showHtmlButton</cstring> |
73 | </property> | 73 | </property> |
74 | <property stdset="1"> | 74 | <property stdset="1"> |
75 | <name>text</name> | 75 | <name>text</name> |
76 | <string>View mail as Html</string> | 76 | <string>View mail as Html</string> |
77 | </property> | 77 | </property> |
78 | </widget> | 78 | </widget> |
79 | <widget> | ||
80 | <class>QCheckBox</class> | ||
81 | <property stdset="1"> | ||
82 | <name>name</name> | ||
83 | <cstring>clickOpenMailButton</cstring> | ||
84 | </property> | ||
85 | <property stdset="1"> | ||
86 | <name>text</name> | ||
87 | <string>Click opens mail</string> | ||
88 | </property> | ||
89 | </widget> | ||
90 | <widget> | ||
91 | <class>QCheckBox</class> | ||
92 | <property stdset="1"> | ||
93 | <name>name</name> | ||
94 | <cstring>clickOpenFolderButton</cstring> | ||
95 | </property> | ||
96 | <property stdset="1"> | ||
97 | <name>text</name> | ||
98 | <string>Click activate server/folder</string> | ||
99 | </property> | ||
100 | </widget> | ||
79 | <spacer> | 101 | <spacer> |
80 | <property> | 102 | <property> |
81 | <name>name</name> | 103 | <name>name</name> |
82 | <cstring>Spacer1</cstring> | 104 | <cstring>Spacer1</cstring> |
83 | </property> | 105 | </property> |
84 | <property stdset="1"> | 106 | <property stdset="1"> |
85 | <name>orientation</name> | 107 | <name>orientation</name> |
86 | <enum>Vertical</enum> | 108 | <enum>Vertical</enum> |
87 | </property> | 109 | </property> |
88 | <property stdset="1"> | 110 | <property stdset="1"> |
89 | <name>sizeType</name> | 111 | <name>sizeType</name> |
90 | <enum>Expanding</enum> | 112 | <enum>Expanding</enum> |
91 | </property> | 113 | </property> |
92 | <property> | 114 | <property> |
93 | <name>sizeHint</name> | 115 | <name>sizeHint</name> |
94 | <size> | 116 | <size> |
95 | <width>20</width> | 117 | <width>20</width> |
96 | <height>20</height> | 118 | <height>20</height> |
97 | </size> | 119 | </size> |
98 | </property> | 120 | </property> |
99 | </spacer> | 121 | </spacer> |
100 | </vbox> | 122 | </vbox> |
101 | </widget> | 123 | </widget> |
102 | <widget> | 124 | <widget> |