summaryrefslogtreecommitdiff
path: root/plugin/src/Caelestia/cutils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/src/Caelestia/cutils.cpp')
-rw-r--r--plugin/src/Caelestia/cutils.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/plugin/src/Caelestia/cutils.cpp b/plugin/src/Caelestia/cutils.cpp
index fd7fcdd..2415f80 100644
--- a/plugin/src/Caelestia/cutils.cpp
+++ b/plugin/src/Caelestia/cutils.cpp
@@ -68,3 +68,24 @@ void CUtils::saveItem(QQuickItem* target, const QUrl& path, const QRect& rect, Q
}
);
}
+
+bool CUtils::copyFile(const QUrl& source, const QUrl& target) const {
+ return this->copyFile(source, target, true);
+}
+
+bool CUtils::copyFile(const QUrl& source, const QUrl& target, bool overwrite) const {
+ if (!source.isLocalFile()) {
+ qWarning() << "CUtils::copyFile: source" << source << "is not a local file";
+ return false;
+ }
+ if (!target.isLocalFile()) {
+ qWarning() << "CUtils::copyFile: target" << target << "is not a local file";
+ return false;
+ }
+
+ if (overwrite) {
+ QFile::remove(target.toLocalFile());
+ }
+
+ return QFile::copy(source.toLocalFile(), target.toLocalFile());
+}