kcontrol: date/time module timezone feature fix

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2021-06-04 19:37:25 +03:00
parent c69f40a344
commit a73d220899

View file

@ -116,17 +116,17 @@ ClockHelper::CH_Error ClockHelper::tz( const QString& selectedzone )
// NOTE: keep in sync with ktimezoned/ktimezoned.cpp
static const QStringList zoneDirs = QStringList()
<< QLatin1String("/share/zoneinfo")
<< QLatin1String("/lib/zoneinfo")
<< QLatin1String("/usr/share/zoneinfo")
<< QLatin1String("/usr/lib/zoneinfo")
<< QLatin1String("/usr/local/share/zoneinfo")
<< QLatin1String("/usr/local/lib/zoneinfo")
<< (KStandardDirs::installPath("kdedir") + QLatin1String("/share/zoneinfo"))
<< (KStandardDirs::installPath("kdedir") + QLatin1String("/lib/zoneinfo"));
<< QLatin1String("/share/zoneinfo/")
<< QLatin1String("/lib/zoneinfo/")
<< QLatin1String("/usr/share/zoneinfo/")
<< QLatin1String("/usr/lib/zoneinfo/")
<< QLatin1String("/usr/local/share/zoneinfo/")
<< QLatin1String("/usr/local/lib/zoneinfo/")
<< (KStandardDirs::installPath("kdedir") + QLatin1String("/share/zoneinfo/"))
<< (KStandardDirs::installPath("kdedir") + QLatin1String("/lib/zoneinfo/"));
// /usr is kind of standard
QString ZONE_INFO_DIR = "/usr/share/zoneinfo";
QString ZONE_INFO_DIR = "/usr/share/zoneinfo/";
foreach (const QString &zonedir, zoneDirs) {
if (QDir(zonedir).exists()) {
@ -136,10 +136,7 @@ ClockHelper::CH_Error ClockHelper::tz( const QString& selectedzone )
QString tz = ZONE_INFO_DIR + selectedzone;
QFile f("/etc/localtime");
if (f.exists() && !f.remove()) {
return TimezoneError;
}
unlink( "/etc/localtime" );
if (!QFile::link(tz, "/etc/localtime")) {
return TimezoneError;