summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/koprefs.cpp7
-rw-r--r--korganizer/koprefs.h7
-rw-r--r--korganizer/mainwindow.cpp206
-rw-r--r--korganizer/mainwindow.h11
4 files changed, 196 insertions, 35 deletions
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp
index 7e3deff..2168094 100644
--- a/korganizer/koprefs.cpp
+++ b/korganizer/koprefs.cpp
@@ -90,6 +90,7 @@ KOPrefs::KOPrefs() :
addItemBool("ShowIconNext",&mShowIconNext,true);
addItemBool("ShowIconJournal",&mShowIconJournal,true);
addItemBool("ShowIconStretch",&mShowIconStretch,true);
+ addItemBool("ShowIconFilter",&mShowIconFilter,false);
addItemInt("LastLoadedLanguage",&mOldLanguage,0);
addItemBool("AskForQuit",&mAskForQuit,false);
@@ -101,6 +102,12 @@ KOPrefs::KOPrefs() :
#endif
addItemBool("ToolBarHor",&mToolBarHor, true );
addItemBool("ToolBarUp",&mToolBarUp, false );
+ addItemBool("ToolBarHorV",&mToolBarHorV, true );
+ addItemBool("ToolBarUpV",&mToolBarUpV, false );
+ addItemBool("ToolBarHorN",&mToolBarHorN, true );
+ addItemBool("ToolBarUpN",&mToolBarUpN, false );
+ addItemBool("ToolBarHorF",&mToolBarHorF, true );
+ addItemBool("ToolBarUpF",&mToolBarUpF, false );
addItemBool("ToolBarMiniIcons",&mToolBarMiniIcons, false );
addItemInt("Whats Next Days",&mWhatsNextDays,3);
addItemInt("Whats Next Prios",&mWhatsNextPrios,1);
diff --git a/korganizer/koprefs.h b/korganizer/koprefs.h
index 09a0dce..8dfdf69 100644
--- a/korganizer/koprefs.h
+++ b/korganizer/koprefs.h
@@ -185,11 +185,18 @@ class KOPrefs : public KPimPrefs
bool mShowIconNextDays;
bool mShowIconNext;
bool mShowIconJournal;
+ bool mShowIconFilter;
bool mShowIconStretch;
bool mToolBarHor;
bool mToolBarUp;
+ bool mToolBarHorV;
+ bool mToolBarUpV;
+ bool mToolBarHorN;
+ bool mToolBarUpN;
+ bool mToolBarHorF;
+ bool mToolBarUpF;
bool mToolBarMiniIcons;
bool mAskForQuit;
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp
index ca0d542..c6ae868 100644
--- a/korganizer/mainwindow.cpp
+++ b/korganizer/mainwindow.cpp
@@ -57,6 +57,7 @@
#include "kfiledialog.h"
#include "koglobals.h"
#include "kglobal.h"
+#include "ktoolbar.h"
#include "klocale.h"
#include "kconfig.h"
#include "simplealarmclient.h"
@@ -164,6 +165,68 @@ MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) :
globalFlagBlockStartup = 1;
iconToolBar = new QPEToolBar( this );
addToolBar (iconToolBar , tbd );
+
+ if ( KOPrefs::instance()->mShowIconFilter ) {
+ if ( p->mToolBarHorF ) {
+ if ( p->mToolBarUpF )
+ tbd = Bottom;
+ else
+ tbd = Top;
+ }
+ else {
+ if ( p->mToolBarUpF )
+ tbd = Right;
+ else
+ tbd = Left;
+ }
+ filterToolBar = new QPEToolBar ( this );
+ filterMenubar = new QPEMenuBar( filterToolBar );
+ QFontMetrics fm ( filterMenubar->font() );
+
+ filterPopupMenu = new QPopupMenu( this );
+ filterMenubar->insertItem( i18n("No Filter"), filterPopupMenu,0 );
+ filterMenubar->setFixedWidth( fm.width( i18n("No Filter")+"Ax" ) );
+ addToolBar (filterToolBar , tbd );
+ connect ( filterPopupMenu , SIGNAL( activated ( int ) ), this, SLOT (selectFilterPopup( int ) ) );
+ connect ( filterPopupMenu , SIGNAL( aboutToShow() ), this, SLOT (fillFilterMenuPopup() ) );
+ } else {
+ filterToolBar = 0;
+ filterMenubar = 0;
+ filterPopupMenu = 0;
+ }
+
+ if ( p->mToolBarHorV ) {
+ if ( p->mToolBarUpV )
+ tbd = Bottom;
+ else
+ tbd = Top;
+ }
+ else {
+ if ( p->mToolBarUpV )
+ tbd = Right;
+ else
+ tbd = Left;
+ }
+ viewToolBar = new QPEToolBar( this );
+ addToolBar (viewToolBar , tbd );
+ if ( p->mToolBarHorN ) {
+ if ( p->mToolBarUpN )
+ tbd = Bottom;
+ else
+ tbd = Top;
+ }
+ else {
+ if ( p->mToolBarUpN )
+ tbd = Right;
+ else
+ tbd = Left;
+ }
+ navigatorToolBar = new QPEToolBar( this );
+ addToolBar (navigatorToolBar , tbd );
+
+
+
+
mCalendarModifiedFlag = false;
QLabel* splash = new QLabel(i18n("KO/Pi is starting ... "), this );
splash->setAlignment ( AlignCenter );
@@ -631,6 +694,8 @@ void MainWindow::initActions()
icon = loadPixmap( pathString + "newevent" );
configureToolBarMenu->insertItem(i18n("Stretched TB"), 5 );
configureToolBarMenu->insertSeparator();
+ configureToolBarMenu->insertItem(i18n("Filtermenu"), 7 );
+ configureToolBarMenu->insertSeparator();
configureToolBarMenu->insertItem(i18n("Week Number"), 400);
configureToolBarMenu->insertItem(icon, i18n("New Event..."), 10 );
QAction* ne_action = new QAction( i18n("New Event..."), icon, i18n("New Event..."), 0, this );
@@ -999,7 +1064,7 @@ void MainWindow::initActions()
// menubar icons
- iconToolBar->setHorizontalStretchable (true );
+
//menuBar->insertItem( iconToolBar );
//xdays_action
if (p-> mShowIconNewEvent)
@@ -1011,25 +1076,25 @@ void MainWindow::initActions()
if (p-> mShowIconWhatsThis)
QWhatsThis::whatsThisButton ( iconToolBar );
if (p-> mShowIconNext)
- whatsnext_action->addTo( iconToolBar );
+ whatsnext_action->addTo( viewToolBar );
if (p-> mShowIconNextDays)
- xdays_action->addTo( iconToolBar );
+ xdays_action->addTo( viewToolBar );
if (p-> mShowIconJournal)
- viewjournal_action->addTo( iconToolBar );
+ viewjournal_action->addTo( viewToolBar );
if (p-> mShowIconDay1)
- day1_action->addTo( iconToolBar );
+ day1_action->addTo( viewToolBar );
if (p-> mShowIconDay5)
- day5_action->addTo( iconToolBar );
+ day5_action->addTo( viewToolBar );
if (p-> mShowIconDay7)
- day7_action->addTo( iconToolBar );
+ day7_action->addTo( viewToolBar );
if (p-> mShowIconDay6)
- day6_action->addTo( iconToolBar );
+ day6_action->addTo( viewToolBar );
if (p-> mShowIconMonth)
- month_action->addTo( iconToolBar );
+ month_action->addTo( viewToolBar );
if (p-> mShowIconList)
- showlist_action->addTo( iconToolBar );
+ showlist_action->addTo( viewToolBar );
if (p-> mShowIconTodoview)
- todoview_action->addTo( iconToolBar );
+ todoview_action->addTo( viewToolBar );
icon = loadPixmap( pathString + "2leftarrowB" );
configureToolBarMenu->insertItem(icon, i18n("Prev. month"), 200);
@@ -1037,7 +1102,7 @@ void MainWindow::initActions()
action = new QAction( i18n("Prev. month"), icon, i18n("Prev. month"),0 , this );
connect( action, SIGNAL( activated() ),
mView, SLOT( goPreviousMonth() ) );
- action->addTo( iconToolBar );
+ action->addTo( navigatorToolBar );
}
icon = loadPixmap( pathString + "1leftarrowB" );
configureToolBarMenu->insertItem(icon, i18n("Go backward"), 210);
@@ -1045,19 +1110,19 @@ void MainWindow::initActions()
action = new QAction( i18n("Go backward"), icon, i18n("Go backward"),0 , this );
connect( action, SIGNAL( activated() ),
mView, SLOT( goPrevious() ) );
- action->addTo( iconToolBar );
+ action->addTo( navigatorToolBar );
}
icon = loadPixmap( pathString + "today" );
configureToolBarMenu->insertItem(icon, i18n("Go to Today"), 130);
if (p-> mShowIconToday)
- today_action->addTo( iconToolBar );
+ today_action->addTo( navigatorToolBar );
icon = loadPixmap( pathString + "1rightarrowB" );
configureToolBarMenu->insertItem(icon, i18n("Go forward"), 220);
if (p-> mShowIconForward) {
action = new QAction( i18n("Go forward"), icon, i18n("Go forward"),0 , this );
connect( action, SIGNAL( activated() ),
mView, SLOT( goNext() ) );
- action->addTo( iconToolBar );
+ action->addTo( navigatorToolBar );
}
icon = loadPixmap( pathString + "2rightarrowB" );
configureToolBarMenu->insertItem(icon, i18n("Next month"), 230);
@@ -1065,7 +1130,7 @@ void MainWindow::initActions()
action = new QAction( i18n("Next month"), icon, i18n("Next month"),0 , this );
connect( action, SIGNAL( activated() ),
mView, SLOT( goNextMonth() ) );
- action->addTo( iconToolBar );
+ action->addTo( navigatorToolBar );
}
@@ -1111,12 +1176,27 @@ void MainWindow::initActions()
configureToolBarMenu->setItemChecked( 300, true );
if (p-> mShowIconWeekNum)
configureToolBarMenu->setItemChecked( 400, true );
- QLabel* dummy = new QLabel( iconToolBar );
- dummy->setBackgroundColor( iconToolBar->backgroundColor() );
- if (!p-> mShowIconStretch)
+ if (!p-> mShowIconStretch) {
+ QLabel* dummy = new QLabel( iconToolBar );
+ dummy->setBackgroundColor( iconToolBar->backgroundColor() );
+ dummy->setMinimumWidth( 0 );
iconToolBar->setStretchableWidget ( dummy ) ;
- else
+ }
+ else {
+ iconToolBar->setHorizontalStretchable (true );
+ viewToolBar->setHorizontalStretchable (true );
+ navigatorToolBar->setHorizontalStretchable (true );
+ iconToolBar->setVerticalStretchable (true );
+ viewToolBar->setVerticalStretchable (true );
+ navigatorToolBar->setVerticalStretchable (true );
configureToolBarMenu->setItemChecked( 5, true );
+ }
+ if (p-> mShowIconFilter)
+ configureToolBarMenu->setItemChecked( 7, true );
+
+
+ if ( filterMenubar )
+ connect( mView->filterView(), SIGNAL( filterChanged() ), SLOT( updateFilterToolbar() ) );
connect( configureToolBarMenu, SIGNAL( activated( int ) ),this, SLOT(configureToolBar( int ) ) );
configureAgenda( p->mHourSize );
connect( configureAgendaMenu, SIGNAL( activated( int ) ),this, SLOT(configureAgenda( int ) ) );
@@ -1561,8 +1641,27 @@ void MainWindow::saveOnClose()
{
KOPrefs *p = KOPrefs::instance();
p->mToolBarHor = ( iconToolBar->orientation () == Qt:: Horizontal );
- p->mToolBarUp = iconToolBar->x() > width()/2 ||
- iconToolBar->y() > height()/2;
+ if ( p->mToolBarHor )
+ p->mToolBarUp = iconToolBar->y() > height()/2;
+ else
+ p->mToolBarUp = iconToolBar->x() > width()/2;
+ p->mToolBarHorV = ( viewToolBar->orientation () == Qt:: Horizontal );
+ if ( p->mToolBarHorV )
+ p->mToolBarUpV = viewToolBar->y() > height()/2;
+ else
+ p->mToolBarUpV = viewToolBar->x() > width()/2 ;
+ p->mToolBarHorN = ( navigatorToolBar->orientation () == Qt:: Horizontal );
+ if ( p->mToolBarHorN )
+ p->mToolBarUpN = navigatorToolBar->y() > height()/2;
+ else
+ p->mToolBarUpN = navigatorToolBar->x() > width()/2 ;
+ if ( filterToolBar ) {
+ p->mToolBarHorF = ( filterToolBar->orientation () == Qt:: Horizontal );
+ if ( p->mToolBarHorF )
+ p->mToolBarUpF = filterToolBar->y() > height()/2;
+ else
+ p->mToolBarUpF = filterToolBar->x() > width()/2 ;
+ }
mView->writeSettings();
if ( mCalendarModifiedFlag || mView->checkFileChanged( defaultFileName()))
save();
@@ -1805,47 +1904,86 @@ void MainWindow::keyPressEvent ( QKeyEvent * e )
void MainWindow::fillFilterMenu()
{
selectFilterMenu->clear();
- bool disable = false;
selectFilterMenu->insertItem(i18n ( "Edit Filters" ), 0 );
selectFilterMenu->insertSeparator();
- if ( mView->filterView()->filtersEnabled() ) {
- selectFilterMenu->insertItem(i18n ( "Turn filter off" ), 1 );
- }
- else {
- selectFilterMenu->insertItem(i18n ( "Turn filter on" ), 1 );
- disable = true;
- }
+ selectFilterMenu->insertItem(i18n ( "No Filter" ), 1 );
+
selectFilterMenu->insertSeparator();
QPtrList<CalFilter> fili = mView->filters();
CalFilter *curfilter = mView->filterView()->selectedFilter();
CalFilter *filter = fili.first();
int iii = 2;
+ bool checkitem = mView->filterView()->filtersEnabled();
while(filter) {
selectFilterMenu->insertItem( filter->name(), iii );
if ( filter == curfilter)
- selectFilterMenu->setItemChecked( iii, true );
- if ( disable )
- selectFilterMenu->setItemEnabled( iii, false );
+ selectFilterMenu->setItemChecked( iii, checkitem );
filter = fili.next();
++iii;
}
+ if ( !checkitem )
+ selectFilterMenu->setItemChecked( 1, true );
+}
+void MainWindow::fillFilterMenuPopup()
+{
+ filterPopupMenu->clear();
+ filterPopupMenu->insertItem(i18n ( "No Filter" ), 0 );
+
+ filterPopupMenu->insertSeparator();
+ QPtrList<CalFilter> fili = mView->filters();
+ CalFilter *curfilter = mView->filterView()->selectedFilter();
+ CalFilter *filter = fili.first();
+ int iii = 1;
+ bool checkitem = mView->filterView()->filtersEnabled();
+ while(filter) {
+ filterPopupMenu->insertItem( filter->name(), iii );
+ if ( filter == curfilter)
+ filterPopupMenu->setItemChecked( iii, checkitem );
+ filter = fili.next();
+ ++iii;
+ }
+ if ( !checkitem )
+ filterPopupMenu->setItemChecked( 0, true );
}
void MainWindow::selectFilter( int fil )
{
+
if ( fil == 0 ) {
mView->editFilters( );
} else if ( fil == 1 ){
- mView->toggleFilerEnabled( );
+ if ( mView->filterView()->filtersEnabled() )
+ mView->toggleFilerEnabled( );
} else {
+ if ( !mView->filterView()->filtersEnabled() )
+ mView->toggleFilerEnabled( );
mView->selectFilter( fil-2 );
+ }
+}
+void MainWindow::updateFilterToolbar()
+{
+ if ( filterMenubar ) {
+ if ( !mView->filterView()->filtersEnabled() ) {
+ filterMenubar->changeItem( 0, i18n("No Filter") );
+ } else {
+ CalFilter *curfilter = mView->filterView()->selectedFilter();
+ if ( curfilter ) {
+ filterMenubar->changeItem( 0, curfilter->name() );
+ }
+ }
}
}
+void MainWindow::selectFilterPopup( int fil )
+{
+ selectFilter( fil + 1 );
+
+}
void MainWindow::configureToolBar( int item )
{
configureToolBarMenu->setItemChecked( item, !configureToolBarMenu-> isItemChecked ( item ) );
KOPrefs *p = KOPrefs::instance();
p-> mShowIconStretch= configureToolBarMenu->isItemChecked( 5 );
+ p-> mShowIconFilter = configureToolBarMenu->isItemChecked( 7 );
p-> mShowIconNewEvent= configureToolBarMenu->isItemChecked( 10 );
p->mShowIconNewTodo = configureToolBarMenu->isItemChecked( 20 );
p-> mShowIconSearch= configureToolBarMenu->isItemChecked( 120 );
diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h
index b3041dc..79fb305 100644
--- a/korganizer/mainwindow.h
+++ b/korganizer/mainwindow.h
@@ -24,6 +24,7 @@ class KSyncProfile;
#define QPEMenuBar QMenuBar
#endif
class QPEToolBar;
+class QPEMenuBar;
namespace KCal {
@@ -53,6 +54,7 @@ class MainWindow : public QMainWindow
void setCaption ( const QString & );
void updateWeekNum(const KCal::DateList &);
void updateWeek(QDate);
+ void updateFilterToolbar();
virtual void showMaximized ();
void configureAgenda( int );
void recieve( const QCString& msg, const QByteArray& data );
@@ -93,6 +95,8 @@ class MainWindow : public QMainWindow
void exportVCalendar();
void fillFilterMenu();
void selectFilter( int );
+ void fillFilterMenuPopup();
+ void selectFilterPopup( int );
void exportToPhone( int );
void toggleBeamReceive();
void disableBR(bool);
@@ -114,13 +118,18 @@ class MainWindow : public QMainWindow
#ifndef DESKTOP_VERSION
QCopChannel* infrared;
#endif
- QAction* brAction;
+ QAction* brAction;
KSyncManager* mSyncManager;
bool mClosed;
void saveOnClose();
bool mFlagKeyPressed;
bool mBlockAtStartup;
QPEToolBar *iconToolBar;
+ QPEToolBar *viewToolBar;
+ QPEToolBar *navigatorToolBar;
+ QPEToolBar *filterToolBar;
+ QPEMenuBar *filterMenubar;
+ QPopupMenu * filterPopupMenu;
void initActions();
void setDefaultPreferences();
void keyPressEvent ( QKeyEvent * ) ;