diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/settings/previewssettingspage.cpp | 48 | ||||
| -rw-r--r-- | src/settings/previewssettingspage.h | 5 | ||||
| -rw-r--r-- | src/settings/servicessettingspage.cpp | 8 | ||||
| -rw-r--r-- | src/settings/servicessettingspage.h | 2 |
4 files changed, 34 insertions, 29 deletions
diff --git a/src/settings/previewssettingspage.cpp b/src/settings/previewssettingspage.cpp index 9ddb2ad0f..4313cbf29 100644 --- a/src/settings/previewssettingspage.cpp +++ b/src/settings/previewssettingspage.cpp @@ -22,15 +22,6 @@ #include "dolphin_generalsettings.h" -#include <QCheckBox> -#include <QEvent> -#include <QGroupBox> -#include <QLabel> -#include <QListWidget> -#include <QRadioButton> -#include <QSlider> -#include <QBoxLayout> - #include <kconfiggroup.h> #include <kdialog.h> #include <kglobal.h> @@ -39,7 +30,15 @@ #include <KNumInput> #include <kservicetypetrader.h> #include <kservice.h> -#include <kvbox.h> + +#include <QCheckBox> +#include <QGroupBox> +#include <QLabel> +#include <QListWidget> +#include <QRadioButton> +#include <QShowEvent> +#include <QSlider> +#include <QBoxLayout> // default settings const bool USE_THUMBNAILS = true; @@ -138,22 +137,25 @@ void PreviewsSettingsPage::restoreDefaults() m_useFileThumbnails->setChecked(USE_THUMBNAILS); } -bool PreviewsSettingsPage::event(QEvent* event) +void PreviewsSettingsPage::showEvent(QShowEvent* event) { - if ((event->type() == QEvent::Polish) && !m_initialized) { - // load all available plugins for previews - const KService::List plugins = KServiceTypeTrader::self()->query("ThumbCreator"); - foreach (const KSharedPtr<KService>& service, plugins) { - QListWidgetItem* item = new QListWidgetItem(service->name(), - m_previewPluginsList); - item->setData(Qt::UserRole, service->desktopEntryName()); - const bool show = m_enabledPreviewPlugins.contains(service->desktopEntryName()); - item->setCheckState(show ? Qt::Checked : Qt::Unchecked); - } - + if (!event->spontaneous() && !m_initialized) { + QMetaObject::invokeMethod(this, "loadPreviewPlugins", Qt::QueuedConnection); m_initialized = true; } - return SettingsPageBase::event(event); + SettingsPageBase::showEvent(event); +} + +void PreviewsSettingsPage::loadPreviewPlugins() +{ + const KService::List plugins = KServiceTypeTrader::self()->query("ThumbCreator"); + foreach (const KSharedPtr<KService>& service, plugins) { + QListWidgetItem* item = new QListWidgetItem(service->name(), + m_previewPluginsList); + item->setData(Qt::UserRole, service->desktopEntryName()); + const bool show = m_enabledPreviewPlugins.contains(service->desktopEntryName()); + item->setCheckState(show ? Qt::Checked : Qt::Unchecked); + } } void PreviewsSettingsPage::loadSettings() diff --git a/src/settings/previewssettingspage.h b/src/settings/previewssettingspage.h index bcd21ffcb..e9a80af1e 100644 --- a/src/settings/previewssettingspage.h +++ b/src/settings/previewssettingspage.h @@ -50,7 +50,10 @@ public: virtual void restoreDefaults(); protected: - virtual bool event(QEvent* event); + virtual void showEvent(QShowEvent* event); + +private slots: + void loadPreviewPlugins(); private: void loadSettings(); diff --git a/src/settings/servicessettingspage.cpp b/src/settings/servicessettingspage.cpp index 14de2d4ae..98b26e358 100644 --- a/src/settings/servicessettingspage.cpp +++ b/src/settings/servicessettingspage.cpp @@ -34,12 +34,12 @@ #include <kstandarddirs.h> #include <QCheckBox> -#include <QEvent> #include <QGridLayout> #include <QGroupBox> #include <QLabel> #include <QListWidget> #include <QPushButton> +#include <QShowEvent> ServicesSettingsPage::ServicesSettingsPage(QWidget* parent) : SettingsPageBase(parent), @@ -131,14 +131,14 @@ void ServicesSettingsPage::restoreDefaults() } } -bool ServicesSettingsPage::event(QEvent* event) +void ServicesSettingsPage::showEvent(QShowEvent* event) { - if ((event->type() == QEvent::Polish) && !m_initialized) { + if (!event->spontaneous() && !m_initialized) { QMetaObject::invokeMethod(this, "loadServices", Qt::QueuedConnection); QMetaObject::invokeMethod(this, "loadVersionControlSystems", Qt::QueuedConnection); m_initialized = true; } - return SettingsPageBase::event(event); + SettingsPageBase::showEvent(event); } void ServicesSettingsPage::loadServices() diff --git a/src/settings/servicessettingspage.h b/src/settings/servicessettingspage.h index d2787e09b..cb526460f 100644 --- a/src/settings/servicessettingspage.h +++ b/src/settings/servicessettingspage.h @@ -46,7 +46,7 @@ public: virtual void restoreDefaults(); protected: - virtual bool event(QEvent* event); + virtual void showEvent(QShowEvent* event); private slots: /** |
