Mercurial > dedupe
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 |
