From cf7d10dc767abaf9a00cb537fd0636b39ed9b620 Mon Sep 17 00:00:00 2001 From: Montel Laurent Date: Sun, 14 Dec 2014 10:22:42 +0100 Subject: [PATCH] Fix Bug 341116 - cannot edit IMAP flags; Save button stays grayed-out BUG: 341116 --- akonadiconsole/browserwidget.cpp | 16 ++++++++++++++++ akonadiconsole/browserwidget.h | 2 ++ 2 files changed, 18 insertions(+) diff --git a/akonadiconsole/browserwidget.cpp b/akonadiconsole/browserwidget.cpp index 416b9f300e..b81d86c12c 100644 --- a/akonadiconsole/browserwidget.cpp +++ b/akonadiconsole/browserwidget.cpp @@ -195,6 +195,7 @@ BrowserWidget::BrowserWidget(KXmlGuiWindow *xmlGuiWindow, QWidget * parent) : connect( contentUi.saveButton, SIGNAL(clicked()), SLOT(save()) ); splitter3->addWidget( contentViewParent ); + connect( contentUi.attrAddButton, SIGNAL(clicked()), SLOT(addAttribute()) ); connect( contentUi.attrDeleteButton, SIGNAL(clicked()), SLOT(delAttribute()) ); @@ -220,6 +221,8 @@ BrowserWidget::BrowserWidget(KXmlGuiWindow *xmlGuiWindow, QWidget * parent) : m_stateMaintainer->setView( mCollectionView ); m_stateMaintainer->restoreState(); + connect(contentUi.flags, SIGNAL(changed()), this, SLOT(slotFlagsChanged())); + connect(contentUi.tags, SIGNAL(changed()), this, SLOT(slotTagsChanged())); } BrowserWidget::~BrowserWidget() @@ -227,6 +230,17 @@ BrowserWidget::~BrowserWidget() m_stateMaintainer->saveState(); } +void BrowserWidget::slotFlagsChanged() +{ + contentUi.saveButton->setEnabled( true ); +} + +void BrowserWidget::slotTagsChanged() +{ + contentUi.saveButton->setEnabled( true ); +} + + void BrowserWidget::clear() { contentUi.stack->setCurrentWidget( contentUi.unsupportedTypePage ); @@ -240,6 +254,7 @@ void BrowserWidget::clear() contentUi.flags->clear(); contentUi.tags->clear(); contentUi.attrView->setModel( 0 ); + contentUi.saveButton->setEnabled( false ); } void BrowserWidget::itemActivated(const QModelIndex & index) @@ -394,6 +409,7 @@ void BrowserWidget::saveResult(KJob * job) if ( job->error() ) { KMessageBox::error( this, i18n( "Failed to save changes: %1", job->errorString() ) ); } + contentUi.saveButton->setEnabled( false ); } void BrowserWidget::addAttribute() diff --git a/akonadiconsole/browserwidget.h b/akonadiconsole/browserwidget.h index 45f6fe51ed..de8e000b28 100644 --- a/akonadiconsole/browserwidget.h +++ b/akonadiconsole/browserwidget.h @@ -75,6 +75,8 @@ class BrowserWidget: public QWidget void dumpToXmlResult( KJob *job ); void clear(); void updateItemFetchScope(); + void slotFlagsChanged(); + void slotTagsChanged(); private: Akonadi::Collection currentCollection() const; -- GitLab