Make the hasAcceptedChanges and writeDiff methods on Changeset wait until all diffs...
[vng.git] / hunks / ChangeSet.h
blobafdc3c0a680fdab551e6c169f894d9ffe9065149
1 /*
2 * This file is part of the vng project
3 * Copyright (C) 2008 Thomas Zander <tzander@trolltech.com>
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 #ifndef CHANGESET_H
20 #define CHANGESET_H
22 #include "File.h"
23 #include "../AbstractCommand.h"
25 #include <QStringList>
27 class ChangeSet {
28 public:
29 enum Selection {
30 UserSelection,
31 InvertedUserSelection,
32 AllHunks
34 ChangeSet();
35 ChangeSet(const ChangeSet &other);
36 ~ChangeSet();
38 AbstractCommand::ReturnCodes fillFromCurrentChanges(const QStringList &paths);
39 AbstractCommand::ReturnCodes fillFromDiffFile(QIODevice &file);
41 void writeDiff(QIODevice &file, Selection selection) const;
43 void addFile(const File &file);
45 File file(int index) const;
47 /// return filecount
48 int count() const;
50 bool hasAcceptedChanges() const;
51 bool hasAllHunks() const;
53 void generateHunks();
54 void waitFinishGenerateHunks() const;
56 ChangeSet &operator=(const ChangeSet &other);
58 static QList<File> readGitDiff(QIODevice &device, File *file = 0);
60 protected:
61 friend class HunksFetcher;
62 void lockFile(const File &file);
63 void removeFile(const File &file);
64 void allHunksFetched();
66 private:
67 class Private;
68 Private * d;
71 #endif