* @brief links (a file / a directory and it's contents) from src to dest */
| 196 | * @brief links (a file / a directory and it's contents) from src to dest |
| 197 | */ |
| 198 | class create_link : public QObject { |
| 199 | Q_OBJECT |
| 200 | public: |
| 201 | create_link(const QList<LinkPair> path_pairs, QObject* parent = nullptr) : QObject(parent) { m_path_pairs.append(path_pairs); } |
| 202 | create_link(const QString& src, const QString& dst, QObject* parent = nullptr) : QObject(parent) |
| 203 | { |
| 204 | LinkPair pair = { src, dst }; |
| 205 | m_path_pairs.append(pair); |
| 206 | } |
| 207 | create_link& useHardLinks(const bool useHard) |
| 208 | { |
| 209 | m_useHardLinks = useHard; |
| 210 | return *this; |
| 211 | } |
| 212 | create_link& matcher(const IPathMatcher* filter) |
| 213 | { |
| 214 | m_matcher = filter; |
| 215 | return *this; |
| 216 | } |
| 217 | create_link& whitelist(bool whitelist) |
| 218 | { |
| 219 | m_whitelist = whitelist; |
| 220 | return *this; |
| 221 | } |
| 222 | create_link& linkRecursively(bool recursive) |
| 223 | { |
| 224 | m_recursive = recursive; |
| 225 | return *this; |
| 226 | } |
| 227 | create_link& setMaxDepth(int depth) |
| 228 | { |
| 229 | m_max_depth = depth; |
| 230 | return *this; |
| 231 | } |
| 232 | create_link& debug(bool d) |
| 233 | { |
| 234 | m_debug = d; |
| 235 | return *this; |
| 236 | } |
| 237 | |
| 238 | std::error_code getOSError() { return m_os_err; } |
| 239 | |
| 240 | bool operator()(bool dryRun = false) { return operator()(QString(), dryRun); } |
| 241 | |
| 242 | int totalLinked() { return m_linked; } |
| 243 | int totalToLink() { return static_cast<int>(m_links_to_make.size()); } |
| 244 | |
| 245 | void runPrivileged() { runPrivileged(QString()); } |
| 246 | void runPrivileged(const QString& offset); |
| 247 | |
| 248 | QList<LinkResult> getResults() { return m_path_results; } |
| 249 | |
| 250 | signals: |
| 251 | void fileLinked(const QString& srcName, const QString& dstName); |
| 252 | void linkFailed(const QString& srcName, const QString& dstName, const QString& err_msg, int err_value); |
| 253 | void finished(); |
| 254 | void finishedPrivileged(bool gotResults); |
| 255 |