aboutsummaryrefslogtreecommitdiffstats
path: root/kde2/kpsion
diff options
context:
space:
mode:
authorFritz Elfert <felfert@to.com>2001-03-13 10:48:07 +0000
committerFritz Elfert <felfert@to.com>2001-03-13 10:48:07 +0000
commita39d37ff1d11b62cd67fe1b6c97ae234c9af4761 (patch)
tree11c867c713f1d1306e6563e3ff69ec1b858fa262 /kde2/kpsion
parent3d1ede06113c5472b6a0bfe43754ad67fe9a99b4 (diff)
downloadplptools-a39d37ff1d11b62cd67fe1b6c97ae234c9af4761.tar.gz
plptools-a39d37ff1d11b62cd67fe1b6c97ae234c9af4761.tar.bz2
plptools-a39d37ff1d11b62cd67fe1b6c97ae234c9af4761.zip
Move existing backups, when changing backup folder.
Diffstat (limited to 'kde2/kpsion')
-rw-r--r--kde2/kpsion/setupdialog.cpp33
-rw-r--r--kde2/kpsion/setupdialog.h1
2 files changed, 33 insertions, 1 deletions
diff --git a/kde2/kpsion/setupdialog.cpp b/kde2/kpsion/setupdialog.cpp
index fa5959c..0498545 100644
--- a/kde2/kpsion/setupdialog.cpp
+++ b/kde2/kpsion/setupdialog.cpp
@@ -57,6 +57,7 @@ SetupDialog::SetupDialog(QWidget *parent, rfsv *plpRfsv, rpcs *plpRpcs)
config->setGroup(pcfg.getSectionName(KPsionConfig::OPT_BACKUPDIR));
tmp = config->readEntry(pcfg.getOptionName(KPsionConfig::OPT_BACKUPDIR));
+ oldBDir = tmp;
bdirLabel = new QLabel(page1, "bdirLabel");
bdirLabel->setText(tmp);
bdirButton = new QPushButton(i18n("Browse"), page1);
@@ -247,9 +248,11 @@ checkBackupDir(QString &dir) {
QString tmp =
config->readEntry(pcfg.getOptionName(KPsionConfig::OPT_BACKUPDIR));
+ bool rmFlag = false;
+
if (!bdirCreated.isEmpty()) {
if (bdirCreated != dir) {
- ::rmdir(bdirCreated.data());
+ rmFlag = true;
bdirCreated = "";
}
}
@@ -307,7 +310,35 @@ checkBackupDir(QString &dir) {
}
bdirCreated = dir;
}
+ QDir od(oldBDir);
+ if ((!oldBDir.isEmpty()) && (oldBDir != dir) && (od.exists())) {
+ QStringList entries = od.entryList();
+ QStringList::Iterator ui;
+ QStringList::Iterator ei;
+ config->setGroup(pcfg.getSectionName(KPsionConfig::OPT_UIDS));
+ QStringList uids = config->readListEntry(
+ pcfg.getOptionName(KPsionConfig::OPT_UIDS));
+ for (ei = entries.begin(); ei != entries.end(); ++ei) {
+ for (ui = uids.begin(); ui != uids.end(); ++ui) {
+ if ((*ei) == (*ui)) {
+ QString from = oldBDir;
+ QString to = dir;
+
+ from += "/"; from += *ui;
+ to += "/"; to += *ui;
+ if (::rename(from.latin1(), to.latin1()) != 0) {
+ KMessageBox::error(this,
+ i18n("Could not move existing backup "
+ "for machine %1 to %2.").arg(*ui).arg(to));
+ }
+ }
+ }
+ }
+ }
+ if (rmFlag)
+ ::rmdir(oldBDir.latin1());
bdirLabel->setText(dir);
+ oldBDir = dir;
return true;
}
bdirLabel->setText(tmp);
diff --git a/kde2/kpsion/setupdialog.h b/kde2/kpsion/setupdialog.h
index df9c46e..f87c917 100644
--- a/kde2/kpsion/setupdialog.h
+++ b/kde2/kpsion/setupdialog.h
@@ -71,6 +71,7 @@ private:
QString bdirDefault;
QString bdirCreated;
+ QString oldBDir;
};
#endif