From fdc9bf1a1801a0b663547097ee049ee79f362e61 Mon Sep 17 00:00:00 2001 From: Montel Laurent Date: Fri, 4 Jan 2013 13:55:52 +0100 Subject: [PATCH] Don't save when is not necessary --- collectiontemplatespage.cpp | 16 +++++++++++----- collectiontemplatespage.h | 4 ++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/collectiontemplatespage.cpp b/collectiontemplatespage.cpp index 115979920..ed8e73133 100644 --- a/collectiontemplatespage.cpp +++ b/collectiontemplatespage.cpp @@ -34,7 +34,7 @@ using namespace Akonadi; using namespace MailCommon; CollectionTemplatesPage::CollectionTemplatesPage(QWidget * parent) : - CollectionPropertiesPage( parent ) + CollectionPropertiesPage( parent ), mChanged(false) { setObjectName( QLatin1String( "KMail::CollectionTemplatesPage" ) ); setPageTitle( i18n( "Templates" ) ); @@ -61,9 +61,11 @@ void CollectionTemplatesPage::init() topLayout->addLayout( topItems ); mCustom = new QCheckBox( i18n("&Use custom message templates in this folder"), this ); + connect(mCustom, SIGNAL(clicked(bool)), this, SLOT(slotChanged())); topItems->addWidget( mCustom, Qt::AlignLeft ); mWidget = new TemplateParser::TemplatesConfiguration( this, "folder-templates" ); + connect(mWidget, SIGNAL(changed()), this, SLOT(slotChanged())); mWidget->setEnabled( false ); // Move the help label outside of the templates configuration widget, @@ -105,13 +107,13 @@ void CollectionTemplatesPage::load(const Collection & col) mIdentity = fd->identity(); mWidget->loadFromFolder( mCollectionId, mIdentity ); + mChanged = false; } void CollectionTemplatesPage::save(Collection &) { - if ( !mCollectionId.isEmpty() ) { + if ( mChanged && !mCollectionId.isEmpty() ) { TemplateParser::Templates t(mCollectionId); - //kDebug() << "use custom templates for folder" << fid <<":" << mCustom->isChecked(); t.setUseCustomTemplates(mCustom->isChecked()); t.writeConfig(); @@ -123,10 +125,14 @@ void CollectionTemplatesPage::save(Collection &) void CollectionTemplatesPage::slotCopyGlobal() { if ( mIdentity ) { mWidget->loadFromIdentity( mIdentity ); - } - else { + } else { mWidget->loadFromGlobal(); } } +void CollectionTemplatesPage::slotChanged() +{ + mChanged = true; +} + #include "collectiontemplatespage.moc" diff --git a/collectiontemplatespage.h b/collectiontemplatespage.h index ef12f73fe..ccadcf4ac 100644 --- a/collectiontemplatespage.h +++ b/collectiontemplatespage.h @@ -42,6 +42,9 @@ public: public slots: void slotCopyGlobal(); +private Q_SLOTS: + void slotChanged(); + protected: void init(); private: @@ -51,6 +54,7 @@ private: uint mIdentity; QString mCollectionId; bool mIsLocalSystemFolder; + bool mChanged; }; AKONADI_COLLECTION_PROPERTIES_PAGE_FACTORY( CollectionTemplatesPageFactory, CollectionTemplatesPage )