Mercurial > dedupe
annotate DataController.cpp @ 115:404795616b1e default tip
Added a lot of common files to ignore
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Sat, 25 Mar 2017 17:43:57 +0100 |
| parents | 95fb1bcf7e24 |
| children |
| rev | line source |
|---|---|
|
40
f711ddb56ae7
Sort up includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
1 #include "DataController.hpp" |
|
f711ddb56ae7
Sort up includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
2 |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
3 #include "CompileTimeConstants.h" |
|
40
f711ddb56ae7
Sort up includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
4 #include "ConfigurationProcessing.hpp" |
|
78
9744ec195be3
Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
66
diff
changeset
|
5 #include "CachedEditDistance.hpp" |
|
40
f711ddb56ae7
Sort up includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
6 #include "SqliteDBLink.hpp" |
|
f711ddb56ae7
Sort up includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
34
diff
changeset
|
7 |
|
28
b2c2c2bf2bbd
Refactor Exceptions into a separate directory.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
17
diff
changeset
|
8 #include "Exception/PermissionException.hpp" |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
9 |
|
100
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
10 #include <QtCore/QDebug> |
|
9
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
11 #include <QtCore/QTimer> |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
12 #include <QtCore/QUrl> |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
13 |
|
9
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
14 #include <QtGui/QApplication> |
|
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
15 #include <QtGui/QDesktopServices> |
|
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
16 #include <QtGui/QDoubleSpinBox> |
|
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
17 #include <QtGui/QHBoxLayout> |
|
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
18 #include <QtGui/QLabel> |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
19 #include <QtGui/QMainWindow> |
|
9
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
20 #include <QtGui/QMenuBar> |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
21 #include <QtGui/QMessageBox> |
|
9
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
22 #include <QtGui/QProgressBar> |
|
b5943e4bf676
Fix up header includes.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
8
diff
changeset
|
23 #include <QtGui/QToolBar> |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
24 #include <QtGui/QTreeWidget> |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
25 |
|
10
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
26 #include <boost/filesystem.hpp> |
|
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
27 |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
28 void DataController::findFiles(const QDir& dir, QStringList& list) |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
29 { |
|
106
95fb1bcf7e24
Constant for turning follow symlinks on and off.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
104
diff
changeset
|
30 const bool FOLLOW_SYMLINKS = false; |
|
10
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
31 #if USE_BOOST_FIND |
|
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
32 namespace fs = boost::filesystem; |
|
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
33 fs::path someDir(dir.path().toStdString()); |
|
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
34 fs::directory_iterator end_iter; |
|
84
848496a57039
If a filepath cannot be interpreted, make this a non-critical error.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
78
diff
changeset
|
35 boost::system::error_code ec; |
|
10
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
36 |
|
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
37 if ( fs::exists(someDir) && fs::is_directory(someDir)) { |
|
84
848496a57039
If a filepath cannot be interpreted, make this a non-critical error.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
78
diff
changeset
|
38 for( fs::directory_iterator dir_iter(someDir, ec) ; |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
39 dir_iter != end_iter ; ++dir_iter) { |
|
84
848496a57039
If a filepath cannot be interpreted, make this a non-critical error.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
78
diff
changeset
|
40 std::wstring wpath; |
|
848496a57039
If a filepath cannot be interpreted, make this a non-critical error.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
78
diff
changeset
|
41 try { |
|
848496a57039
If a filepath cannot be interpreted, make this a non-critical error.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
78
diff
changeset
|
42 wpath = dir_iter->path().wstring(); |
|
848496a57039
If a filepath cannot be interpreted, make this a non-critical error.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
78
diff
changeset
|
43 } |
|
848496a57039
If a filepath cannot be interpreted, make this a non-critical error.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
78
diff
changeset
|
44 catch (boost::system::system_error &e) { |
|
848496a57039
If a filepath cannot be interpreted, make this a non-critical error.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
78
diff
changeset
|
45 printf("%s\n", dir_iter->path().c_str()); |
|
89
cfd2a417475a
Avoid multiple filesystem searches.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
84
diff
changeset
|
46 std::cout << e.what() << std::endl; |
|
10
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
47 } |
|
84
848496a57039
If a filepath cannot be interpreted, make this a non-critical error.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
78
diff
changeset
|
48 if (!wpath.empty()) { |
|
106
95fb1bcf7e24
Constant for turning follow symlinks on and off.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
104
diff
changeset
|
49 if (fs::is_directory(FOLLOW_SYMLINKS? |
|
95fb1bcf7e24
Constant for turning follow symlinks on and off.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
104
diff
changeset
|
50 dir_iter->status(): |
|
95fb1bcf7e24
Constant for turning follow symlinks on and off.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
104
diff
changeset
|
51 dir_iter->symlink_status()) |
|
95fb1bcf7e24
Constant for turning follow symlinks on and off.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
104
diff
changeset
|
52 ) { |
|
84
848496a57039
If a filepath cannot be interpreted, make this a non-critical error.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
78
diff
changeset
|
53 findFiles(QString::fromStdWString(wpath), list); |
|
848496a57039
If a filepath cannot be interpreted, make this a non-critical error.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
78
diff
changeset
|
54 } |
|
106
95fb1bcf7e24
Constant for turning follow symlinks on and off.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
104
diff
changeset
|
55 else if (fs::is_regular_file(dir_iter->symlink_status()) ) { |
|
84
848496a57039
If a filepath cannot be interpreted, make this a non-critical error.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
78
diff
changeset
|
56 list << QString::fromStdWString(wpath); |
|
848496a57039
If a filepath cannot be interpreted, make this a non-critical error.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
78
diff
changeset
|
57 } |
|
10
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
58 } |
|
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
59 } |
|
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
60 } |
|
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
61 #else |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
62 foreach(QString filename, dir.entryList(QDir::NoDotAndDotDot | QDir::Dirs)) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
63 filename = dir.absoluteFilePath(filename); |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
64 findFiles(QDir(filename), list); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
65 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
66 |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
67 foreach(QString filename, dir.entryList(QDir::Files | QDir::NoSymLinks)) { |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
68 list << dir.absoluteFilePath(filename); |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
69 } |
|
10
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
70 #endif |
|
ec87a79770ee
Use boost find, to work around problems with QDir.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
9
diff
changeset
|
71 |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
72 } |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
73 |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
74 QStringList DataController::findFiles(const QDir& dir) |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
75 { |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
76 QStringList list; |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
77 findFiles(dir, list); |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
78 return list; |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
79 } |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
80 |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
81 void DataController::findFiles(const QDir& dir, FileDBLink& dblink) |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
82 { |
|
89
cfd2a417475a
Avoid multiple filesystem searches.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
84
diff
changeset
|
83 QStringList paths = findFiles(dir); |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
84 |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
85 QDateTime last = QDateTime::currentDateTime(); |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
86 |
|
100
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
87 qDebug() << "Start Delete"; |
|
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
88 dblink.keepOnlyFromPrefix(dir.path(), paths, true); |
|
104
6bc013d5788b
Avoid unnecessary updates.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
100
diff
changeset
|
89 dblink.commit(dir.path(), false); |
|
100
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
90 qDebug() << "End Delete"; |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
91 |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
92 std::auto_ptr<QProgressBar> bar; |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
93 |
|
89
cfd2a417475a
Avoid multiple filesystem searches.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
84
diff
changeset
|
94 progressMax = paths.size(); |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
95 |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
96 if (showGUI) { |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
97 bar = std::auto_ptr<QProgressBar>(new QProgressBar()); |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
98 |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
99 bar->resize(200,25); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
100 bar->setValue(0); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
101 bar->setMinimum(0); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
102 bar->setMaximum(progressMax); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
103 bar->show(); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
104 |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
105 connect(this, SIGNAL(populateProgress(int)), |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
106 bar.get(), SLOT(setValue(int))); |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
107 } |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
108 |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
109 int n = 0; |
|
93
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
110 int max = paths.size(); |
|
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
111 emit populateProgress(n, max); |
|
89
cfd2a417475a
Avoid multiple filesystem searches.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
84
diff
changeset
|
112 |
|
cfd2a417475a
Avoid multiple filesystem searches.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
84
diff
changeset
|
113 foreach(QString filename, paths) { |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
114 try { |
|
93
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
115 dblink.updateIfModified(filename, true); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
116 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
117 catch (const PermissionException& e) { |
|
14
e60d6caceb62
Fix error in boost findfile traversal.
Tom Fredrik Blenning Klaussen <bfg@sim.no>
parents:
10
diff
changeset
|
118 dblink.deleteFileFromDB(filename); |
|
e60d6caceb62
Fix error in boost findfile traversal.
Tom Fredrik Blenning Klaussen <bfg@sim.no>
parents:
10
diff
changeset
|
119 } |
|
e60d6caceb62
Fix error in boost findfile traversal.
Tom Fredrik Blenning Klaussen <bfg@sim.no>
parents:
10
diff
changeset
|
120 catch (const IOException& e) { |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
121 //FIXME: We have some strange errors, avoid them by ignoring |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
122 //them for now |
|
14
e60d6caceb62
Fix error in boost findfile traversal.
Tom Fredrik Blenning Klaussen <bfg@sim.no>
parents:
10
diff
changeset
|
123 dblink.deleteFileFromDB(filename); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
124 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
125 catch (Exception& e) { |
|
8
d7b384b4a834
Fix compilation problems.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
126 e.raise(); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
127 } |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
128 |
|
93
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
129 emit populateProgress(++n, max); |
|
34
fda70a362ed5
Remove whitespace.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
130 |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
131 QDateTime now = QDateTime::currentDateTime(); |
|
66
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
132 if (last.msecsTo(now) > 1000) { |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
133 QCoreApplication::processEvents(); |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
134 last = now; |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
135 } |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
136 } |
|
96
c7da835ea912
Support for prefix in commit.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
93
diff
changeset
|
137 dblink.commit(dir.path()); |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
138 |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
139 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
140 |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
141 |
| 1 | 142 QTreeWidgetItem* DataController::createItem(const FileDBLink::DBInfo& info) |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
143 { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
144 QTreeWidgetItem* item = new QTreeWidgetItem(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
145 item->setData(0, Qt::DisplayRole, info.name()); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
146 item->setData(0, 32, info.path()); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
147 item->setData(0, 33, info.name()); |
|
34
fda70a362ed5
Remove whitespace.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
148 |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
149 item->setData(1, Qt::DisplayRole, info.size()); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
150 item->setData(2, Qt::DisplayRole, info.mtime()); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
151 item->setData(3, Qt::DisplayRole, info.checksum().toHex()); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
152 return item; |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
153 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
154 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
155 void DataController::delayPopulate() |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
156 { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
157 populateDelay->start(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
158 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
159 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
160 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
161 void DataController::populate() |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
162 { |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
163 populate(nameFilter->isChecked(), sizeFilter->isChecked(), |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
164 mtimeFilter->isChecked(), |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
165 checksumFilter->isChecked(), |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
166 (100 - editCutoffSpin->value()) * .01); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
167 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
168 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
169 void DataController::populate(bool showNameDups, bool showSizeDups, |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
170 bool showMTimeDups, bool showCheckSumDups, |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
171 float editDistanceCutoff) |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
172 { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
173 tw->clear(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
174 |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
175 const QList<QSharedPointer<FileDBLink::DBInfo> > elems = |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
176 dblink->values(dir.path()); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
177 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
178 QProgressBar bar; |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
179 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
180 bar.resize(200,25); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
181 bar.setValue(0); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
182 bar.setMinimum(0); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
183 bar.setMaximum(elems.size()); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
184 bar.show(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
185 |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
186 connect(this, SIGNAL(populateProgress(int)), |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
187 &bar, SLOT(setValue(int))); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
188 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
189 int n = 0; |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
190 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
191 tw->setUpdatesEnabled(false); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
192 |
|
34
fda70a362ed5
Remove whitespace.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
193 |
|
3
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
194 QMultiMap<QString, QSharedPointer<FileDBLink::DBInfo> > nameLUP; |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
195 QMultiMap<quint64, QSharedPointer<FileDBLink::DBInfo> > sizeLUP; |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
196 QMultiMap<QDateTime, QSharedPointer<FileDBLink::DBInfo> > mtimeLUP; |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
197 QMultiMap<QByteArray, QSharedPointer<FileDBLink::DBInfo> > checksumLUP; |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
198 |
|
93
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
199 int max = elems.size() - 1; |
|
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
200 |
|
3
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
201 foreach(QSharedPointer<FileDBLink::DBInfo> line, elems) { |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
202 if (showNameDups) { |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
203 nameLUP.insertMulti(line->name(), line); |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
204 } |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
205 if (showSizeDups) { |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
206 sizeLUP.insertMulti(line->size(), line); |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
207 } |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
208 if (showMTimeDups) { |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
209 mtimeLUP.insertMulti(line->mtime(), line); |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
210 } |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
211 if (showCheckSumDups) { |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
212 checksumLUP.insertMulti(line->checksum(), line); |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
213 } |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
214 } |
|
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
215 |
| 1 | 216 foreach(QSharedPointer<FileDBLink::DBInfo> line, elems) { |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
217 QTreeWidgetItem* item = 0; |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
218 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
219 if (showNameDups) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
220 QTreeWidgetItem* topLevelItem = 0; |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
221 foreach(QSharedPointer<FileDBLink::DBInfo> dup, |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
222 nameLUP.values(line->name())) { |
|
3
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
223 if(dup != line) { |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
224 if (!topLevelItem) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
225 topLevelItem = new QTreeWidgetItem(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
226 topLevelItem->setData(0, Qt::DisplayRole, "Name"); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
227 if(!item) |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
228 item = createItem(*line); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
229 item->addChild(topLevelItem); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
230 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
231 topLevelItem->addChild(createItem(*dup)); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
232 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
233 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
234 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
235 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
236 if (showSizeDups) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
237 QTreeWidgetItem* topLevelItem = 0; |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
238 foreach(QSharedPointer<FileDBLink::DBInfo> dup, |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
239 sizeLUP.values(line->size())) { |
|
3
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
240 if(dup != line ) { |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
241 if (!topLevelItem) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
242 topLevelItem = new QTreeWidgetItem(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
243 topLevelItem->setData(0, Qt::DisplayRole, "Size"); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
244 if(!item) |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
245 item = createItem(*line); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
246 item->addChild(topLevelItem); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
247 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
248 topLevelItem->addChild(createItem(*dup)); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
249 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
250 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
251 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
252 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
253 if (showMTimeDups) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
254 QTreeWidgetItem* topLevelItem = 0; |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
255 foreach(QSharedPointer<FileDBLink::DBInfo> dup, |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
256 mtimeLUP.values(line->mtime())) { |
|
3
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
257 if(dup != line ) { |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
258 if (!topLevelItem) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
259 topLevelItem = new QTreeWidgetItem(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
260 topLevelItem->setData(0, Qt::DisplayRole, "MTime"); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
261 if(!item) |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
262 item = createItem(*line); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
263 item->addChild(topLevelItem); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
264 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
265 topLevelItem->addChild(createItem(*dup)); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
266 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
267 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
268 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
269 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
270 if (showCheckSumDups) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
271 QTreeWidgetItem* topLevelItem = 0; |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
272 foreach(QSharedPointer<FileDBLink::DBInfo> dup, |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
273 checksumLUP.values(line->checksum())) { |
|
3
7a44ba08673d
Using LUTs for all filters.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
2
diff
changeset
|
274 if(dup != line) { |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
275 if (!topLevelItem) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
276 topLevelItem = new QTreeWidgetItem(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
277 topLevelItem->setData(0, Qt::DisplayRole, "Checksum"); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
278 if(!item) |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
279 item = createItem(*line); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
280 item->addChild(topLevelItem); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
281 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
282 topLevelItem->addChild(createItem(*dup)); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
283 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
284 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
285 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
286 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
287 if (editDistanceCutoff < 1.0) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
288 QTreeWidgetItem* topLevelItem = 0; |
| 1 | 289 QMultiMap<int, QSharedPointer<FileDBLink::DBInfo> > oList; |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
290 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
291 int absoluteCutoff = line->name().length() * editDistanceCutoff; |
| 1 | 292 foreach(QSharedPointer<FileDBLink::DBInfo> dup, elems) { |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
293 if(dup != line) { |
|
78
9744ec195be3
Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
66
diff
changeset
|
294 int distance = CachedEditDistance::Compute(line->name(), dup->name()); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
295 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
296 if (distance <= absoluteCutoff) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
297 oList.insert(distance, dup); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
298 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
299 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
300 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
301 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
302 if (oList.size() > 0 ) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
303 topLevelItem = new QTreeWidgetItem(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
304 topLevelItem->setData(0, Qt::DisplayRole, "Editdistance"); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
305 if(!item) |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
306 item = createItem(*line); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
307 item->addChild(topLevelItem); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
308 } |
|
34
fda70a362ed5
Remove whitespace.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
309 |
| 1 | 310 foreach(QSharedPointer<FileDBLink::DBInfo> dup, oList.values()) { |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
311 topLevelItem->addChild(createItem(*dup)); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
312 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
313 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
314 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
315 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
316 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
317 if (item) |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
318 tw->addTopLevelItem(item); |
|
93
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
319 emit populateProgress(++n, max); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
320 if (n % 64 == 0) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
321 QCoreApplication::processEvents(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
322 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
323 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
324 tw->setUpdatesEnabled(true); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
325 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
326 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
327 |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
328 void DataController::contextMenuRequested(const QPoint& point) |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
329 { |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
330 contextMenuItem = tw->itemAt(point); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
331 if (!contextMenu) { |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
332 contextMenu = new QMenu(tw); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
333 QAction* deleteAction = contextMenu->addAction("Delete"); |
|
34
fda70a362ed5
Remove whitespace.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
334 connect(deleteAction, SIGNAL(triggered()), this, SLOT(deleteFile())); |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
335 } |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
336 contextMenu->popup(tw->mapToGlobal(point)); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
337 } |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
338 |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
339 |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
340 void DataController::setDir(const QDir& dir) |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
341 { |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
342 this->dir = dir.absolutePath(); |
|
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
343 } |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
344 |
|
4
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
345 void DataController::buildDB(const QDir& dir) |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
346 { |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
347 findFiles(dir, *dblink); |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
348 } |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
349 |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
350 |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
351 void DataController::setupGUI() |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
352 { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
353 populateDelay = new QTimer(this); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
354 populateDelay->setSingleShot(true); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
355 populateDelay->setInterval(500); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
356 connect(populateDelay, SIGNAL(timeout()), this, SLOT(populate())); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
357 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
358 mw = new QMainWindow(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
359 QMenuBar* mb = new QMenuBar(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
360 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
361 QMenu* menu = mb->addMenu("&View"); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
362 QAction* action = menu->addAction("Show full path"); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
363 action->setCheckable(true); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
364 connect(action, SIGNAL(toggled(bool)), this, SLOT(setShowFullPath(bool))); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
365 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
366 mw->setMenuBar(mb); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
367 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
368 QToolBar* filterBar = new QToolBar("Filters"); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
369 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
370 nameFilter = filterBar->addAction("Name"); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
371 nameFilter->setCheckable(true); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
372 connect(nameFilter, SIGNAL(toggled(bool)), this, SLOT(delayPopulate())); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
373 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
374 sizeFilter = filterBar->addAction("Size"); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
375 sizeFilter->setCheckable(true); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
376 connect(sizeFilter, SIGNAL(toggled(bool)), this, SLOT(delayPopulate())); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
377 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
378 mtimeFilter = filterBar->addAction("MTime"); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
379 mtimeFilter->setCheckable(true); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
380 connect(mtimeFilter, SIGNAL(toggled(bool)), this, SLOT(delayPopulate())); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
381 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
382 checksumFilter = filterBar->addAction("Checksum"); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
383 checksumFilter->setCheckable(true); |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
384 checksumFilter->setChecked(true); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
385 connect(checksumFilter, SIGNAL(toggled(bool)), this, SLOT(delayPopulate())); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
386 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
387 QWidget* widget = new QWidget(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
388 QLayout* layout = new QHBoxLayout(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
389 layout->setContentsMargins(0,0,0,0); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
390 widget->setLayout(layout); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
391 layout->addWidget(new QLabel("Edit distance", widget)); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
392 editCutoffSpin = new QSpinBox(widget); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
393 layout->addWidget(editCutoffSpin); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
394 editCutoffSpin->setMinimum(0); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
395 editCutoffSpin->setMaximum(100); |
|
2
2833b7f8884a
Sql backend is working.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
1
diff
changeset
|
396 editCutoffSpin->setValue(0); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
397 editCutoffSpin->setSingleStep(10); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
398 editCutoffSpin->setSuffix("%"); |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
399 connect(editCutoffSpin, SIGNAL(valueChanged(int)), |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
400 this, SLOT(delayPopulate())); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
401 filterBar->addWidget(widget); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
402 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
403 mw->addToolBar(filterBar); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
404 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
405 tw = new QTreeWidget(mw); |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
406 tw->setContextMenuPolicy( Qt::CustomContextMenu); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
407 connect(tw, SIGNAL(customContextMenuRequested (const QPoint&)), |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
408 this, SLOT(contextMenuRequested(const QPoint&))); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
409 connect(tw, SIGNAL(itemDoubleClicked(QTreeWidgetItem*, int)), |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
410 this, SLOT(itemDoubleClicked(QTreeWidgetItem*, int))); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
411 |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
412 mw->setCentralWidget(tw); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
413 tw->setEditTriggers(QAbstractItemView::NoEditTriggers); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
414 |
|
34
fda70a362ed5
Remove whitespace.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
415 tw->setHeaderLabels(QString("Path;Size;Date;Checksum").split(";")); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
416 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
417 tw->setSortingEnabled(true); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
418 tw->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
419 tw->setSelectionBehavior(QAbstractItemView::SelectRows); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
420 //tw->resizeColumnsToContents(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
421 mw->resize(800,800); |
|
66
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
422 mw->setEnabled(false); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
423 mw->show(); |
|
4
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
424 } |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
425 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
426 |
|
4
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
427 DataController::DataController(const QString& path, bool showGUI) |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
428 { |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
429 setup(QString(), path, showGUI); |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
430 } |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
431 |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
432 DataController::DataController(bool showGUI) |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
433 { |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
434 setup(QString(), QString(), showGUI); |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
435 } |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
436 |
|
93
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
437 void DataController::progressUpdate(int p, int max) |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
438 { |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
439 QString str; |
|
100
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
440 if (max == 0) { |
|
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
441 str.sprintf("Progress %6.2f%%", 100.0); |
|
8
d7b384b4a834
Fix compilation problems.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
442 } |
|
d7b384b4a834
Fix compilation problems.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
443 else { |
|
100
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
444 if (p == 0) |
|
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
445 str.sprintf("Progress %6.2f%%", p * 100.0 / max); |
|
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
446 else if (p == max) { |
|
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
447 str.sprintf("\b\b\b\b\b\b\b%6.2f%%\n", 100.0); |
|
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
448 } |
|
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
449 else { |
|
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
450 str.sprintf("\b\b\b\b\b\b\b%6.2f%%", p * 100.0 / max); |
|
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
451 } |
|
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
452 } |
|
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
453 if (p == max) { |
|
f4ebbfa3ffae
Beautify progressreport update, and do lstat rather than stat when checking if a file is a link
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
96
diff
changeset
|
454 str+="\n"; |
|
8
d7b384b4a834
Fix compilation problems.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
7
diff
changeset
|
455 } |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
456 std::cout<<str.toStdString(); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
457 std::cout.flush(); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
458 } |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
459 |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
460 |
|
93
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
461 void DataController::progressUpdate(int p) |
|
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
462 { |
|
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
463 progressUpdate(p, progressMax); |
|
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
464 } |
|
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
465 |
|
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
466 |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
467 void DataController::deleteFile() |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
468 { |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
469 QString path = contextMenuItem->data(0, 32).toString(); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
470 QMessageBox::StandardButton button = |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
471 QMessageBox::question(tw, "Confirm delete", |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
472 QString("Do you really want to delete \"%1\"?") |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
473 .arg(path), |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
474 QMessageBox::Cancel | QMessageBox::Ok, |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
475 QMessageBox::Cancel); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
476 if (button == QMessageBox::Ok) { |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
477 QFile file(path); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
478 if (file.remove()) { |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
479 dblink->deleteFileFromDB(path); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
480 populate(); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
481 } |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
482 else { |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
483 QMessageBox::warning(tw, "Delete failed", |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
484 QString("Could not delete \"%1\"?") |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
485 .arg(file.fileName())); |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
486 } |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
487 } |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
488 } |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
489 |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
490 |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
491 void DataController::itemDoubleClicked (QTreeWidgetItem * item, int column) |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
492 { |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
493 QUrl url = QUrl::fromLocalFile(item->data(0, 32).toString()); |
|
34
fda70a362ed5
Remove whitespace.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
31
diff
changeset
|
494 QDesktopServices::openUrl(url); |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
495 } |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
496 |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
497 void DataController::setup(const QString& dbpath_in, |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
498 const QString& searchPath_in, bool showGUI) |
|
4
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
499 { |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
500 this->showGUI = showGUI; |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
501 |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
502 contextMenu = 0; |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
503 |
|
93
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
504 connect(this, SIGNAL(populateProgress(int, int)), |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
505 this, SLOT(progressUpdate(int))); |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
506 |
|
4
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
507 QString dbpath; |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
508 if (dbpath_in.size() > 0) { |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
509 dbpath = dbpath_in; |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
510 } |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
511 else { |
|
16
06166d6c083b
Add configuration processing.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
14
diff
changeset
|
512 dbpath = processSetupVariables(DB_DEFAULT_LOCATION); |
|
4
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
513 } |
|
7
d6fdca3bf24e
Make sure everything works for MemoryDBLink.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
514 |
|
d6fdca3bf24e
Make sure everything works for MemoryDBLink.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
515 #if 1 |
|
4
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
516 dblink = new SqliteDBLink(dbpath); |
|
7
d6fdca3bf24e
Make sure everything works for MemoryDBLink.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
517 #else |
|
d6fdca3bf24e
Make sure everything works for MemoryDBLink.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
518 dblink = new MemoryDBLink(); |
|
d6fdca3bf24e
Make sure everything works for MemoryDBLink.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
5
diff
changeset
|
519 #endif |
|
4
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
520 |
|
93
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
521 connect(dblink, SIGNAL(progressUpdate(int, int)), |
|
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
522 this, SLOT(progressUpdate(int, int))); |
|
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
523 |
|
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
524 |
|
308a718812ba
Small refactoring to allow lazy commits.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
89
diff
changeset
|
525 |
|
4
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
526 setDir((searchPath_in.size() > 0) ? searchPath_in : QDir(".")); |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
527 |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
528 showFullPath = false; |
|
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
529 |
|
66
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
530 if (showGUI) { |
|
4
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
531 setupGUI(); |
|
78
9744ec195be3
Encapsulate EditDistance with caching.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
66
diff
changeset
|
532 |
|
66
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
533 QTimer* populator = new QTimer(this); |
|
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
534 populator->setSingleShot(true); |
|
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
535 populator->setInterval(50); |
|
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
536 connect(populator, SIGNAL(timeout()), this, SLOT(initialPopulate())); |
|
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
537 populator->start(); |
|
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
538 } |
|
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
539 else { |
|
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
540 buildDB(dir); |
|
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
541 } |
|
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
542 } |
|
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
543 |
|
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
544 void DataController::initialPopulate() |
|
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
545 { |
|
4
f489b0c9bf99
Refactored to allow commandline tools to use DataController.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
3
diff
changeset
|
546 buildDB(dir); |
|
66
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
547 populate(); |
|
a60c26e34d1a
Avoid apprent hang in beginning, now application shows, but appears frosen.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
548 mw->setEnabled(true); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
549 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
550 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
551 DataController::~DataController() |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
552 { |
|
17
9a1825df8418
Plug memoryleaks.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
16
diff
changeset
|
553 delete dblink; |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
554 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
555 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
556 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
557 void DataController::cellDoubleClicked(int row, int column) |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
558 { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
559 if(column == 0) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
560 toggleShowFullPath(); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
561 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
562 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
563 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
564 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
565 void DataController::setShowFullPath(bool showFullPath) |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
566 { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
567 this->showFullPath = showFullPath; |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
568 |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
569 tw->setSortingEnabled(false); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
570 |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
571 int role = (showFullPath) ? 32 : 33; |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
572 for (int row = 0; row < tw->topLevelItemCount(); ++row) { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
573 QTreeWidgetItem* pathItem = tw->topLevelItem(row); |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
574 pathItem->setData(0, Qt::DisplayRole, pathItem->data(0, role)); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
575 setShowFullPath(pathItem, showFullPath); |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
576 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
577 tw->setSortingEnabled(true); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
578 } |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
579 |
|
5
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
580 void DataController::setShowFullPath(QTreeWidgetItem* item, bool showFullPath) |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
581 { |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
582 int role = (showFullPath) ? 32 : 33; |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
583 for (int row = 0; row < item->childCount(); ++row) { |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
584 QTreeWidgetItem* child = item->child(row); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
585 QVariant data = child->data(0,role); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
586 if (data.isValid()) |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
587 child->setData(0, Qt::DisplayRole, data); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
588 setShowFullPath(child, showFullPath); |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
589 } |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
590 } |
|
5e4985407feb
Add commandline tool updateDeDupe.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
4
diff
changeset
|
591 |
|
0
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
592 bool DataController::toggleShowFullPath() |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
593 { |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
594 bool showFullPath = ! this->showFullPath; |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
595 setShowFullPath(showFullPath); |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
596 return showFullPath; |
|
a3834af36579
Working with memory backend.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
597 } |
