~ubuntu-branches/ubuntu/feisty/digikam/feisty

« back to all changes in this revision

Viewing changes to digikam/digikam/albumdb.h

  • Committer: Bazaar Package Importer
  • Author(s): Achim Bohnet
  • Date: 2005-03-10 02:39:02 UTC
  • mfrom: (1.2.1 upstream) (2.1.1 hoary)
  • Revision ID: james.westby@ubuntu.com-20050310023902-023nymfst5mg696c
Tags: 0.7.2-2
* debian/TODO: clean
* digikam manpage: better --detect-camera description

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* ============================================================
 
2
 * Author: Renchi Raju <renchi@pooh.tam.uiuc.edu>
 
3
 * Date  : 2004-06-18
 
4
 * Description : 
 
5
 * 
 
6
 * Copyright 2004 by Renchi Raju
 
7
 
 
8
 * This program is free software; you can redistribute it
 
9
 * and/or modify it under the terms of the GNU General
 
10
 * Public License as published by the Free Software Foundation;
 
11
 * either version 2, or (at your option)
 
12
 * any later version.
 
13
 * 
 
14
 * This program is distributed in the hope that it will be useful,
 
15
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
16
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
17
 * GNU General Public License for more details.
 
18
 * 
 
19
 * ============================================================ */
 
20
 
 
21
#ifndef ALBUMDB_H
 
22
#define ALBUMDB_H
 
23
 
 
24
#include <qstring.h>
 
25
#include <qvaluelist.h>
 
26
#include <qstringlist.h>
 
27
#include <qdatetime.h>
 
28
 
 
29
typedef struct sqlite sqleet; // hehe.
 
30
class Album;
 
31
 
 
32
typedef QValueList<int> IntList;
 
33
 
 
34
class AlbumDB
 
35
{
 
36
public:
 
37
 
 
38
    AlbumDB();
 
39
    ~AlbumDB();
 
40
 
 
41
    void setDBPath(const QString& path);
 
42
 
 
43
    void scanTags(TAlbum *album);
 
44
 
 
45
    void readAlbum(Album *album);
 
46
    void deleteAlbum(Album *album);
 
47
    void renameAlbum(Album *album, const QString& newName);
 
48
    bool createTAlbum(TAlbum* parent, const QString& name, const QString& icon);
 
49
    void moveTAlbum(TAlbum *album, TAlbum *parent);
 
50
    bool addPAlbum(const QString& url, const QString& caption,
 
51
                   const QDate& date, const QString& collection);
 
52
    
 
53
    void beginTransaction();
 
54
    void commitTransaction();
 
55
 
 
56
    void setCaption(PAlbum *album);
 
57
    void setCollection(PAlbum *album);
 
58
    void setDate(PAlbum *album);
 
59
    void setIcon(TAlbum *album, const QString& icon);
 
60
    void setIcon(PAlbum *album, const QString& icon);    
 
61
 
 
62
    QString     getItemCaption(PAlbum *album, const QString& name);
 
63
    QStringList getItemTagNames(PAlbum *album, const QString& name);
 
64
    IntList     getItemTagIDs(PAlbum *album, const QString& name);
 
65
    IntList     getItemCommonTagIDs(const IntList& dirIDList, const QStringList& nameList);
 
66
 
 
67
    void setItemCaption(PAlbum *album, const QString& name,
 
68
                        const QString& caption);
 
69
    void setItemTag(PAlbum *album, const QString& name, TAlbum* tag);
 
70
    void removeItemTag(PAlbum *album, const QString& name, TAlbum* tag);
 
71
    void removeItemAllTags(PAlbum *album, const QString& name);
 
72
 
 
73
    QStringList getItemsURL(TAlbum *album);
 
74
    void getItemsInTAlbum(TAlbum* album, QStringList& urls,
 
75
                          QValueList<int>& dirids);
 
76
 
 
77
    void copyItem(PAlbum *srcAlbum,  const QString& srcFile,
 
78
                  PAlbum *destAlbum, const QString& destFile); 
 
79
    void moveItem(PAlbum *srcAlbum,  const QString& srcFile,
 
80
                  PAlbum *destAlbum, const QString& destFile);
 
81
    void deleteItem(PAlbum *album,   const QString& file);
 
82
    
 
83
private:
 
84
 
 
85
    void initDB();
 
86
 
 
87
    bool importXML(PAlbum *album);
 
88
    bool exportXML(PAlbum *album);
 
89
 
 
90
    void readPAlbum(PAlbum* album);
 
91
    void readTAlbum(TAlbum* album);
 
92
    void renameTAlbum(TAlbum* album, const QString& name);
 
93
    void renamePAlbum(PAlbum* album, const QString& url);
 
94
    
 
95
    bool readIdentifier(PAlbum *album, int& id);
 
96
    void writeIdentifier(PAlbum *album, int id);
 
97
 
 
98
    bool checkAlbum(PAlbum *album, int id);
 
99
 
 
100
    bool execSql(const QString& sql, QStringList* const values = 0, 
 
101
                 const bool debug = false);
 
102
    QString escapeString(QString str) const;
 
103
 
 
104
    void removeInvalidEntries();
 
105
    
 
106
    sqleet*       m_db;
 
107
    bool          m_valid;
 
108
};
 
109
 
 
110
#endif /* ALBUMDB_H */