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();