summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Mollekopf <chrigi_1@fastmail.fm>2017-01-24 10:47:45 +0100
committerChristian Mollekopf <chrigi_1@fastmail.fm>2017-01-24 10:47:45 +0100
commit18bb7f3549e4e2f03a7110df8b5f0cfdf969f64c (patch)
tree7e10e35b46c7602bde341f5ab6aaa5480f2f2ba5
parent859f30d21532644c3b90e79f6686aa7375046087 (diff)
downloadkube-18bb7f3549e4e2f03a7110df8b5f0cfdf969f64c.tar.gz
kube-18bb7f3549e4e2f03a7110df8b5f0cfdf969f64c.zip
Make clear on the controller work
-rw-r--r--framework/domain/composercontroller.cpp18
-rw-r--r--framework/domain/composercontroller.h3
-rw-r--r--framework/domain/controller.h2
-rw-r--r--framework/domain/selector.cpp5
-rw-r--r--framework/domain/selector.h2
5 files changed, 26 insertions, 4 deletions
diff --git a/framework/domain/composercontroller.cpp b/framework/domain/composercontroller.cpp
index f1c04ea9..85faf235 100644
--- a/framework/domain/composercontroller.cpp
+++ b/framework/domain/composercontroller.cpp
@@ -97,9 +97,20 @@ ComposerController::ComposerController()
97 97
98 QObject::connect(this, &ComposerController::toChanged, &ComposerController::updateSendAction); 98 QObject::connect(this, &ComposerController::toChanged, &ComposerController::updateSendAction);
99 QObject::connect(this, &ComposerController::subjectChanged, &ComposerController::updateSendAction); 99 QObject::connect(this, &ComposerController::subjectChanged, &ComposerController::updateSendAction);
100 QObject::connect(this, &ComposerController::accountIdChanged, &ComposerController::updateSendAction);
101 QObject::connect(this, &ComposerController::toChanged, &ComposerController::updateSaveAsDraftAction);
102 QObject::connect(this, &ComposerController::subjectChanged, &ComposerController::updateSaveAsDraftAction);
103 QObject::connect(this, &ComposerController::accountIdChanged, &ComposerController::updateSaveAsDraftAction);
100 updateSendAction(); 104 updateSendAction();
101} 105}
102 106
107void ComposerController::clear()
108{
109 Controller::clear();
110 //Reapply account and identity from selection
111 mIdentitySelector->reapplyCurrentIndex();
112}
113
103Completer *ComposerController::recipientCompleter() const 114Completer *ComposerController::recipientCompleter() const
104{ 115{
105 return mRecipientCompleter.data(); 116 return mRecipientCompleter.data();
@@ -199,7 +210,7 @@ KMime::Message::Ptr ComposerController::assembleMessage()
199 210
200void ComposerController::updateSendAction() 211void ComposerController::updateSendAction()
201{ 212{
202 auto enabled = !getTo().isEmpty() && !getSubject().isEmpty(); 213 auto enabled = !getTo().isEmpty() && !getSubject().isEmpty() && !getAccountId().isEmpty();
203 sendAction()->setEnabled(enabled); 214 sendAction()->setEnabled(enabled);
204} 215}
205 216
@@ -214,6 +225,7 @@ void ComposerController::send()
214 using namespace Sink; 225 using namespace Sink;
215 using namespace Sink::ApplicationDomain; 226 using namespace Sink::ApplicationDomain;
216 227
228 Q_ASSERT(!accountId.isEmpty());
217 Query query; 229 Query query;
218 query.containsFilter<ApplicationDomain::SinkResource::Capabilities>(ApplicationDomain::ResourceCapabilities::Mail::transport); 230 query.containsFilter<ApplicationDomain::SinkResource::Capabilities>(ApplicationDomain::ResourceCapabilities::Mail::transport);
219 query.filter<SinkResource::Account>(accountId); 231 query.filter<SinkResource::Account>(accountId);
@@ -241,7 +253,8 @@ void ComposerController::send()
241 253
242void ComposerController::updateSaveAsDraftAction() 254void ComposerController::updateSaveAsDraftAction()
243{ 255{
244 sendAction()->setEnabled(true); 256 bool enabled = !getAccountId().isEmpty();
257 sendAction()->setEnabled(enabled);
245} 258}
246 259
247void ComposerController::saveAsDraft() 260void ComposerController::saveAsDraft()
@@ -254,7 +267,6 @@ void ComposerController::saveAsDraft()
254 if (!message) { 267 if (!message) {
255 SinkWarning() << "Failed to get the mail: "; 268 SinkWarning() << "Failed to get the mail: ";
256 return; 269 return;
257 // return KAsync::error<void>(1, "Failed to get the mail.");
258 } 270 }
259 271
260 using namespace Sink; 272 using namespace Sink;
diff --git a/framework/domain/composercontroller.h b/framework/domain/composercontroller.h
index 161bcebc..92467d05 100644
--- a/framework/domain/composercontroller.h
+++ b/framework/domain/composercontroller.h
@@ -76,6 +76,9 @@ public:
76 76
77 Q_INVOKABLE void loadMessage(const QVariant &draft, bool loadAsDraft); 77 Q_INVOKABLE void loadMessage(const QVariant &draft, bool loadAsDraft);
78 78
79public slots:
80 virtual void clear() Q_DECL_OVERRIDE;
81
79private slots: 82private slots:
80 void updateSendAction(); 83 void updateSendAction();
81 void updateSaveAsDraftAction(); 84 void updateSaveAsDraftAction();
diff --git a/framework/domain/controller.h b/framework/domain/controller.h
index 9370fdc7..8e6d7155 100644
--- a/framework/domain/controller.h
+++ b/framework/domain/controller.h
@@ -77,7 +77,7 @@ public:
77 virtual ~Controller() = default; 77 virtual ~Controller() = default;
78 78
79public slots: 79public slots:
80 void clear(); 80 virtual void clear();
81 81
82signals: 82signals:
83 void done(); 83 void done();
diff --git a/framework/domain/selector.cpp b/framework/domain/selector.cpp
index ddb23744..d021095b 100644
--- a/framework/domain/selector.cpp
+++ b/framework/domain/selector.cpp
@@ -24,3 +24,8 @@ Selector::Selector(QAbstractItemModel *model) : mModel{model}
24{ 24{
25 QQmlEngine::setObjectOwnership(mModel, QQmlEngine::CppOwnership); 25 QQmlEngine::setObjectOwnership(mModel, QQmlEngine::CppOwnership);
26} 26}
27
28void Selector::reapplyCurrentIndex()
29{
30 setCurrentIndex(currentIndex());
31}
diff --git a/framework/domain/selector.h b/framework/domain/selector.h
index 77c47ba7..fedb91d2 100644
--- a/framework/domain/selector.h
+++ b/framework/domain/selector.h
@@ -40,6 +40,8 @@ public:
40 setCurrent(mModel->index(mCurrentIndex, 0)); 40 setCurrent(mModel->index(mCurrentIndex, 0));
41 } 41 }
42 42
43 void reapplyCurrentIndex();
44
43 int currentIndex() { return mCurrentIndex; } 45 int currentIndex() { return mCurrentIndex; }
44 46
45 virtual void setCurrent(const QModelIndex &) = 0; 47 virtual void setCurrent(const QModelIndex &) = 0;