2
This file is part of the Nepomuk KDE project.
3
Copyright (C) 2011 Sebastian Trueg <trueg@kde.org>
5
This library is free software; you can redistribute it and/or
6
modify it under the terms of the GNU Lesser General Public
7
License as published by the Free Software Foundation; either
8
version 2.1 of the License, or (at your option) version 3, or any
9
later version accepted by the membership of KDE e.V. (or its
10
successor approved by the membership of KDE e.V.), which shall
11
act as a proxy defined in Section 6 of version 3 of the license.
13
This library is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16
Lesser General Public License for more details.
18
You should have received a copy of the GNU Lesser General Public
19
License along with this library. If not, see <http://www.gnu.org/licenses/>.
22
#ifndef ACTIVEFILEQUEUE_H
23
#define ACTIVEFILEQUEUE_H
25
#include <QtCore/QObject>
30
* The active file queue maintains a queue of file paths
31
* with a timestamp. It will signal the timout of a file after
32
* a given time. As soon as a file is queued again its timestamp
33
* will be reset and the timing restarts.
35
* This allows to "compress" file modification events of downloads
36
* and the like into a single event resulting in a smoother
37
* experience for the user.
39
* \author Sebastian Trueg <trueg@ĸde.org>
41
class ActiveFileQueue : public QObject
46
ActiveFileQueue(QObject *parent = 0);
50
void urlTimeout(const KUrl& url);
53
void enqueueUrl(const KUrl& url);
56
* Set the timeout in seconds. Be aware that the timeout
57
* will not be exact. For internal reasons the queue tries
58
* to roughly match the configured timeout. It only guarantees
59
* that the timeout will be between \p seconds and \p seconds+1.
61
void setTimeout(int seconds);
71
#endif // ACTIVEFILEQUEUE_H