~ubuntu-branches/ubuntu/oneiric/arora/oneiric

« back to all changes in this revision

Viewing changes to src/autosaver.h

  • Committer: Bazaar Package Importer
  • Author(s): Roderick B. Greening
  • Date: 2009-09-10 15:24:04 UTC
  • mfrom: (1.1.10 upstream)
  • Revision ID: james.westby@ubuntu.com-20090910152404-668k22ux3mfap6g0
Tags: 0.9.0-0ubuntu1
* New upstream release
* Update patches:
  - kubuntu_02_default_bookmarks.diff
* Remove patches:
  - kubuntu_04_startpage_spacing.diff (fixed upstream)
  - kubuntu_05_manpages.diff (fixed upstream)
  - kubuntu_07_adblock.diff (unstable/unsuitable)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright 2008 Benjamin C. Meyer <ben@meyerhome.net>
 
3
 *
 
4
 * This program is free software; you can redistribute it and/or modify
 
5
 * it under the terms of the GNU General Public License as published by
 
6
 * the Free Software Foundation; either version 2 of the License, or
 
7
 * (at your option) any later version.
 
8
 *
 
9
 * This program is distributed in the hope that it will be useful,
 
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
12
 * GNU General Public License for more details.
 
13
 *
 
14
 * You should have received a copy of the GNU General Public License
 
15
 * along with this program; if not, write to the Free Software
 
16
 * Foundation, Inc., 51 Franklin Street, Fifth Floor,
 
17
 * Boston, MA  02110-1301  USA
 
18
 */
 
19
 
 
20
/****************************************************************************
 
21
**
 
22
** Copyright (C) 2007-2008 Trolltech ASA. All rights reserved.
 
23
**
 
24
** This file is part of the demonstration applications of the Qt Toolkit.
 
25
**
 
26
** This file may be used under the terms of the GNU General Public
 
27
** License versions 2.0 or 3.0 as published by the Free Software
 
28
** Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
 
29
** included in the packaging of this file.  Alternatively you may (at
 
30
** your option) use any later version of the GNU General Public
 
31
** License if such license has been publicly approved by Trolltech ASA
 
32
** (or its successors, if any) and the KDE Free Qt Foundation. In
 
33
** addition, as a special exception, Trolltech gives you certain
 
34
** additional rights. These rights are described in the Trolltech GPL
 
35
** Exception version 1.2, which can be found at
 
36
** http://www.trolltech.com/products/qt/gplexception/ and in the file
 
37
** GPL_EXCEPTION.txt in this package.
 
38
**
 
39
** Please review the following information to ensure GNU General
 
40
** Public Licensing requirements will be met:
 
41
** http://trolltech.com/products/qt/licenses/licensing/opensource/. If
 
42
** you are unsure which license is appropriate for your use, please
 
43
** review the following information:
 
44
** http://trolltech.com/products/qt/licenses/licensing/licensingoverview
 
45
** or contact the sales department at sales@trolltech.com.
 
46
**
 
47
** In addition, as a special exception, Trolltech, as the sole
 
48
** copyright holder for Qt Designer, grants users of the Qt/Eclipse
 
49
** Integration plug-in the right for the Qt/Eclipse Integration to
 
50
** link to functionality provided by Qt Designer and its related
 
51
** libraries.
 
52
**
 
53
** This file is provided "AS IS" with NO WARRANTY OF ANY KIND,
 
54
** INCLUDING THE WARRANTIES OF DESIGN, MERCHANTABILITY AND FITNESS FOR
 
55
** A PARTICULAR PURPOSE. Trolltech reserves all rights not expressly
 
56
** granted herein.
 
57
**
 
58
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 
59
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
60
**
 
61
****************************************************************************/
 
62
 
 
63
#ifndef AUTOSAVER_H
 
64
#define AUTOSAVER_H
 
65
 
 
66
#include <qobject.h>
 
67
#include <qbasictimer.h>
 
68
#include <qdatetime.h>
 
69
 
 
70
/*
 
71
    This class will call the save() slot on the parent object when the parent changes.
 
72
    It will wait several seconds after changed() to combining multiple changes and
 
73
    prevent continuous writing to disk.
 
74
  */
 
75
class AutoSaver : public QObject
 
76
{
 
77
 
 
78
    Q_OBJECT
 
79
 
 
80
public:
 
81
    AutoSaver(QObject *parent);
 
82
    ~AutoSaver();
 
83
    void saveIfNeccessary();
 
84
 
 
85
public slots:
 
86
    void changeOccurred();
 
87
 
 
88
protected:
 
89
    void timerEvent(QTimerEvent *event);
 
90
 
 
91
private:
 
92
    QBasicTimer m_timer;
 
93
    QTime m_firstChange;
 
94
 
 
95
};
 
96
 
 
97
#endif // AUTOSAVER_H
 
98