| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- #pragma once
- #include <QFile>
- #include <QWidget>
- #include <QListWidget>
- #include "FileDiff.h"
- class Ui_ConflictItemWidget;
- namespace craftlab::fakeraid
- {
- class ConflictItemWidget : public QWidget
- {
- Q_OBJECT
- public:
- enum class Action
- {
- Undefined,
- UseVersion,
- Copy,
- Remove,
- Ignore,
- };
- static ConflictItemWidget* FromMissingFile(QListWidget* parent, const std::vector<std::string>& rootPaths, const std::string& filename, const std::vector<bool>& version);
- static ConflictItemWidget* FromMissingDir(QListWidget* parent, const std::vector<std::string>& rootPaths, const std::string& filename, const std::vector<bool>& version);
- static ConflictItemWidget* FromConflict(QListWidget* parent, const std::vector<std::string>& rootPaths, const std::string& filename, const std::vector<int>& version);
- Action GetAction() const;
- void SetAction(Action&& action);
- std::string GetFileName() const;
- int GetVersionToUse() const;
- signals:
- void ActionChanged();
- private:
- ConflictItemWidget(QListWidget* parent, const QFile& fullPath, const std::string& filename);
- static void listRepositories(const std::vector<int>& repo, std::stringstream& stream);
- static std::map<int, std::vector<int>> groupFileByVersion(const std::vector<int>& versions);
- static std::vector<int> versionExistsToVersionNumber(const std::vector<bool> exists);
- static void populateListStream(const std::map<int, std::vector<int>>& repoByVersion, std::stringstream& stream);
- const std::string filename;
- Action currentAction = Action::Undefined;
- std::unique_ptr<Ui_ConflictItemWidget> ui;
- };
- }
|