call: fix selection
animation was not triggered when making a new call or receiving one
Change-Id: I2b7725a1ce92e972dbf59204ee4717b5a33cfee9
Tuleap: #202
diff --git a/src/CurrentCallVC.mm b/src/CurrentCallVC.mm
index 21ec62e..e234abe 100644
--- a/src/CurrentCallVC.mm
+++ b/src/CurrentCallVC.mm
@@ -138,6 +138,7 @@
[personLabel setStringValue:callIdx.data(Qt::DisplayRole).toString().toNSString()];
[timeSpentLabel setStringValue:callIdx.data((int)Call::Role::Length).toString().toNSString()];
+ [stateLabel setStringValue:callIdx.data((int)Call::Role::HumanStateName).toString().toNSString()];
auto contactmethod = qvariant_cast<Call*>(callIdx.data(static_cast<int>(Call::Role::Object)))->peerContactMethod();
BOOL shouldShow = (!contactmethod->contact() || contactmethod->contact()->isPlaceHolder());
@@ -152,7 +153,6 @@
[self.controlsPanel setHidden:current->hasParentCall()];
[self.joinPanel setHidden:!current->hasParentCall()];
- [stateLabel setStringValue:callIdx.data((int)Call::Role::HumanStateName).toString().toNSString()];
switch (state) {
case Call::State::DIALING:
[loadingIndicator setHidden:NO];
@@ -273,7 +273,16 @@
QObject::connect(&CallModel::instance(),
&CallModel::callStateChanged,
[self](Call* c, Call::State state) {
- [self updateCall];
+ auto current = CallModel::instance().selectionModel()->currentIndex();
+ if (!current.isValid())
+ [self animateOut];
+ else if (CallModel::instance().getIndex(c) == current) {
+ if (c->state() == Call::State::OVER) {
+ [self animateOut];
+ } else {
+ [self updateCall];
+ }
+ }
});
}
@@ -485,6 +494,11 @@
[self.chatButton setState:NSOffState];
[self.mergeCallsButton setState:NSOffState];
[self collapseRightView];
+
+ [personLabel setStringValue:@""];
+ [timeSpentLabel setStringValue:@""];
+ [stateLabel setStringValue:@""];
+ [self.addContactButton setHidden:YES];
}
-(void) animateOut