Changeset View
Changeset View
Standalone View
Standalone View
src/core/kconfiggroup.cpp
Show All 19 Lines | 1 | /* | |||
---|---|---|---|---|---|
20 | Boston, MA 02110-1301, USA. | 20 | Boston, MA 02110-1301, USA. | ||
21 | */ | 21 | */ | ||
22 | 22 | | |||
23 | #include "kconfiggroup.h" | 23 | #include "kconfiggroup.h" | ||
24 | #include "kconfiggroup_p.h" | 24 | #include "kconfiggroup_p.h" | ||
25 | 25 | | |||
26 | #include "kconfig.h" | 26 | #include "kconfig.h" | ||
27 | #include "kconfig_p.h" | 27 | #include "kconfig_p.h" | ||
28 | #include "kconfig_core_log_settings.h" | ||||
28 | #include "ksharedconfig.h" | 29 | #include "ksharedconfig.h" | ||
29 | #include "kconfigdata.h" | 30 | #include "kconfigdata.h" | ||
30 | 31 | | |||
31 | #include <QDate> | 32 | #include <QDate> | ||
32 | #include <QSharedData> | 33 | #include <QSharedData> | ||
33 | #include <QFile> | 34 | #include <QFile> | ||
34 | #include <QPoint> | 35 | #include <QPoint> | ||
35 | #include <QRect> | 36 | #include <QRect> | ||
▲ Show 20 Lines • Show All 219 Lines • ▼ Show 20 Line(s) | 255 | if (!tmp.convert(aDefault.type())) { | |||
255 | tmp = aDefault; | 256 | tmp = aDefault; | ||
256 | } | 257 | } | ||
257 | return tmp; | 258 | return tmp; | ||
258 | } | 259 | } | ||
259 | case QMetaType::QPoint: { | 260 | case QMetaType::QPoint: { | ||
260 | const auto list = asIntList(value); | 261 | const auto list = asIntList(value); | ||
261 | 262 | | |||
262 | if (list.count() != 2) { | 263 | if (list.count() != 2) { | ||
263 | qWarning() << errString(pKey, value, aDefault) | 264 | qCWarning(KCONFIG_CORE_LOG) << errString(pKey, value, aDefault) | ||
264 | << formatError(2, list.count()); | 265 | << formatError(2, list.count()); | ||
265 | return aDefault; | 266 | return aDefault; | ||
266 | } | 267 | } | ||
267 | return QPoint(list.at(0), list.at(1)); | 268 | return QPoint(list.at(0), list.at(1)); | ||
268 | } | 269 | } | ||
269 | case QMetaType::QPointF: { | 270 | case QMetaType::QPointF: { | ||
270 | const auto list = asRealList(value); | 271 | const auto list = asRealList(value); | ||
271 | 272 | | |||
272 | if (list.count() != 2) { | 273 | if (list.count() != 2) { | ||
273 | qWarning() << errString(pKey, value, aDefault) | 274 | qCWarning(KCONFIG_CORE_LOG) << errString(pKey, value, aDefault) | ||
274 | << formatError(2, list.count()); | 275 | << formatError(2, list.count()); | ||
275 | return aDefault; | 276 | return aDefault; | ||
276 | } | 277 | } | ||
277 | return QPointF(list.at(0), list.at(1)); | 278 | return QPointF(list.at(0), list.at(1)); | ||
278 | } | 279 | } | ||
279 | case QMetaType::QRect: { | 280 | case QMetaType::QRect: { | ||
280 | const auto list = asIntList(value); | 281 | const auto list = asIntList(value); | ||
281 | 282 | | |||
282 | if (list.count() != 4) { | 283 | if (list.count() != 4) { | ||
283 | qWarning() << errString(pKey, value, aDefault) | 284 | qCWarning(KCONFIG_CORE_LOG) << errString(pKey, value, aDefault) | ||
284 | << formatError(4, list.count()); | 285 | << formatError(4, list.count()); | ||
285 | return aDefault; | 286 | return aDefault; | ||
286 | } | 287 | } | ||
287 | const QRect rect(list.at(0), list.at(1), list.at(2), list.at(3)); | 288 | const QRect rect(list.at(0), list.at(1), list.at(2), list.at(3)); | ||
288 | if (!rect.isValid()) { | 289 | if (!rect.isValid()) { | ||
289 | qWarning() << errString(pKey, value, aDefault); | 290 | qCWarning(KCONFIG_CORE_LOG) << errString(pKey, value, aDefault); | ||
290 | return aDefault; | 291 | return aDefault; | ||
291 | } | 292 | } | ||
292 | return rect; | 293 | return rect; | ||
293 | } | 294 | } | ||
294 | case QMetaType::QRectF: { | 295 | case QMetaType::QRectF: { | ||
295 | const auto list = asRealList(value); | 296 | const auto list = asRealList(value); | ||
296 | 297 | | |||
297 | if (list.count() != 4) { | 298 | if (list.count() != 4) { | ||
298 | qWarning() << errString(pKey, value, aDefault) | 299 | qCWarning(KCONFIG_CORE_LOG) << errString(pKey, value, aDefault) | ||
299 | << formatError(4, list.count()); | 300 | << formatError(4, list.count()); | ||
300 | return aDefault; | 301 | return aDefault; | ||
301 | } | 302 | } | ||
302 | const QRectF rect(list.at(0), list.at(1), list.at(2), list.at(3)); | 303 | const QRectF rect(list.at(0), list.at(1), list.at(2), list.at(3)); | ||
303 | if (!rect.isValid()) { | 304 | if (!rect.isValid()) { | ||
304 | qWarning() << errString(pKey, value, aDefault); | 305 | qCWarning(KCONFIG_CORE_LOG) << errString(pKey, value, aDefault); | ||
305 | return aDefault; | 306 | return aDefault; | ||
306 | } | 307 | } | ||
307 | return rect; | 308 | return rect; | ||
308 | } | 309 | } | ||
309 | case QMetaType::QSize: { | 310 | case QMetaType::QSize: { | ||
310 | const auto list = asIntList(value); | 311 | const auto list = asIntList(value); | ||
311 | 312 | | |||
312 | if (list.count() != 2) { | 313 | if (list.count() != 2) { | ||
313 | qWarning() << errString(pKey, value, aDefault) | 314 | qCWarning(KCONFIG_CORE_LOG) << errString(pKey, value, aDefault) | ||
314 | << formatError(2, list.count()); | 315 | << formatError(2, list.count()); | ||
315 | return aDefault; | 316 | return aDefault; | ||
316 | } | 317 | } | ||
317 | const QSize size(list.at(0), list.at(1)); | 318 | const QSize size(list.at(0), list.at(1)); | ||
318 | if (!size.isValid()) { | 319 | if (!size.isValid()) { | ||
319 | qWarning() << errString(pKey, value, aDefault); | 320 | qCWarning(KCONFIG_CORE_LOG) << errString(pKey, value, aDefault); | ||
320 | return aDefault; | 321 | return aDefault; | ||
321 | } | 322 | } | ||
322 | return size; | 323 | return size; | ||
323 | } | 324 | } | ||
324 | case QMetaType::QSizeF: { | 325 | case QMetaType::QSizeF: { | ||
325 | const auto list = asRealList(value); | 326 | const auto list = asRealList(value); | ||
326 | 327 | | |||
327 | if (list.count() != 2) { | 328 | if (list.count() != 2) { | ||
328 | qWarning() << errString(pKey, value, aDefault) | 329 | qCWarning(KCONFIG_CORE_LOG) << errString(pKey, value, aDefault) | ||
329 | << formatError(2, list.count()); | 330 | << formatError(2, list.count()); | ||
330 | return aDefault; | 331 | return aDefault; | ||
331 | } | 332 | } | ||
332 | const QSizeF size(list.at(0), list.at(1)); | 333 | const QSizeF size(list.at(0), list.at(1)); | ||
333 | if (!size.isValid()) { | 334 | if (!size.isValid()) { | ||
334 | qWarning() << errString(pKey, value, aDefault); | 335 | qCWarning(KCONFIG_CORE_LOG) << errString(pKey, value, aDefault); | ||
335 | return aDefault; | 336 | return aDefault; | ||
336 | } | 337 | } | ||
337 | return size; | 338 | return size; | ||
338 | } | 339 | } | ||
339 | case QMetaType::QDateTime: { | 340 | case QMetaType::QDateTime: { | ||
340 | const auto list = asIntList(value); | 341 | const auto list = asIntList(value); | ||
341 | if (list.count() != 6) { | 342 | if (list.count() != 6) { | ||
342 | qWarning() << errString(pKey, value, aDefault) | 343 | qCWarning(KCONFIG_CORE_LOG) << errString(pKey, value, aDefault) | ||
343 | << formatError(6, list.count()); | 344 | << formatError(6, list.count()); | ||
344 | return aDefault; | 345 | return aDefault; | ||
345 | } | 346 | } | ||
346 | const QDate date(list.at(0), list.at(1), list.at(2)); | 347 | const QDate date(list.at(0), list.at(1), list.at(2)); | ||
347 | const QTime time(list.at(3), list.at(4), list.at(5)); | 348 | const QTime time(list.at(3), list.at(4), list.at(5)); | ||
348 | const QDateTime dt(date, time); | 349 | const QDateTime dt(date, time); | ||
349 | if (!dt.isValid()) { | 350 | if (!dt.isValid()) { | ||
350 | qWarning() << errString(pKey, value, aDefault); | 351 | qCWarning(KCONFIG_CORE_LOG) << errString(pKey, value, aDefault); | ||
351 | return aDefault; | 352 | return aDefault; | ||
352 | } | 353 | } | ||
353 | return dt; | 354 | return dt; | ||
354 | } | 355 | } | ||
355 | case QMetaType::QDate: { | 356 | case QMetaType::QDate: { | ||
356 | auto list = asIntList(value); | 357 | auto list = asIntList(value); | ||
357 | if (list.count() == 6) { | 358 | if (list.count() == 6) { | ||
358 | list = list.mid(0, 3); // don't break config files that stored QDate as QDateTime | 359 | list = list.mid(0, 3); // don't break config files that stored QDate as QDateTime | ||
359 | } | 360 | } | ||
360 | if (list.count() != 3) { | 361 | if (list.count() != 3) { | ||
361 | qWarning() << errString(pKey, value, aDefault) | 362 | qCWarning(KCONFIG_CORE_LOG) << errString(pKey, value, aDefault) | ||
362 | << formatError(3, list.count()); | 363 | << formatError(3, list.count()); | ||
363 | return aDefault; | 364 | return aDefault; | ||
364 | } | 365 | } | ||
365 | const QDate date(list.at(0), list.at(1), list.at(2)); | 366 | const QDate date(list.at(0), list.at(1), list.at(2)); | ||
366 | if (!date.isValid()) { | 367 | if (!date.isValid()) { | ||
367 | qWarning() << errString(pKey, value, aDefault); | 368 | qCWarning(KCONFIG_CORE_LOG) << errString(pKey, value, aDefault); | ||
368 | return aDefault; | 369 | return aDefault; | ||
369 | } | 370 | } | ||
370 | return date; | 371 | return date; | ||
371 | } | 372 | } | ||
372 | case QMetaType::QColor: | 373 | case QMetaType::QColor: | ||
373 | case QMetaType::QFont: | 374 | case QMetaType::QFont: | ||
374 | qWarning() << "KConfigGroup::readEntry was passed GUI type '" | 375 | qCWarning(KCONFIG_CORE_LOG) << "KConfigGroup::readEntry was passed GUI type '" | ||
375 | << aDefault.typeName() | 376 | << aDefault.typeName() | ||
376 | << "' but KConfigGui isn't linked! If it is linked to your program, " | 377 | << "' but KConfigGui isn't linked! If it is linked to your program, " | ||
377 | "this is a platform bug. Please inform the KDE developers"; | 378 | "this is a platform bug. Please inform the KDE developers"; | ||
378 | break; | 379 | break; | ||
379 | case QMetaType::QUrl: | 380 | case QMetaType::QUrl: | ||
380 | return QUrl(QString::fromUtf8(value)); | 381 | return QUrl(QString::fromUtf8(value)); | ||
381 | 382 | | |||
382 | default: | 383 | default: | ||
383 | break; | 384 | break; | ||
384 | } | 385 | } | ||
385 | 386 | | |||
386 | qWarning() << "unhandled type " << aDefault.typeName(); | 387 | qCWarning(KCONFIG_CORE_LOG) << "unhandled type " << aDefault.typeName(); | ||
387 | return QVariant(); | 388 | return QVariant(); | ||
388 | } | 389 | } | ||
389 | 390 | | |||
390 | #ifdef Q_OS_WIN | 391 | #ifdef Q_OS_WIN | ||
391 | # include <QDir> | 392 | # include <QDir> | ||
392 | #endif | 393 | #endif | ||
393 | 394 | | |||
394 | static bool cleanHomeDirPath(QString &path, const QString &homeDir) | 395 | static bool cleanHomeDirPath(QString &path, const QString &homeDir) | ||
▲ Show 20 Lines • Show All 555 Lines • ▼ Show 20 Line(s) | 928 | { | |||
950 | case QMetaType::Float: | 951 | case QMetaType::Float: | ||
951 | case QMetaType::Bool: | 952 | case QMetaType::Bool: | ||
952 | case QMetaType::LongLong: | 953 | case QMetaType::LongLong: | ||
953 | case QMetaType::ULongLong: | 954 | case QMetaType::ULongLong: | ||
954 | data = value.toString().toUtf8(); | 955 | data = value.toString().toUtf8(); | ||
955 | break; | 956 | break; | ||
956 | case QMetaType::QVariantList: | 957 | case QMetaType::QVariantList: | ||
957 | if (!value.canConvert(QMetaType::QStringList)) | 958 | if (!value.canConvert(QMetaType::QStringList)) | ||
958 | qWarning() << "not all types in \"" << key << "\" can convert to QString," | 959 | qCWarning(KCONFIG_CORE_LOG) << "not all types in \"" << key << "\" can convert to QString," | ||
959 | " information will be lost"; | 960 | " information will be lost"; | ||
960 | Q_FALLTHROUGH(); | 961 | Q_FALLTHROUGH(); | ||
961 | case QMetaType::QStringList: | 962 | case QMetaType::QStringList: | ||
962 | writeEntry(key, value.toList(), flags); | 963 | writeEntry(key, value.toList(), flags); | ||
963 | return; | 964 | return; | ||
964 | case QMetaType::QPoint: { | 965 | case QMetaType::QPoint: { | ||
965 | const QPoint rPoint = value.toPoint(); | 966 | const QPoint rPoint = value.toPoint(); | ||
966 | 967 | | |||
▲ Show 20 Lines • Show All 93 Lines • ▼ Show 20 Line(s) | 1047 | case QMetaType::QDateTime: { | |||
1060 | }; | 1061 | }; | ||
1061 | 1062 | | |||
1062 | writeEntry(key, list, flags); | 1063 | writeEntry(key, list, flags); | ||
1063 | return; | 1064 | return; | ||
1064 | } | 1065 | } | ||
1065 | 1066 | | |||
1066 | case QMetaType::QColor: | 1067 | case QMetaType::QColor: | ||
1067 | case QMetaType::QFont: | 1068 | case QMetaType::QFont: | ||
1068 | qWarning() << "KConfigGroup::writeEntry was passed GUI type '" | 1069 | qCWarning(KCONFIG_CORE_LOG) << "KConfigGroup::writeEntry was passed GUI type '" | ||
1069 | << value.typeName() | 1070 | << value.typeName() | ||
1070 | << "' but KConfigGui isn't linked! If it is linked to your program, this is a platform bug. " | 1071 | << "' but KConfigGui isn't linked! If it is linked to your program, this is a platform bug. " | ||
1071 | "Please inform the KDE developers"; | 1072 | "Please inform the KDE developers"; | ||
1072 | break; | 1073 | break; | ||
1073 | case QMetaType::QUrl: | 1074 | case QMetaType::QUrl: | ||
1074 | data = QUrl(value.toUrl()).toString().toUtf8(); | 1075 | data = QUrl(value.toUrl()).toString().toUtf8(); | ||
1075 | break; | 1076 | break; | ||
1076 | default: | 1077 | default: | ||
1077 | qWarning() << "KConfigGroup::writeEntry - unhandled type" << value.typeName() << "in group" << name(); | 1078 | qCWarning(KCONFIG_CORE_LOG) << "KConfigGroup::writeEntry - unhandled type" << value.typeName() << "in group" << name(); | ||
1078 | } | 1079 | } | ||
1079 | 1080 | | |||
1080 | writeEntry(key, data, flags); | 1081 | writeEntry(key, data, flags); | ||
1081 | } | 1082 | } | ||
1082 | 1083 | | |||
1083 | void KConfigGroup::writeEntry(const QString &key, const QVariant &value, WriteConfigFlags flags) | 1084 | void KConfigGroup::writeEntry(const QString &key, const QVariant &value, WriteConfigFlags flags) | ||
1084 | { | 1085 | { | ||
1085 | writeEntry(key.toUtf8().constData(), value, flags); | 1086 | writeEntry(key.toUtf8().constData(), value, flags); | ||
▲ Show 20 Lines • Show All 222 Lines • Show Last 20 Lines |