-rw-r--r-- | korganizer/koprefs.cpp | 7 | ||||
-rw-r--r-- | korganizer/koprefs.h | 7 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 206 | ||||
-rw-r--r-- | korganizer/mainwindow.h | 11 |
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 @@ -89,8 +89,9 @@ KOPrefs::KOPrefs() : addItemBool("ShowIconNextDays",&mShowIconNextDays,true); addItemBool("ShowIconNext",&mShowIconNext,true); addItemBool("ShowIconJournal",&mShowIconJournal,true); addItemBool("ShowIconStretch",&mShowIconStretch,true); + addItemBool("ShowIconFilter",&mShowIconFilter,false); addItemInt("LastLoadedLanguage",&mOldLanguage,0); addItemBool("AskForQuit",&mAskForQuit,false); @@ -100,8 +101,14 @@ KOPrefs::KOPrefs() : addItemBool("ShowFullMenu",&mShowFullMenu,true); #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 @@ -184,13 +184,20 @@ class KOPrefs : public KPimPrefs bool mShowIconWeekNum; 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; bool mUsePassWd; diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index ca0d542..c6ae868 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp @@ -56,8 +56,9 @@ #include "koprefs.h" #include "kfiledialog.h" #include "koglobals.h" #include "kglobal.h" +#include "ktoolbar.h" #include "klocale.h" #include "kconfig.h" #include "simplealarmclient.h" #include "externalapphandler.h" @@ -163,8 +164,70 @@ MainWindow::MainWindow( QWidget *parent, const char *name, QString msg) : QApplication::setPalette( QPalette (KOPrefs::instance()->mAppColor1, KOPrefs::instance()->mAppColor2), true ); 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 ); setCentralWidget( splash ); @@ -630,8 +693,10 @@ 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 ); ne_action->addTo( actionMenu ); @@ -998,9 +1063,9 @@ void MainWindow::initActions() // ****************************************************** // menubar icons - iconToolBar->setHorizontalStretchable (true ); + //menuBar->insertItem( iconToolBar ); //xdays_action if (p-> mShowIconNewEvent) ne_action->addTo( iconToolBar ); @@ -1010,63 +1075,63 @@ void MainWindow::initActions() search_action->addTo( iconToolBar ); 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); if (p-> mShowIconBackFast) { 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); if (p-> mShowIconBack) { 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); if (p-> mShowIconForwardFast) { 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 ); } configureToolBarMenu->insertItem(i18n("What's This?"), 300, 6); @@ -1110,14 +1175,29 @@ void MainWindow::initActions() if (p-> mShowIconWhatsThis) 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 ) ) ); } @@ -1560,10 +1640,29 @@ void MainWindow::importQtopia() 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(); } @@ -1804,49 +1903,88 @@ 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 ); p-> mShowIconList= configureToolBarMenu->isItemChecked( 30 ); diff --git a/korganizer/mainwindow.h b/korganizer/mainwindow.h index b3041dc..79fb305 100644 --- a/korganizer/mainwindow.h +++ b/korganizer/mainwindow.h @@ -23,8 +23,9 @@ class KSyncProfile; #define QPEToolBar QToolBar #define QPEMenuBar QMenuBar #endif class QPEToolBar; +class QPEMenuBar; namespace KCal { class CalendarLocal; @@ -52,8 +53,9 @@ class MainWindow : public QMainWindow public slots: 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 ); protected slots: @@ -92,8 +94,10 @@ class MainWindow : public QMainWindow void loadCalendar(); void exportVCalendar(); void fillFilterMenu(); void selectFilter( int ); + void fillFilterMenuPopup(); + void selectFilterPopup( int ); void exportToPhone( int ); void toggleBeamReceive(); void disableBR(bool); signals: @@ -113,15 +117,20 @@ class MainWindow : public QMainWindow bool mBRdisabled; #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 * ) ; void keyReleaseEvent ( QKeyEvent * ) ; |