00001 #include <qpopupmenu.h>
00002 #include <qaction.h>
00003 #include <qheader.h>
00004 #include <qlabel.h>
00005 #include <qvbox.h>
00006
00007 #include <qtoolbar.h>
00008 #include <qmenubar.h>
00009 #include <qpe/resource.h>
00010
00011 #include "mainwindowbase.h"
00012 #include "mailstatusbar.h"
00013 #include "folderwidget.h"
00014 #include "mailtable.h"
00015
00016 MainWindowBase::MainWindowBase(QWidget *parent, const char *name, WFlags fl)
00017 : QMainWindow(parent, name, fl)
00018 {
00019 setCaption(tr("E-Mail"));
00020 setToolBarsMovable(false);
00021
00022 toolbar = new QToolBar(this);
00023 menubar = new QMenuBar( toolbar );
00024 mailmenu = new QPopupMenu( menubar );
00025 servermenu = new QPopupMenu( menubar );
00026 menubar->insertItem( tr( "Mail" ), mailmenu );
00027 menubar->insertItem( tr( "Servers" ), servermenu );
00028
00029 addToolBar(toolbar);
00030 toolbar->setHorizontalStretchable(true);
00031
00032 QLabel *spacer = new QLabel(toolbar);
00033 spacer->setBackgroundMode(QWidget::PaletteButton);
00034 toolbar->setStretchableWidget(spacer);
00035
00036 compose = new QAction(tr("Compose new mail"), QIconSet(Resource::loadPixmap("mail/newmail")), 0, 0, this);
00037 compose->addTo(toolbar);
00038 compose->addTo(mailmenu);
00039
00040 sendQueue = new QAction(tr("Send queued mails"), QIconSet(Resource::loadPixmap("mail/sendqueue")), 0, 0, this);
00041 sendQueue->addTo(toolbar);
00042 sendQueue->addTo(mailmenu);
00043
00044 folders = new QAction(tr("Show/hide folders"), QIconSet(Resource::loadPixmap("mail/folder")), 0, 0, this, 0, true);
00045 folders->addTo(toolbar);
00046 folders->addTo(servermenu);
00047 connect(folders, SIGNAL(toggled(bool)), SLOT(slotFoldersToggled(bool)));
00048
00049 findmails = new QAction(tr("Search mails"), QIconSet(Resource::loadPixmap("mail/find")), 0, 0, this);
00050 findmails->addTo(toolbar);
00051 findmails->addTo(mailmenu);
00052
00053 configure = new QAction(tr("Configuration"), QIconSet(Resource::loadPixmap("mail/configure")), 0, 0, this);
00054 configure->addTo(servermenu);
00055
00056 QVBox *view = new QVBox(this);
00057 setCentralWidget(view);
00058
00059 folderView = new FolderWidget(view);
00060 folderView->setMinimumHeight(90);
00061 folderView->setMaximumHeight(90);
00062 folderView->hide();
00063
00064 mailView = new MailTable(view);
00065 mailView->setMinimumHeight(50);
00066
00067 status = new MailStatusBar(view);
00068 }
00069
00070 void MainWindowBase::slotFoldersToggled(bool toggled)
00071 {
00072 if (folderView->isHidden() && toggled) folderView->show();
00073 if (!folderView->isHidden() && !toggled) folderView->hide();
00074 }
00075