comparison DataController.cpp @ 8:d7b384b4a834

Fix compilation problems. Fix printing issues. Introduce raise function in Exception.
author Tom Fredrik Blenning Klaussen <bfg@blenning.no>
date Wed, 22 Aug 2012 18:18:20 +0200
parents d6fdca3bf24e
children b5943e4bf676
comparison
equal deleted inserted replaced
7:d6fdca3bf24e 8:d7b384b4a834
28 #include <QtGui/QLabel> 28 #include <QtGui/QLabel>
29 #include <QtGui/QHBoxLayout> 29 #include <QtGui/QHBoxLayout>
30 #include <QtGui/QProgressBar> 30 #include <QtGui/QProgressBar>
31 31
32 #include "EditDistance.hpp" 32 #include "EditDistance.hpp"
33 #include <memory>
33 34
34 void DataController::findFiles(const QDir& dir, QStringList& list) 35 void DataController::findFiles(const QDir& dir, QStringList& list)
35 { 36 {
36 foreach(QString filename, dir.entryList(QDir::NoDotAndDotDot | QDir::Dirs)) { 37 foreach(QString filename, dir.entryList(QDir::NoDotAndDotDot | QDir::Dirs)) {
37 filename = dir.absoluteFilePath(filename); 38 filename = dir.absoluteFilePath(filename);
38 findFiles(QDir(filename), list); 39 findFiles(QDir(filename), list);
39 } 40 }
40 41
42 qDebug() << dir.entryList(QDir::Files | QDir::NoSymLinks);
43
41 foreach(QString filename, dir.entryList(QDir::Files | QDir::NoSymLinks)) { 44 foreach(QString filename, dir.entryList(QDir::Files | QDir::NoSymLinks)) {
45 qDebug() << filename;
42 list << dir.absoluteFilePath(filename); 46 list << dir.absoluteFilePath(filename);
43 } 47 }
44 } 48 }
45 49
46 QStringList DataController::findFiles(const QDir& dir) 50 QStringList DataController::findFiles(const QDir& dir)
73 77
74 connect(this, SIGNAL(populateProgress(int)), bar.get(), SLOT(setValue(int))); 78 connect(this, SIGNAL(populateProgress(int)), bar.get(), SLOT(setValue(int)));
75 } 79 }
76 80
77 int n = 0; 81 int n = 0;
82 emit populateProgress(n);
78 foreach(QString filename, findFiles(dir)) { 83 foreach(QString filename, findFiles(dir)) {
79 try { 84 try {
80 dblink.updateIfModified(filename); 85 dblink.updateIfModified(filename);
81 } 86 }
82 catch (const PermissionException& e) { 87 catch (const PermissionException& e) {
83 qDebug() << e.toString(); 88 qDebug() << e.toString();
84 } 89 }
85 catch (Exception& e) { 90 catch (Exception& e) {
86 qDebug() << e.toString(); 91 qDebug() << e.toString();
87 exit(1); 92 e.raise();
88 } 93 }
89 94
90 emit populateProgress(++n); 95 emit populateProgress(++n);
91 96
92 QDateTime now = QDateTime::currentDateTime(); 97 QDateTime now = QDateTime::currentDateTime();
167 } 172 }
168 } 173 }
169 174
170 foreach(QSharedPointer<FileDBLink::DBInfo> line, elems) { 175 foreach(QSharedPointer<FileDBLink::DBInfo> line, elems) {
171 QTreeWidgetItem* item = 0; 176 QTreeWidgetItem* item = 0;
172 bool anyAdded = false;
173 177
174 if (showNameDups) { 178 if (showNameDups) {
175 QTreeWidgetItem* topLevelItem = 0; 179 QTreeWidgetItem* topLevelItem = 0;
176 foreach(QSharedPointer<FileDBLink::DBInfo> dup, nameLUP.values(line->name())) { 180 foreach(QSharedPointer<FileDBLink::DBInfo> dup, nameLUP.values(line->name())) {
177 if(dup != line) { 181 if(dup != line) {
179 topLevelItem = new QTreeWidgetItem(); 183 topLevelItem = new QTreeWidgetItem();
180 topLevelItem->setData(0, Qt::DisplayRole, "Name"); 184 topLevelItem->setData(0, Qt::DisplayRole, "Name");
181 if(!item) 185 if(!item)
182 item = createItem(*line); 186 item = createItem(*line);
183 item->addChild(topLevelItem); 187 item->addChild(topLevelItem);
184 anyAdded = true;
185 } 188 }
186 topLevelItem->addChild(createItem(*dup)); 189 topLevelItem->addChild(createItem(*dup));
187 } 190 }
188 } 191 }
189 } 192 }
196 topLevelItem = new QTreeWidgetItem(); 199 topLevelItem = new QTreeWidgetItem();
197 topLevelItem->setData(0, Qt::DisplayRole, "Size"); 200 topLevelItem->setData(0, Qt::DisplayRole, "Size");
198 if(!item) 201 if(!item)
199 item = createItem(*line); 202 item = createItem(*line);
200 item->addChild(topLevelItem); 203 item->addChild(topLevelItem);
201 anyAdded = true;
202 } 204 }
203 topLevelItem->addChild(createItem(*dup)); 205 topLevelItem->addChild(createItem(*dup));
204 } 206 }
205 } 207 }
206 } 208 }
213 topLevelItem = new QTreeWidgetItem(); 215 topLevelItem = new QTreeWidgetItem();
214 topLevelItem->setData(0, Qt::DisplayRole, "MTime"); 216 topLevelItem->setData(0, Qt::DisplayRole, "MTime");
215 if(!item) 217 if(!item)
216 item = createItem(*line); 218 item = createItem(*line);
217 item->addChild(topLevelItem); 219 item->addChild(topLevelItem);
218 anyAdded = true;
219 } 220 }
220 topLevelItem->addChild(createItem(*dup)); 221 topLevelItem->addChild(createItem(*dup));
221 } 222 }
222 } 223 }
223 } 224 }
230 topLevelItem = new QTreeWidgetItem(); 231 topLevelItem = new QTreeWidgetItem();
231 topLevelItem->setData(0, Qt::DisplayRole, "Checksum"); 232 topLevelItem->setData(0, Qt::DisplayRole, "Checksum");
232 if(!item) 233 if(!item)
233 item = createItem(*line); 234 item = createItem(*line);
234 item->addChild(topLevelItem); 235 item->addChild(topLevelItem);
235 anyAdded = true;
236 } 236 }
237 topLevelItem->addChild(createItem(*dup)); 237 topLevelItem->addChild(createItem(*dup));
238 } 238 }
239 } 239 }
240 } 240 }
258 topLevelItem = new QTreeWidgetItem(); 258 topLevelItem = new QTreeWidgetItem();
259 topLevelItem->setData(0, Qt::DisplayRole, "Editdistance"); 259 topLevelItem->setData(0, Qt::DisplayRole, "Editdistance");
260 if(!item) 260 if(!item)
261 item = createItem(*line); 261 item = createItem(*line);
262 item->addChild(topLevelItem); 262 item->addChild(topLevelItem);
263 anyAdded = true;
264 } 263 }
265 264
266 foreach(QSharedPointer<FileDBLink::DBInfo> dup, oList.values()) { 265 foreach(QSharedPointer<FileDBLink::DBInfo> dup, oList.values()) {
267 topLevelItem->addChild(createItem(*dup)); 266 topLevelItem->addChild(createItem(*dup));
268 } 267 }
393 void DataController::progressUpdate(int p) 392 void DataController::progressUpdate(int p)
394 { 393 {
395 QString str; 394 QString str;
396 if (p == 0) 395 if (p == 0)
397 str.sprintf("Progress %6.2f%%", p * 100.0 / progressMax); 396 str.sprintf("Progress %6.2f%%", p * 100.0 / progressMax);
398 else 397 else if (p == progressMax) {
399 str.sprintf("\b\b\b\b\b\b%6.2f%%", p * 100.0 / progressMax); 398 str.sprintf("\b\b\b\b\b\b\b%6.2f%%\n", 100.0);
399 }
400 else {
401 str.sprintf("\b\b\b\b\b\b\b%6.2f%%", p * 100.0 / progressMax);
402 }
400 std::cout<<str.toStdString(); 403 std::cout<<str.toStdString();
401 std::cout.flush(); 404 std::cout.flush();
402 } 405 }
403 406
404 407