1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
/*
Copyright (C) 2012 Andras Mantia <amantia@kde.org>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "keycache.h"
#include <QDir>
KeyCache* KeyCache::mSelf = 0;
void KeyCache::addKeys( const QString& dir )
{
if ( !mNewKeys.contains( dir ) ) {
mNewKeys.insert( dir, listNew( dir ) );
//kDebug() << "Added new keys for: " << dir;
}
if ( !mCurKeys.contains( dir ) ) {
mCurKeys.insert( dir, listCurrent( dir ) );
//kDebug() << "Added cur keys for: " << dir;
}
}
void KeyCache::refreshKeys( const QString& dir )
{
mNewKeys.remove( dir );
mCurKeys.remove( dir );
addKeys( dir );
}
void KeyCache::addNewKey( const QString& dir, const QString& key )
{
mNewKeys[dir].insert( key );
// kDebug() << "Added new key for : " << dir << " key: " << key;
}
void KeyCache::addCurKey( const QString& dir, const QString& key )
{
mCurKeys[dir].insert( key );
// kDebug() << "Added cur key for : " << dir << " key:" << key;
}
void KeyCache::removeKey( const QString& dir, const QString& key )
{
//kDebug() << "Removed new and cur key for: " << dir << " key:" << key;
mNewKeys[dir].remove( key );
mCurKeys[dir].remove( key );
}
bool KeyCache::isCurKey( const QString& dir, const QString& key ) const
{
return mCurKeys.value( dir ).contains( key );
}
bool KeyCache::isNewKey( const QString& dir, const QString& key ) const
{
return mNewKeys.value( dir ).contains( key );
}
QSet< QString > KeyCache::listNew( const QString& dir ) const
{
QDir d( dir + QString::fromLatin1( "/new" ) );
d.setSorting(QDir::NoSort);
return d.entryList( QDir::Files ).toSet();
}
QSet< QString > KeyCache::listCurrent( const QString& dir ) const
{
QDir d( dir + QString::fromLatin1( "/cur" ) );
d.setSorting(QDir::NoSort);
return d.entryList( QDir::Files ).toSet();
}
|