summaryrefslogtreecommitdiffabout
path: root/korganizer/filtereditdialog.cpp
Unidiff
Diffstat (limited to 'korganizer/filtereditdialog.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--korganizer/filtereditdialog.cpp11
1 files changed, 8 insertions, 3 deletions
diff --git a/korganizer/filtereditdialog.cpp b/korganizer/filtereditdialog.cpp
index df84911..a3cff49 100644
--- a/korganizer/filtereditdialog.cpp
+++ b/korganizer/filtereditdialog.cpp
@@ -1,179 +1,184 @@
1/* 1/*
2 This file is part of KOrganizer. 2 This file is part of KOrganizer.
3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org> 3 Copyright (c) 2001 Cornelius Schumacher <schumacher@kde.org>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details. 13 GNU General Public License for more details.
14 14
15 You should have received a copy of the GNU General Public License 15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software 16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18 18
19 As a special exception, permission is given to link this program 19 As a special exception, permission is given to link this program
20 with any edition of Qt, and distribute the resulting executable, 20 with any edition of Qt, and distribute the resulting executable,
21 without including the source code for Qt in the source distribution. 21 without including the source code for Qt in the source distribution.
22*/ 22*/
23 23
24#include <qlayout.h> 24#include <qlayout.h>
25#include <qpushbutton.h> 25#include <qpushbutton.h>
26#include <qcombobox.h> 26#include <qcombobox.h>
27#include <qcheckbox.h> 27#include <qcheckbox.h>
28#include <qradiobutton.h> 28#include <qradiobutton.h>
29#include <qlistbox.h> 29#include <q3listbox.h>
30#include <qapplication.h> 30#include <qapplication.h>
31//Added by qt3to4:
32#include <Q3GridLayout>
33#include <Q3PtrList>
34
35#include <QDesktopWidget>
31 36
32#include <kdebug.h> 37#include <kdebug.h>
33#include <klocale.h> 38#include <klocale.h>
34#include <klineeditdlg.h> 39#include <klineeditdlg.h>
35#include <kmessagebox.h> 40#include <kmessagebox.h>
36 41
37#include <libkdepim/categoryselectdialog.h> 42#include <libkdepim/categoryselectdialog.h>
38 43
39#include "koprefs.h" 44#include "koprefs.h"
40#include "filteredit_base.h" 45#include "filteredit_base.h"
41 46
42#include "filtereditdialog.h" 47#include "filtereditdialog.h"
43//#include "filtereditdialog.moc" 48//#include "filtereditdialog.moc"
44 49
45// TODO: Make dialog work on a copy of the filters objects. 50// TODO: Make dialog work on a copy of the filters objects.
46 51
47class ComboFilterBox: public QComboBox 52class ComboFilterBox: public QComboBox
48{ 53{
49public: 54public:
50 ComboFilterBox( QWidget *parent=0, const char *name=0) : 55 ComboFilterBox( QWidget *parent=0, const char *name=0) :
51 QComboBox( parent,name ) { } 56 QComboBox( parent,name ) { }
52 void popupBox() { popup(); } 57 void popupBox() { popup(); }
53 58
54}; 59};
55 60
56FilterEditDialog::FilterEditDialog(QPtrList<CalFilter> *filters,QWidget *parent, 61FilterEditDialog::FilterEditDialog(Q3PtrList<CalFilter> *filters,QWidget *parent,
57 const char *name) : 62 const char *name) :
58 KDialogBase(parent,name,true,i18n("Edit Calendar Filters"), 63 KDialogBase(parent,name,true,i18n("Edit Calendar Filters"),
59 Ok|Apply|Cancel) 64 Ok|Apply|Cancel)
60{ 65{
61 mFilters = filters; 66 mFilters = filters;
62 67
63 QWidget *mainWidget = new QWidget(this); 68 QWidget *mainWidget = new QWidget(this);
64 setMainWidget(mainWidget); 69 setMainWidget(mainWidget);
65 70
66 mSelectionCombo = new ComboFilterBox(mainWidget); 71 mSelectionCombo = new ComboFilterBox(mainWidget);
67 connect(mSelectionCombo,SIGNAL(activated(int)),SLOT(filterSelected())); 72 connect(mSelectionCombo,SIGNAL(activated(int)),SLOT(filterSelected()));
68 // mSelectionCombo->setEditable ( true ); 73 // mSelectionCombo->setEditable ( true );
69 QPushButton *addButton = new QPushButton(i18n("Add Filter"),mainWidget); 74 QPushButton *addButton = new QPushButton(i18n("Add Filter"),mainWidget);
70 connect(addButton,SIGNAL(clicked()),SLOT(slotAdd())); 75 connect(addButton,SIGNAL(clicked()),SLOT(slotAdd()));
71 addButton->setMaximumSize( addButton->sizeHint()); 76 addButton->setMaximumSize( addButton->sizeHint());
72 mRemoveButton = new QPushButton( i18n("Remove"), mainWidget ); 77 mRemoveButton = new QPushButton( i18n("Remove"), mainWidget );
73 connect( mRemoveButton, SIGNAL( clicked() ), SLOT( slotRemove() ) ); 78 connect( mRemoveButton, SIGNAL( clicked() ), SLOT( slotRemove() ) );
74 mRemoveButton->setMaximumSize( mRemoveButton->sizeHint()); 79 mRemoveButton->setMaximumSize( mRemoveButton->sizeHint());
75 80
76 QPushButton *upButton = new QPushButton(i18n("Up"),mainWidget); 81 QPushButton *upButton = new QPushButton(i18n("Up"),mainWidget);
77 upButton->setMaximumSize( upButton->sizeHint()); 82 upButton->setMaximumSize( upButton->sizeHint());
78 connect(upButton,SIGNAL(clicked()),SLOT(slotUp())); 83 connect(upButton,SIGNAL(clicked()),SLOT(slotUp()));
79 84
80 85
81 mEditor = new FilterEdit_base(mainWidget); 86 mEditor = new FilterEdit_base(mainWidget);
82 87
83 QGridLayout *topLayout = new QGridLayout(mainWidget,2,2); 88 Q3GridLayout *topLayout = new Q3GridLayout(mainWidget,2,2);
84 topLayout->setSpacing(spacingHint()); 89 topLayout->setSpacing(spacingHint());
85 topLayout->addWidget(mSelectionCombo,0,0); 90 topLayout->addWidget(mSelectionCombo,0,0);
86 topLayout->addWidget(upButton,0,1); 91 topLayout->addWidget(upButton,0,1);
87 topLayout->addWidget(addButton,0,2); 92 topLayout->addWidget(addButton,0,2);
88 topLayout->addWidget(mRemoveButton,0,3); 93 topLayout->addWidget(mRemoveButton,0,3);
89 topLayout->addMultiCellWidget(mEditor,1,1,0,3); 94 topLayout->addMultiCellWidget(mEditor,1,1,0,3);
90 mSelectionCombo->setMaximumWidth ( QApplication::desktop()->width() - 95 mSelectionCombo->setMaximumWidth ( QApplication::desktop()->width() -
91 addButton->maximumWidth() - 96 addButton->maximumWidth() -
92 mRemoveButton->maximumWidth() - 97 mRemoveButton->maximumWidth() -
93 upButton->maximumWidth() - 98 upButton->maximumWidth() -
94 spacingHint() * 5 ); 99 spacingHint() * 5 );
95 connect(mEditor->mCatEditButton,SIGNAL(clicked()), 100 connect(mEditor->mCatEditButton,SIGNAL(clicked()),
96 SLOT(editCategorySelection())); 101 SLOT(editCategorySelection()));
97 102
98 // Clicking cancel exits the dialog without saving 103 // Clicking cancel exits the dialog without saving
99 connect(this,SIGNAL(cancelClicked()),SLOT(reject())); 104 connect(this,SIGNAL(cancelClicked()),SLOT(reject()));
100 updateFilterList(); 105 updateFilterList();
101} 106}
102 107
103FilterEditDialog::~FilterEditDialog() 108FilterEditDialog::~FilterEditDialog()
104{ 109{
105} 110}
106void FilterEditDialog::slotUp() 111void FilterEditDialog::slotUp()
107{ 112{
108 113
109 if ( mFilters->count() <= 1 ) return; 114 if ( mFilters->count() <= 1 ) return;
110 if ( mSelectionCombo->currentItem() == 0 ) return; 115 if ( mSelectionCombo->currentItem() == 0 ) return;
111 int num = mSelectionCombo->currentItem(); 116 int num = mSelectionCombo->currentItem();
112 CalFilter* f = new CalFilter( ); 117 CalFilter* f = new CalFilter( );
113 *f = *(mFilters->at( num )); 118 *f = *(mFilters->at( num ));
114 mFilters->remove( num ); 119 mFilters->remove( num );
115 mFilters->insert( num-1, f ); 120 mFilters->insert( num-1, f );
116 updateFilterList(); 121 updateFilterList();
117 mSelectionCombo->setCurrentItem( num-1 ); 122 mSelectionCombo->setCurrentItem( num-1 );
118 readFilter(f); 123 readFilter(f);
119 //qApp->processEvents(); 124 //qApp->processEvents();
120 //mSelectionCombo->popupBox(); 125 //mSelectionCombo->popupBox();
121} 126}
122void FilterEditDialog::updateFilterList() 127void FilterEditDialog::updateFilterList()
123{ 128{
124 mSelectionCombo->clear(); 129 mSelectionCombo->clear();
125 130
126 CalFilter *filter = mFilters->first(); 131 CalFilter *filter = mFilters->first();
127 132
128 if (!filter) { 133 if (!filter) {
129 enableButtonOK(false); 134 enableButtonOK(false);
130 enableButtonApply(false); 135 enableButtonApply(false);
131 } else { 136 } else {
132 while(filter) { 137 while(filter) {
133 mSelectionCombo->insertItem(filter->name()); 138 mSelectionCombo->insertItem(filter->name());
134 filter = mFilters->next(); 139 filter = mFilters->next();
135 } 140 }
136 CalFilter *f = mFilters->at(mSelectionCombo->currentItem()); 141 CalFilter *f = mFilters->at(mSelectionCombo->currentItem());
137 if (f) readFilter(f); 142 if (f) readFilter(f);
138 143
139 enableButtonOK(true); 144 enableButtonOK(true);
140 enableButtonApply(true); 145 enableButtonApply(true);
141 } 146 }
142 147
143 mRemoveButton->setEnabled( mFilters->count() > 1 ); 148 mRemoveButton->setEnabled( mFilters->count() > 1 );
144} 149}
145 150
146void FilterEditDialog::slotDefault() 151void FilterEditDialog::slotDefault()
147{ 152{
148} 153}
149 154
150void FilterEditDialog::slotApply() 155void FilterEditDialog::slotApply()
151{ 156{
152 CalFilter *f = mFilters->at(mSelectionCombo->currentItem()); 157 CalFilter *f = mFilters->at(mSelectionCombo->currentItem());
153 writeFilter(f); 158 writeFilter(f);
154 emit filterChanged(); 159 emit filterChanged();
155} 160}
156void FilterEditDialog::accept() 161void FilterEditDialog::accept()
157{ 162{
158 slotOk(); 163 slotOk();
159} 164}
160void FilterEditDialog::slotOk() 165void FilterEditDialog::slotOk()
161{ 166{
162 CalFilter *f = mFilters->at(mSelectionCombo->currentItem()); 167 CalFilter *f = mFilters->at(mSelectionCombo->currentItem());
163 writeFilter(f); 168 writeFilter(f);
164 emit filterChanged(); 169 emit filterChanged();
165 QDialog::accept(); 170 QDialog::accept();
166} 171}
167 172
168void FilterEditDialog::slotAdd() 173void FilterEditDialog::slotAdd()
169{ 174{
170 KLineEditDlg dlg(i18n("Enter filter name:"), "New Filter", this); 175 KLineEditDlg dlg(i18n("Enter filter name:"), "New Filter", this);
171 dlg.setCaption(i18n("Add Filter")); 176 dlg.setCaption(i18n("Add Filter"));
172 if (dlg.exec()) { 177 if (dlg.exec()) {
173 if ( dlg.text().length() > 0 ) { 178 if ( dlg.text().length() > 0 ) {
174 mFilters->append(new CalFilter(dlg.text())); 179 mFilters->append(new CalFilter(dlg.text()));
175 updateFilterList(); 180 updateFilterList();
176 int num = mSelectionCombo->count() -1 ; 181 int num = mSelectionCombo->count() -1 ;
177 mSelectionCombo->setCurrentItem( num ); 182 mSelectionCombo->setCurrentItem( num );
178 readFilter(mFilters->at( num ) ); 183 readFilter(mFilters->at( num ) );
179 } 184 }