-rw-r--r-- | core/pim/todo/tableview.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/core/pim/todo/tableview.cpp b/core/pim/todo/tableview.cpp index 39f0d72..8cd2e7e 100644 --- a/core/pim/todo/tableview.cpp +++ b/core/pim/todo/tableview.cpp | |||
@@ -58,209 +58,210 @@ TableView::TableView( MainWindow* window, QWidget* wid ) | |||
58 | horizontalHeader()->setLabel(1, tr("Prior.") ); | 58 | horizontalHeader()->setLabel(1, tr("Prior.") ); |
59 | horizontalHeader()->setLabel(2, tr("Description" ) ); | 59 | horizontalHeader()->setLabel(2, tr("Description" ) ); |
60 | 60 | ||
61 | setColumnStretchable(3, FALSE ); | 61 | setColumnStretchable(3, FALSE ); |
62 | setColumnWidth(3, 20 ); | 62 | setColumnWidth(3, 20 ); |
63 | horizontalHeader()->setLabel(3, tr("Deadline") ); | 63 | horizontalHeader()->setLabel(3, tr("Deadline") ); |
64 | 64 | ||
65 | if ( todoWindow()->showDeadline() ) | 65 | if ( todoWindow()->showDeadline() ) |
66 | showColumn( 3); | 66 | showColumn( 3); |
67 | else | 67 | else |
68 | hideColumn(3 ); | 68 | hideColumn(3 ); |
69 | 69 | ||
70 | connect((QTable*)this, SIGNAL( clicked( int, int, int, const QPoint& ) ), | 70 | connect((QTable*)this, SIGNAL( clicked( int, int, int, const QPoint& ) ), |
71 | this, SLOT( slotClicked(int, int, int, const QPoint& ) ) ); | 71 | this, SLOT( slotClicked(int, int, int, const QPoint& ) ) ); |
72 | connect((QTable*)this, SIGNAL( pressed( int, int, int, const QPoint& ) ), | 72 | connect((QTable*)this, SIGNAL( pressed( int, int, int, const QPoint& ) ), |
73 | this, SLOT( slotPressed(int, int, int, const QPoint& ) ) ); | 73 | this, SLOT( slotPressed(int, int, int, const QPoint& ) ) ); |
74 | connect((QTable*)this, SIGNAL(valueChanged(int, int) ), | 74 | connect((QTable*)this, SIGNAL(valueChanged(int, int) ), |
75 | this, SLOT( slotValueChanged(int, int) ) ); | 75 | this, SLOT( slotValueChanged(int, int) ) ); |
76 | connect((QTable*)this, SIGNAL(currentChanged(int, int) ), | 76 | connect((QTable*)this, SIGNAL(currentChanged(int, int) ), |
77 | this, SLOT( slotCurrentChanged(int, int) ) ); | 77 | this, SLOT( slotCurrentChanged(int, int) ) ); |
78 | 78 | ||
79 | m_menuTimer = new QTimer( this ); | 79 | m_menuTimer = new QTimer( this ); |
80 | connect( m_menuTimer, SIGNAL(timeout()), | 80 | connect( m_menuTimer, SIGNAL(timeout()), |
81 | this, SLOT(slotShowMenu()) ); | 81 | this, SLOT(slotShowMenu()) ); |
82 | 82 | ||
83 | m_enablePaint = true; | 83 | m_enablePaint = true; |
84 | setUpdatesEnabled( true ); | 84 | setUpdatesEnabled( true ); |
85 | viewport()->setUpdatesEnabled( true ); | 85 | viewport()->setUpdatesEnabled( true ); |
86 | viewport()->update(); | 86 | viewport()->update(); |
87 | } | 87 | } |
88 | /* a new day has started | 88 | /* a new day has started |
89 | * update the day | 89 | * update the day |
90 | */ | 90 | */ |
91 | void TableView::newDay() { | 91 | void TableView::newDay() { |
92 | clear(); | 92 | clear(); |
93 | setTodos( begin(),end() ); | 93 | setTodos( begin(),end() ); |
94 | } | 94 | } |
95 | TableView::~TableView() { | 95 | TableView::~TableView() { |
96 | 96 | ||
97 | } | 97 | } |
98 | void TableView::slotShowMenu() { | 98 | void TableView::slotShowMenu() { |
99 | QPopupMenu *menu = todoWindow()->contextMenu( current() ); | 99 | QPopupMenu *menu = todoWindow()->contextMenu( current() ); |
100 | menu->exec(QCursor::pos() ); | 100 | menu->exec(QCursor::pos() ); |
101 | delete menu; | 101 | delete menu; |
102 | } | 102 | } |
103 | OTodo TableView::find(int uid ) { | 103 | OTodo TableView::find(int uid ) { |
104 | OTodo ev = TodoView::event( uid ); | 104 | OTodo ev = TodoView::event( uid ); |
105 | return ev; | 105 | return ev; |
106 | } | 106 | } |
107 | void TableView::updateFromTable( const OTodo& ev, CheckItem* item ) { | 107 | void TableView::updateFromTable( const OTodo& ev, CheckItem* item ) { |
108 | TodoView::update( ev.uid(), ev ); | 108 | TodoView::update( ev.uid(), ev ); |
109 | 109 | ||
110 | /* update the other columns */ | 110 | /* update the other columns */ |
111 | /* if completed or not we need to update | 111 | /* if completed or not we need to update |
112 | * the table | 112 | * the table |
113 | * | 113 | * |
114 | * We've two cases | 114 | * We've two cases |
115 | * either item or !item | 115 | * either item or !item |
116 | * this makes cases more easy | 116 | * this makes cases more easy |
117 | */ | 117 | */ |
118 | if ( !item ) { | 118 | if ( !item ) { |
119 | item = m_cache[ev.uid()]; | 119 | item = m_cache[ev.uid()]; |
120 | } | 120 | } |
121 | DueTextItem *due = dueItem( item->row() ); | 121 | DueTextItem *due = dueItem( item->row() ); |
122 | due->setCompleted( ev.isCompleted() ); | 122 | due->setCompleted( ev.isCompleted() ); |
123 | } | 123 | } |
124 | QString TableView::type() const { | 124 | QString TableView::type() const { |
125 | return QString::fromLatin1( tr("Table View") ); | 125 | return QString::fromLatin1( tr("Table View") ); |
126 | } | 126 | } |
127 | int TableView::current() { | 127 | int TableView::current() { |
128 | int cur = 0; | 128 | int cur = 0; |
129 | CheckItem* i = checkItem( currentRow() ); | 129 | CheckItem* i = checkItem( currentRow() ); |
130 | if (i ) | 130 | if (i ) |
131 | cur = i->uid(); | 131 | cur = i->uid(); |
132 | 132 | ||
133 | return cur; | 133 | return cur; |
134 | } | 134 | } |
135 | QString TableView::currentRepresentation() { | 135 | QString TableView::currentRepresentation() { |
136 | return text( currentRow(), 2); | 136 | return text( currentRow(), 2); |
137 | } | 137 | } |
138 | /* show overdue */ | 138 | /* show overdue */ |
139 | void TableView::showOverDue( bool ) { | 139 | void TableView::showOverDue( bool ) { |
140 | clear(); | 140 | clear(); |
141 | setTodos( begin(), end() ); | 141 | setTodos( begin(), end() ); |
142 | } | 142 | } |
143 | 143 | ||
144 | void TableView::setTodos( OTodoAccess::List::Iterator it, | 144 | void TableView::setTodos( OTodoAccess::List::Iterator it, |
145 | OTodoAccess::List::Iterator end ) { | 145 | OTodoAccess::List::Iterator end ) { |
146 | qWarning("setTodos"); | 146 | qWarning("setTodos"); |
147 | QTime time; | 147 | QTime time; |
148 | time.start(); | 148 | time.start(); |
149 | m_enablePaint = false; | 149 | m_enablePaint = false; |
150 | setUpdatesEnabled( false ); | 150 | setUpdatesEnabled( false ); |
151 | viewport()->setUpdatesEnabled( false ); | 151 | viewport()->setUpdatesEnabled( false ); |
152 | clear(); | 152 | clear(); |
153 | QString currentCat = todoWindow()->currentCategory(); | 153 | QString currentCat = todoWindow()->currentCategory(); |
154 | bool showCompleted = todoWindow()->currentCatId(); | 154 | bool showCompleted = todoWindow()->showCompleted(); |
155 | bool showOverDue = todoWindow()->showOverDue(); | 155 | bool showOverDue = todoWindow()->showOverDue(); |
156 | qWarning( "Current Category:" + todoWindow()->currentCategory() ); | 156 | qWarning( "Current Category:" + todoWindow()->currentCategory() ); |
157 | int id = todoWindow()->currentCatId(); | 157 | int id = todoWindow()->currentCatId(); |
158 | QTime t; | 158 | QTime t; |
159 | t.start(); | 159 | t.start(); |
160 | setNumRows( it.count() ); | 160 | setNumRows( it.count() ); |
161 | uint i = 0; | 161 | uint i = 0; |
162 | for (; it != end; ++it ) { | 162 | for (; it != end; ++it ) { |
163 | OTodo todo = (*it); | 163 | OTodo todo = (*it); |
164 | /* test if the categories match */ | 164 | /* test if the categories match */ |
165 | if ( !currentCat.isEmpty() && | 165 | if ( !currentCat.isEmpty() && |
166 | !todo.categories().contains( id ) ) { | 166 | !todo.categories().contains( id ) ) { |
167 | continue; | 167 | continue; |
168 | } | 168 | } |
169 | /* the item is completed but we shouldn't show it */ | 169 | /* the item is completed but we shouldn't show it */ |
170 | if ( !showCompleted && todo.isCompleted() ) { | 170 | if ( !showCompleted && todo.isCompleted() ) { |
171 | qWarning("isCompleted "); | ||
171 | continue; | 172 | continue; |
172 | } | 173 | } |
173 | /* the item is not overdue but we should only show overdue */ | 174 | /* the item is not overdue but we should only show overdue */ |
174 | if ( showOverDue && !todo.isOverdue() ) { | 175 | if ( showOverDue && !todo.isOverdue() ) { |
175 | continue; | 176 | continue; |
176 | } | 177 | } |
177 | /* now it's fine to add it */ | 178 | /* now it's fine to add it */ |
178 | insertTodo( todo, i ); | 179 | insertTodo( todo, i ); |
179 | i++; | 180 | i++; |
180 | } | 181 | } |
181 | setNumRows( i ); | 182 | setNumRows( i ); |
182 | int elc = time.elapsed(); | 183 | int elc = time.elapsed(); |
183 | qWarning("Adding took %d", elc/1000 ); | 184 | qWarning("Adding took %d", elc/1000 ); |
184 | setUpdatesEnabled( true ); | 185 | setUpdatesEnabled( true ); |
185 | viewport()->setUpdatesEnabled( true ); | 186 | viewport()->setUpdatesEnabled( true ); |
186 | viewport()->update(); | 187 | viewport()->update(); |
187 | m_enablePaint = true; | 188 | m_enablePaint = true; |
188 | int el = time.elapsed(); | 189 | int el = time.elapsed(); |
189 | qWarning("adding took %d", el/1000 ); | 190 | qWarning("adding took %d", el/1000 ); |
190 | } | 191 | } |
191 | void TableView::setTodo( int uid, const OTodo& ev ) { | 192 | void TableView::setTodo( int uid, const OTodo& ev ) { |
192 | QMap<int, CheckItem*>::Iterator it = m_cache.find( uid ); | 193 | QMap<int, CheckItem*>::Iterator it = m_cache.find( uid ); |
193 | 194 | ||
194 | if ( it != m_cache.end() ) { | 195 | if ( it != m_cache.end() ) { |
195 | int row = it.data()->row(); | 196 | int row = it.data()->row(); |
196 | 197 | ||
197 | /* update checked */ | 198 | /* update checked */ |
198 | CheckItem* check = checkItem(row ); | 199 | CheckItem* check = checkItem(row ); |
199 | if (check) | 200 | if (check) |
200 | check->setChecked( ev.isCompleted() ); | 201 | check->setChecked( ev.isCompleted() ); |
201 | 202 | ||
202 | /* update the text */ | 203 | /* update the text */ |
203 | QString sum = ev.summary(); | 204 | QString sum = ev.summary(); |
204 | setText(row, 2, sum.isEmpty() ? | 205 | setText(row, 2, sum.isEmpty() ? |
205 | ev.description().left(40).simplifyWhiteSpace() : | 206 | ev.description().left(40).simplifyWhiteSpace() : |
206 | sum ); | 207 | sum ); |
207 | 208 | ||
208 | /* update priority */ | 209 | /* update priority */ |
209 | setText(row, 1, QString::number( ev.priority() ) ); | 210 | setText(row, 1, QString::number( ev.priority() ) ); |
210 | 211 | ||
211 | /* update DueDate */ | 212 | /* update DueDate */ |
212 | DueTextItem *due = dueItem( row ); | 213 | DueTextItem *due = dueItem( row ); |
213 | due->setToDoEvent( ev ); | 214 | due->setToDoEvent( ev ); |
214 | } | 215 | } |
215 | } | 216 | } |
216 | void TableView::addEvent( const OTodo& ev) { | 217 | void TableView::addEvent( const OTodo& ev) { |
217 | int row= numRows(); | 218 | int row= numRows(); |
218 | setNumRows( row + 1 ); | 219 | setNumRows( row + 1 ); |
219 | insertTodo( ev, row ); | 220 | insertTodo( ev, row ); |
220 | } | 221 | } |
221 | /* | 222 | /* |
222 | * find the event | 223 | * find the event |
223 | * and then replace the complete row | 224 | * and then replace the complete row |
224 | */ | 225 | */ |
225 | void TableView::replaceEvent( const OTodo& ev) { | 226 | void TableView::replaceEvent( const OTodo& ev) { |
226 | setTodo( ev.uid(), ev ); | 227 | setTodo( ev.uid(), ev ); |
227 | } | 228 | } |
228 | /* | 229 | /* |
229 | * re aligning table can be slow too | 230 | * re aligning table can be slow too |
230 | * FIXME: look what performs better | 231 | * FIXME: look what performs better |
231 | * either this or the old align table | 232 | * either this or the old align table |
232 | */ | 233 | */ |
233 | void TableView::removeEvent( int ) { | 234 | void TableView::removeEvent( int ) { |
234 | clear(); | 235 | clear(); |
235 | setTodos( begin(), end() ); | 236 | setTodos( begin(), end() ); |
236 | } | 237 | } |
237 | void TableView::setShowCompleted( bool b) { | 238 | void TableView::setShowCompleted( bool b) { |
238 | qWarning("Show Completed %d" + b ); | 239 | qWarning("Show Completed %d" + b ); |
239 | setTodos( begin(), end() ); | 240 | setTodos( begin(), end() ); |
240 | } | 241 | } |
241 | void TableView::setShowDeadline( bool b) { | 242 | void TableView::setShowDeadline( bool b) { |
242 | qWarning("Show DeadLine %d" + b ); | 243 | qWarning("Show DeadLine %d" + b ); |
243 | if (b) | 244 | if (b) |
244 | showColumn(3 ); | 245 | showColumn(3 ); |
245 | else | 246 | else |
246 | hideColumn(3 ); | 247 | hideColumn(3 ); |
247 | } | 248 | } |
248 | void TableView::setShowCategory( const QString& ) { | 249 | void TableView::setShowCategory( const QString& ) { |
249 | qWarning("setShowCategory"); | 250 | qWarning("setShowCategory"); |
250 | setTodos( begin(), end() ); | 251 | setTodos( begin(), end() ); |
251 | } | 252 | } |
252 | void TableView::clear() { | 253 | void TableView::clear() { |
253 | m_cache.clear(); | 254 | m_cache.clear(); |
254 | int rows = numRows(); | 255 | int rows = numRows(); |
255 | for (int r = 0; r < rows; r++ ) { | 256 | for (int r = 0; r < rows; r++ ) { |
256 | for (int c = 0; c < numCols(); c++ ) { | 257 | for (int c = 0; c < numCols(); c++ ) { |
257 | if ( cellWidget(r, c) ) | 258 | if ( cellWidget(r, c) ) |
258 | clearCellWidget(r, c ); | 259 | clearCellWidget(r, c ); |
259 | clearCell(r, c); | 260 | clearCell(r, c); |
260 | } | 261 | } |
261 | } | 262 | } |
262 | setNumRows( 0); | 263 | setNumRows( 0); |
263 | } | 264 | } |
264 | QArray<int> TableView::completed() { | 265 | QArray<int> TableView::completed() { |
265 | int row = numRows(); | 266 | int row = numRows(); |
266 | QArray<int> ids( row ); | 267 | QArray<int> ids( row ); |