fix build for macOS 10.13

Change-Id: Ib45139875b3d58675ad7c3a477d2922463115033
diff --git a/src/AppDelegate.mm b/src/AppDelegate.mm
index 6bbee35..be650e3 100644
--- a/src/AppDelegate.mm
+++ b/src/AppDelegate.mm
@@ -215,7 +215,7 @@
         auto convModel = lrc->getAccountModel().getAccountInfo(accountId).conversationModel.get();
         auto conversationOpt = getConversationFromUid(convUid, *convModel);
         if (!conversationOpt.has_value()) { return; }
-        lrc::api::conversation::Info& conversation = conversationOpt.value();
+        lrc::api::conversation::Info& conversation = *conversationOpt;
         bool isIncoming = false;
         auto callModel = lrc->getAccountModel().getAccountInfo(accountId).callModel.get();
         if(callModel->hasCall(conversation.callId)) {
@@ -271,7 +271,7 @@
                                              .getAccountInfo(accountId)
                                              .conversationModel.get());
         if (convOpt.has_value()) {
-            lrc::api::conversation::Info& conversation = convOpt.value();
+            lrc::api::conversation::Info& conversation = *convOpt;
             name = bestIDForConversation(conversation, *lrc->getAccountModel().getAccountInfo(accountId).conversationModel.get());
         }
         NSString* localizedTitle = [NSString stringWithFormat:
diff --git a/src/ChooseContactVC.mm b/src/ChooseContactVC.mm
index 3da7df3..d61cfc0 100644
--- a/src/ChooseContactVC.mm
+++ b/src/ChooseContactVC.mm
@@ -155,7 +155,7 @@
     if (!conversationInfo.has_value()) {
         return;
     }
-    lrc::api::conversation::Info& conv = conversationInfo.value();
+    lrc::api::conversation::Info& conv = *conversationInfo;
     if (table == callsView) {
         auto callID = conv.confId.isEmpty() ? conv.callId : conv.confId;
         [self.delegate joinCall: callID];
@@ -218,7 +218,7 @@
             if (displayNameString.length > 0) {
                 displayNameString = [displayNameString stringByAppendingString:@", "];
             }
-            lrc::api::conversation::Info& conv = conversationOpt.value();
+            lrc::api::conversation::Info& conv = *conversationOpt;
             displayNameString = [displayNameString stringByAppendingString: bestNameForConversation(conv, *convMod)];
         }
         [displayName setStringValue:displayNameString];
@@ -239,7 +239,7 @@
     if (!convOpt.has_value()) {
         return nil;
     }
-    lrc::api::conversation::Info& conversationInfo = convOpt.value();
+    lrc::api::conversation::Info& conversationInfo = *convOpt;
     NSString* displayNameString = bestNameForConversation(conversationInfo, *convMod);
     NSString* displayIDString = bestIDForConversation(conversationInfo, *convMod);
     if(displayNameString.length == 0 || [displayNameString isEqualToString:displayIDString]) {
diff --git a/src/ConversationVC.mm b/src/ConversationVC.mm
index 6860c07..6b01470 100644
--- a/src/ConversationVC.mm
+++ b/src/ConversationVC.mm
@@ -115,7 +115,7 @@
 
     auto convOpt = getConversationFromUid(convUid_, *convModel_);
     if (convOpt.has_value()) {
-        lrc::api::conversation::Info& conversation = convOpt.value();
+        lrc::api::conversation::Info& conversation = *convOpt;
         cachedConv_ = &conversation;
     }
     return cachedConv_;
diff --git a/src/CurrentCallVC.mm b/src/CurrentCallVC.mm
index 6d214fd..71297e6 100644
--- a/src/CurrentCallVC.mm
+++ b/src/CurrentCallVC.mm
@@ -166,7 +166,7 @@
     if (!convOpt.has_value()) {
         return;
     }
-    lrc::api::conversation::Info& conv = convOpt.value();
+    lrc::api::conversation::Info& conv = *convOpt;
     confUid_ = conv.confId;
     [self.chatVC setConversationUid:convUid model: account->conversationModel.get()];
     [self connectSignals];
@@ -223,7 +223,7 @@
     if (!convOpt.has_value()) {
         return;
     }
-    lrc::api::conversation::Info& conversation = convOpt.value();
+    lrc::api::conversation::Info& conversation = *convOpt;
     [self.delegate chooseConversation: conversation model:accountInfo_->conversationModel.get()];
 }
 
@@ -276,7 +276,7 @@
         if (!convOpt.has_value()) {
             return;
         }
-        lrc::api::conversation::Info& conv = convOpt.value();
+        lrc::api::conversation::Info& conv = *convOpt;
         auto& contact = accountInfo_->contactModel->getContact(conv.participants[0]);
         if (contact.profileInfo.type == lrc::api::profile::Type::RING && contact.profileInfo.uri == contactUri)
             accountInfo_->conversationModel->makePermanent(convUid_);
@@ -450,7 +450,7 @@
     if (!convOpt.has_value()) {
         return;
     }
-    lrc::api::conversation::Info& conversation = convOpt.value();
+    lrc::api::conversation::Info& conversation = *convOpt;
     NSString* bestName = bestNameForConversation(conversation, *accountInfo_->conversationModel);
     [contactNameLabel setStringValue:bestName];
     NSString* ringID = bestIDForConversation(conversation, *accountInfo_->conversationModel);
@@ -628,7 +628,7 @@
         if (!convOpt.has_value()) {
             return nil;
         }
-        lrc::api::conversation::Info& conv = convOpt.value();
+        lrc::api::conversation::Info& conv = *convOpt;
         if (conv.uid.isEmpty() || conv.participants.empty()) {
             return nil;
         }
@@ -969,7 +969,7 @@
     if (!convOpt.has_value()) {
         return;
     }
-    lrc::api::conversation::Info& conv = convOpt.value();
+    lrc::api::conversation::Info& conv = *convOpt;
     if (conv.uid.isEmpty() || conv.participants.empty()) {
         return;
     }
@@ -1297,7 +1297,7 @@
     if (!convOpt.has_value()) {
         return;
     }
-    lrc::api::conversation::Info& conversation = convOpt.value();
+    lrc::api::conversation::Info& conversation = *convOpt;
     auto callId = conversation.callId;
     if (not callModel->hasCall(callId)){
         return;
@@ -1341,7 +1341,7 @@
     auto convOpt = getConversationFromUid(convUid_, *accountInfo_->conversationModel.get());
     if (!convOpt.has_value())
         return false;
-    lrc::api::conversation::Info& conv = convOpt.value();
+    lrc::api::conversation::Info& conv = *convOpt;
     auto* callModel = accountInfo_->callModel.get();
     try {
         auto call = callModel->getCall(conv.callId);
diff --git a/src/LeaveMessageVC.mm b/src/LeaveMessageVC.mm
index de25c1d..ad696d1 100644
--- a/src/LeaveMessageVC.mm
+++ b/src/LeaveMessageVC.mm
@@ -194,7 +194,7 @@
         [self show];
         return;
     }
-    lrc::api::conversation::Info& conversation = convOpt.value();
+    lrc::api::conversation::Info& conversation = *convOpt;
     @autoreleasepool {
         auto& imgManip = reinterpret_cast<Interfaces::ImageManipulationDelegate&>(GlobalInstances::pixmapManipulator());
         QVariant photo = imgManip.conversationPhoto(conversation, conversationModel->owner, QSize(120, 120), NO);
diff --git a/src/MessagesVC.mm b/src/MessagesVC.mm
index 9a57e76..4e57319 100644
--- a/src/MessagesVC.mm
+++ b/src/MessagesVC.mm
@@ -179,7 +179,7 @@
         return cachedConv_;
     auto convOpt = getConversationFromUid(convUid_, *convModel_);
     if (convOpt.has_value()) {
-        lrc::api::conversation::Info& conversation = convOpt.value();
+        lrc::api::conversation::Info& conversation = *convOpt;
         cachedConv_ = &conversation;
     }
     return cachedConv_;
diff --git a/src/RingWindowController.mm b/src/RingWindowController.mm
index 949d26a..7b1d5de 100644
--- a/src/RingWindowController.mm
+++ b/src/RingWindowController.mm
@@ -251,7 +251,7 @@
         auto convModel = accInfo->conversationModel.get();
         auto convOpt = getConversationFromUid(convUid, *convModel);
         if (!convOpt.has_value()) { return; }
-        lrc::api::conversation::Info& convInfo = convOpt.value();
+        lrc::api::conversation::Info& convInfo = *convOpt;
         try {
             if (accInfo->contactModel->getContact(convInfo.participants[0]).profileInfo.type == lrc::api::profile::Type::PENDING)
                 [smartViewVC selectPendingList];
@@ -279,7 +279,7 @@
         auto convModel = accInfo->conversationModel.get();
         auto convOpt = getConversationFromUid(convUid, *convModel);
         if (!convOpt.has_value()) { return; }
-        lrc::api::conversation::Info& convInfo = convOpt.value();
+        lrc::api::conversation::Info& convInfo = *convOpt;
         auto callModel = accInfo->callModel.get();
         lrc::api::account::ConfProperties_t accountProperties = accInfo->accountModel->getAccountConfig(accInfo->id);
         if (accountProperties.isRendezVous && (!callModel->hasCall(convInfo.callId) || !callModel->getCall(convInfo.callId).isOutgoing)) {
@@ -315,7 +315,7 @@
                          auto convModel = accInfo.conversationModel.get();
                          auto convOpt = getConversationFromUid(convUid, *convModel);
                          if (!convOpt.has_value()) { return; }
-                         lrc::api::conversation::Info& convInfo = convOpt.value();
+                         lrc::api::conversation::Info& convInfo = *convOpt;
                          [conversationVC setConversationUid:convInfo.uid model:accInfo.conversationModel.get()];
                          [smartViewVC selectConversation: convInfo model:accInfo.conversationModel.get()];
                          [self changeViewTo:SHOW_CONVERSATION_SCREEN];
@@ -328,7 +328,7 @@
                          auto convModel = accInfo.conversationModel.get();
                          auto convOpt = getConversationFromUid(convUid, *convModel);
                          if (!convOpt.has_value()) { return; }
-                         lrc::api::conversation::Info& convInfo = convOpt.value();
+                         lrc::api::conversation::Info& convInfo = *convOpt;
                          [conversationVC setConversationUid:convInfo.uid model:accInfo.conversationModel.get()];
                          [smartViewVC selectConversation: convInfo model:accInfo.conversationModel.get()];
                          [self changeViewTo:LEAVE_MESSAGE];
@@ -662,7 +662,7 @@
     if (!convOpt.has_value()) {
         return;
     }
-    lrc::api::conversation::Info& convInfo = convOpt.value();
+    lrc::api::conversation::Info& convInfo = *convOpt;
     [conversationVC setConversationUid:convInfo.uid model:accInfo.conversationModel.get()];
     [smartViewVC selectConversation: convInfo model:accInfo.conversationModel.get()];
     accInfo.conversationModel.get()->clearUnreadInteractions(QString::fromNSString(conversationId));
@@ -679,7 +679,7 @@
     if (!convOpt.has_value()) {
         return;
     }
-    lrc::api::conversation::Info& convInfo = convOpt.value();
+    lrc::api::conversation::Info& convInfo = *convOpt;
     if (accInfo.contactModel->getContact(convInfo.participants[0]).profileInfo.type == lrc::api::profile::Type::PENDING) {
         [smartViewVC selectPendingList];
     }
@@ -703,7 +703,7 @@
     [smartViewVC selectPendingList];
     auto convOpt = getConversationFromURI(QString::fromNSString(uri), *accInfo.conversationModel.get());
     if (convOpt.has_value()) {
-        lrc::api::conversation::Info& conversation = convOpt.value();
+        lrc::api::conversation::Info& conversation = *convOpt;
         [conversationVC setConversationUid:conversation.uid model:accInfo.conversationModel.get()];
         [smartViewVC selectConversation: conversation model:accInfo.conversationModel.get()];
     }
diff --git a/src/SmartViewVC.mm b/src/SmartViewVC.mm
index f46c4c7..2999778 100755
--- a/src/SmartViewVC.mm
+++ b/src/SmartViewVC.mm
@@ -144,7 +144,6 @@
     auto convOpt = sender == searchResultsView ? convModel_->searchResultForRow(row) : convModel_->filteredConversation(row);
     if (!convOpt.has_value())
         return;
-   // lrc::api::conversation::Info& conversation = convOpt.value();
     convModel_->placeCall(convOpt->get().uid);
 }
 
@@ -466,7 +465,7 @@
     auto convOpt = notification.object == smartView ? convModel_->filteredConversation(row) : convModel_->searchResultForRow(row);
     if (!convOpt.has_value())
         return;
-    lrc::api::conversation::Info& conversation = convOpt.value();
+    lrc::api::conversation::Info& conversation = *convOpt;
     if (selectedUid_ != conversation.uid && !conversation.uid.isEmpty()) {
         selectedUid_ = conversation.uid;
         convModel_->selectConversation(selectedUid_);
@@ -490,7 +489,7 @@
     auto convOpt = isSearching ? convModel_->searchResultForRow(row) : convModel_->filteredConversation(row);
     if (!convOpt.has_value())
         return nil;
-    lrc::api::conversation::Info& conversation = convOpt.value();
+    lrc::api::conversation::Info& conversation = *convOpt;
     NSTableCellView* result;
 
     result = [tableView makeViewWithIdentifier:@"MainCell" owner:tableView];
@@ -694,7 +693,7 @@
     auto convOpt = getConversationFromUid(uid, *convModel_);
     if (!convOpt.has_value())
         return;
-    lrc::api::conversation::Info& conversation = convOpt.value();
+    lrc::api::conversation::Info& conversation = *convOpt;
     @try {
         auto contact = convModel_->owner.contactModel->getContact(conversation.participants[0]);
         if (!contact.profileInfo.uri.isEmpty() && contact.profileInfo.uri.compare(selectedUid_) == 0) {
@@ -736,7 +735,7 @@
     auto convOpt = hasSearchResult ? convModel_->searchResultForRow(0) : convModel_->filteredConversation(0);
     if (!convOpt.has_value())
         return NO;
-    lrc::api::conversation::Info& conversation = convOpt.value();
+    lrc::api::conversation::Info& conversation = *convOpt;
     auto uid = conversation.uid;
 
     if (selectedUid_ == uid) {
@@ -805,7 +804,7 @@
     convModel_->searchResultForRow(NSInteger(index));
     if (!convOpt.has_value())
         return nil;
-    lrc::api::conversation::Info& conversation = convOpt.value();
+    lrc::api::conversation::Info& conversation = *convOpt;
 
     @try {
         auto contact = convModel_->owner.contactModel->getContact(conversation.participants[0]);
@@ -972,7 +971,7 @@
     auto convRef = convModel_->filteredConversation(row);
     if (!convRef.has_value())
         return "";
-    lrc::api::conversation::Info& conversation = convRef.value();
+    lrc::api::conversation::Info& conversation = *convRef;
     auto& convID = conversation.Info::uid;
     return convID;
 }