Mercurial > dedupe
comparison DataController.cpp @ 78:9744ec195be3
Encapsulate EditDistance with caching.
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Thu, 10 Oct 2013 01:07:52 +0200 |
| parents | a60c26e34d1a |
| children | 848496a57039 |
comparison
equal
deleted
inserted
replaced
| 77:a827f3687c4a | 78:9744ec195be3 |
|---|---|
| 1 #include "DataController.hpp" | 1 #include "DataController.hpp" |
| 2 | 2 |
| 3 #include "CompileTimeConstants.h" | 3 #include "CompileTimeConstants.h" |
| 4 #include "ConfigurationProcessing.hpp" | 4 #include "ConfigurationProcessing.hpp" |
| 5 #include "EditDistance.hpp" | 5 #include "CachedEditDistance.hpp" |
| 6 #include "SqliteDBLink.hpp" | 6 #include "SqliteDBLink.hpp" |
| 7 | 7 |
| 8 #include "Exception/PermissionException.hpp" | 8 #include "Exception/PermissionException.hpp" |
| 9 | 9 |
| 10 #include <QtCore/QTimer> | 10 #include <QtCore/QTimer> |
| 265 QMultiMap<int, QSharedPointer<FileDBLink::DBInfo> > oList; | 265 QMultiMap<int, QSharedPointer<FileDBLink::DBInfo> > oList; |
| 266 | 266 |
| 267 int absoluteCutoff = line->name().length() * editDistanceCutoff; | 267 int absoluteCutoff = line->name().length() * editDistanceCutoff; |
| 268 foreach(QSharedPointer<FileDBLink::DBInfo> dup, elems) { | 268 foreach(QSharedPointer<FileDBLink::DBInfo> dup, elems) { |
| 269 if(dup != line) { | 269 if(dup != line) { |
| 270 int distance = EditDistance::Compute(line->name(), dup->name()); | 270 int distance = CachedEditDistance::Compute(line->name(), dup->name()); |
| 271 | 271 |
| 272 if (distance <= absoluteCutoff) { | 272 if (distance <= absoluteCutoff) { |
| 273 oList.insert(distance, dup); | 273 oList.insert(distance, dup); |
| 274 } | 274 } |
| 275 } | 275 } |
| 484 | 484 |
| 485 showFullPath = false; | 485 showFullPath = false; |
| 486 | 486 |
| 487 if (showGUI) { | 487 if (showGUI) { |
| 488 setupGUI(); | 488 setupGUI(); |
| 489 | 489 |
| 490 QTimer* populator = new QTimer(this); | 490 QTimer* populator = new QTimer(this); |
| 491 populator->setSingleShot(true); | 491 populator->setSingleShot(true); |
| 492 populator->setInterval(50); | 492 populator->setInterval(50); |
| 493 connect(populator, SIGNAL(timeout()), this, SLOT(initialPopulate())); | 493 connect(populator, SIGNAL(timeout()), this, SLOT(initialPopulate())); |
| 494 populator->start(); | 494 populator->start(); |
