diff --git a/linphone-app/assets/images/tel_keypad_voicemail_custom.svg b/linphone-app/assets/images/tel_keypad_voicemail_custom.svg
new file mode 100644
index 000000000..48930fd49
--- /dev/null
+++ b/linphone-app/assets/images/tel_keypad_voicemail_custom.svg
@@ -0,0 +1,63 @@
+
+
diff --git a/linphone-app/assets/languages (copy)/tr.ts b/linphone-app/assets/languages (copy)/tr.ts
new file mode 100644
index 000000000..65eaeabd6
--- /dev/null
+++ b/linphone-app/assets/languages (copy)/tr.ts
@@ -0,0 +1,3672 @@
+
+
+
+
+ About
+
+ ok
+ TAMAM
+
+
+
+ ActivateAppSipAccountWithEmail
+
+ activateAppSipAccount
+ %1 HESABINIZI ETKİNLEŞTİRİN
+
+
+ confirmAction
+ ETKİNLEŞTİR
+
+
+ activationSteps
+ Hesabınızı etkinleştirmek için: %1 adresine gönderdiğimiz yönergeleri takip edin ardından aşağıdakine tıklayın.
+
+
+
+ ActivateAppSipAccountWithPhoneNumber
+
+ activateAppSipAccount
+ %1 HESABINIZI ETKİNLEŞTİRİN
+
+
+ confirmAction
+ ETKİNLEŞTİR
+
+
+ activationSteps
+ %1 numarasına doğrulama kodu içeren SMS gönderdik. Telefon numarası doğrulamanızı tamamlamak için lütfen 4 haneli kodu aşağıya girin.
+
+
+
+ App
+
+ commandLineOptionVerbose
+ çalışırken bazı hata ayıklama bilgilerini stdout'a günlükle
+
+
+ commandLineOptionConfig
+ kullanılacak %1 yapılandırma dosyasını belirt
+
+
+ applicationDescription
+ Özgür SIP görüntülü telefonu.
+
+
+ commandLineOptionIconified
+ sistem tepsisinde başla, ana arayüzü gösterme
+
+
+ commandLineOptionConfigArg
+ dosya
+
+
+ commandLineOptionHelp
+ bu yardımı göster
+
+
+ commandLineOptionVersion
+ uygulama sürümünü göster
+
+
+ commandLineOptionCliHelp
+ %1'u komut satırı arayüzüyle kullanmak için yardım menüsünü gösterir
+
+
+ commandLineDescription
+ komut satırıyla uygulamaya emir gönder
+
+
+ restore
+ Kurtar
+
+
+ quit
+ Çıkış
+
+
+ settings
+ Tercihler
+
+
+ about
+ Hakkında
+
+
+ commandLineOptionFetchConfig
+
+
+
+ commandLineOptionFetchConfigArg
+
+
+
+ commandLineOptionCall
+
+
+
+ commandLineOptionCallArg
+
+
+
+
+ AssistantAbstractView
+
+ back
+ GERİ
+
+
+
+ AssistantHome
+
+ useAppSipAccount
+ %1 HESABI KULLAN
+
+
+ useOtherSipAccount
+ SIP HESABI KULLAN
+
+
+ fetchRemoteConfiguration
+ UZAKTAN YAPILANDIRMA AL
+
+
+ homeTitle
+ HOŞ GELDİNİZ
+
+
+ homeDescription
+ Bu yardımcı, %1 hesabınızı yapıldırmanız ve kullanmanız için size yardım edecek.
+
+
+ createAppSipAccount
+ %1 HESABI OLUŞTUR
+
+
+
+ AssistantModel
+
+ loginWithUsernameFailed
+ Giriş başarısız. Lütfen kullanıcı adı/parolanızı denetleyin.
+
+
+ usernameStatusTooShort
+ Çok kısa! (en az %1 karakter)
+
+
+ usernameStatusTooLong
+ Çok uzun! (en çok %1 karakter)
+
+
+ usernameStatusInvalidCharacters
+ Geçersiz karakter saptandı. (regex: `%1`)
+
+
+ usernameStatusInvalid
+ Geçersiz kullanıcı adı.
+
+
+ passwordStatusTooShort
+ Çok kısa! (en az %1 karakter)
+
+
+ passwordStatusTooLong
+ Çok uzun! (en çok %1 karakter)
+
+
+ passwordStatusInvalidCharacters
+ Geçersiz karakter saptandı. (regex: `%1`)
+
+
+ passwordStatusMissingCharacters
+ Eksik karakterler: `%1`.
+
+
+ requestFailed
+ İstek gönderilemiyor.
+
+
+ emailStatusMalformed
+ Doğru olmayan e-posta adresi.
+
+
+ emailStatusMalformedInvalidCharacters
+ Doğru olmayan e-posta adresi veya geçersiz karakterler.
+
+
+ cannotSendSms
+ Sunucu hatası: sms gönderilemedi.
+
+
+ accountAlreadyExists
+ Bu hesap zaten var.
+
+
+ smsActivationFailed
+ SMS etkinleştirme başarısız!
+
+
+ emailActivationFailed
+ Lütfen hesabınızı doğruladığınızı onaylayın veya yeniden deneyin.
+
+
+ phoneNumberStatusInvalid
+ Geçersiz telefon numarası!
+
+
+ phoneNumberStatusTooShort
+ Çok kısa!
+
+
+ phoneNumberStatusTooLong
+ Çok uzun!
+
+
+ phoneNumberStatusInvalidCountryCode
+ Geçersiz ülke kodu!
+
+
+ loginWithPhoneNumberFailed
+ Giriş başarısız. Lütfen telefon numaranızı denetleyin.
+
+
+ unableToAddAccount
+ Bu hesap eklenemiyor.
+
+
+
+ AuthenticationRequest
+
+ cancel
+ İPTAL
+
+
+ confirm
+ GİR
+
+
+ identityLabel
+ Kimlik
+
+
+ passwordLabel
+ Parola
+
+
+ authenticationRequestDescription
+ Yetkilendirilemiyor. Lütfen parolanızı onaylayın.
+
+
+ userIdLabel
+ Kullanıcı kimliği (isteğe bağlı)
+
+
+ realmLabel
+ Yetki alanı
+
+
+
+ CallModel
+
+ callStatsCodec
+ Çözücü
+
+
+ callStatsUploadBandwidth
+ Yükleme bant genişliği
+
+
+ callStatsDownloadBandwidth
+ İndirme bant genişliği
+
+
+ callStatsEstimatedDownloadBandwidth
+ Hesaplanan indirme bant genişliği
+
+
+ callStatsIceState
+ ICE durumu
+
+
+ callStatsIpFamily
+ IP ailesi
+
+
+ callStatsSenderLossRate
+ Gönderici kayıp oranı
+
+
+ callStatsReceiverLossRate
+ Alıcı kayıp oranı
+
+
+ callStatsJitterBuffer
+ Gecikme arabelleği
+
+
+ callStatsSentVideoDefinition
+ Giden görüntü tanımı
+
+
+ callStatsReceivedVideoDefinition
+ Alınan görüntü tanımı
+
+
+ iceStateNotActivated
+ Etkin değil
+
+
+ iceStateFailed
+ Başarısız
+
+
+ iceStateInProgress
+ Sürüyor
+
+
+ iceStateReflexiveConnection
+ Dönüşlü bağlantı
+
+
+ iceStateHostConnection
+ Ana makine bağlantısı
+
+
+ iceStateRelayConnection
+ Röle bağlantısı
+
+
+ iceStateInvalid
+ Geçersiz
+
+
+ callErrorDeclined
+ Uzak şahıs çağrıyı reddetti.
+
+
+ callErrorNotFound
+ Uzak şahıs bulunamadı.
+
+
+ callErrorBusy
+ Uzak şahıs meşgul.
+
+
+ callErrorNotAcceptable
+ Uzak şahıs çağrıyı kabul edemez.
+
+
+ callStatsReceivedFramerate
+ Alınan çerçeve oranı
+
+
+ callStatsSentFramerate
+ Giden çerçeve oranı
+
+
+
+ CallSipAddress
+
+ cancel
+ İPTAL
+
+
+ callSipAddressDescription
+ Yeni çağrı başlat.
+
+
+
+ CallStatistics
+
+ audioStatsLabel
+ Ses
+
+
+ videoStatsLabel
+ Görüntü
+
+
+
+ CallTransfer
+
+ cancel
+ İPTAL
+
+
+ callTransferDescription
+ Bu çağrıyı aktarmak ister misiniz?
+
+
+
+ Calls
+
+ acceptAudioCall
+ SESLİ ÇAĞRIYI KABUL ET
+
+
+ acceptVideoCall
+ GÖRÜNTÜLÜ ÇAĞRIYI KABUL ET
+
+
+ terminateCall
+ TELEFONU KAPAT
+
+
+ resumeCall
+ ÇAĞRIYI DEVAM ETTİR
+
+
+ transferCall
+ ÇAĞRIYI AKTAR
+
+
+ callPause
+ ÇAĞRIYI DURAKLAT
+
+
+ attendedTransferComplete
+ 'COMPLETE ATTENDED TRANSFER' : Title button, design is in uppercase.
+
+
+
+ attendedTransferCall
+ 'ATTENDED TRANSFER CALL' : Title button, design is in uppercase.
+
+
+
+
+ CallsWindow
+
+ callsTitle
+ Çağrılar
+
+
+ acceptClosingDescription
+ Tüm çağrılara son vermek istediğinize emin misiniz?
+
+
+
+ Chat
+
+ newMessagePlaceholder
+ İletinizi girin
+
+
+ noFileTransferUrl
+ Dosya gönderilemiyor.
+Sunucu url'si yapılandırılmadı.
+
+
+ chatTyping
+ '%1 is typing...' indicate that someone is composing in chat
+
+
+
+
+
+ allTextCopied
+ "Copied to clipboard" : when a user copy a text from the menu, this message show up.
+
+
+
+ selectedTextCopied
+ "Selection copied to clipboard" : when a user copy a text from the menu, this message show up.
+
+
+
+
+ ChatDeliveries
+
+ deliveryDelivered
+ 'Send to %1 - %2' Little message to indicate the state of a message
+
+ %1 is someone, %2 is a date/time. The state is that the message has been sent but not received.
+
+
+ deliveryDeliveredToUser
+ 'Retrieved by %1 - %2' Little message to indicate the state of a message
+
+ %1 is someone, %2 is a date/time. The state is that the message has been retrieved
+
+
+ deliveryDisplayed
+ 'Read by %1 - %2' Little message to indicate the state of a message
+
+ %1 is someone, %2 is a date/time. The state that the message has been read.
+
+
+ deliveryNotDelivered
+ "%1 have nothing received" Little message to indicate the state of a message
+
+ %1 is someone. The state is that the message hasn't been delivered.
+
+
+
+ ChatMenu
+
+ menuCopyAll
+ 'Copy all' : Text menu to copy all message text into clipboard
+
+
+
+ menuCopy
+ 'Copy' : Text menu to copy selected text in message into clipboard
+ Kopyala
+
+
+ menuPlayMe
+ Beni oynat!
+
+
+ menuDeliveryStatus
+ 'Delivery status' : Item menu that lead to IMDN of a message
+
+
+
+ menuDelete
+ 'Delete' : Item menu to delete a message
+
+
+
+ menuHideDeliveryStatus
+ 'Hide delivery status' : Item menu that lead to IMDN of a message
+
+
+
+
+ ChatNoticeModel
+
+ nMinute
+
+
+
+
+
+ nHour
+
+
+
+
+
+ nDay
+
+
+
+
+
+ nWeek
+
+
+
+
+
+
+ Cli
+
+ appCliDescription
+ %1 uygulamasını komut satırlarıyla denetleme yolu.
+
+
+ uriCommandLineSyntax
+
+
+
+ cliCommandLineSyntax
+
+
+
+ commandsName
+ komut listesi:
+
+
+ showFunctionDescription
+ Uygulamanın ana penceresini göster.
+
+
+ callFunctionDescription
+ Sip adresine çağrı başlat.
+
+
+ initiateConferenceFunctionDescription
+ Toplantı başlat.
+
+
+ joinConferenceFunctionDescription
+ Sip adresinin ev sahipliğindeki toplantıya görünen ad ile katıl. Eğer vekil yapılandırmaya bağlandıysanız "toplantıya şunun ile katıl"a bakın.
+
+
+ joinConferenceAsFunctionDescription
+ Sip adresinin ev sahipliğindeki toplantıya misafir sip adresi ile katıl. Eğer vekil yapılandırmaya bağlandıysanız "toplantıya-katıl"a bakın.
+
+
+ byeFunctionDescription
+
+
+
+
+ CodecsViewer
+
+ codecMime
+ Ad
+
+
+ codecEncoderDescription
+ Açıklama
+
+
+ codecEncoderClockRate
+ Oran (Hz)
+
+
+ codecBitrate
+ Bit oranı (Kbit/s)
+
+
+ codecRecvFmtp
+ Parametreler
+
+
+ codecStatus
+ Durum
+
+
+
+ Conference
+
+ conferenceTitle
+ TOPLANTI
+
+
+
+ ConferenceControls
+
+ conference
+ TOPLANTI
+
+
+
+ ConferenceManager
+
+ conferenceManagerDescription
+ Toplantı katılımcılarınızı yönetin.
+
+
+ cancel
+ İPTAL
+
+
+ confirm
+ BAŞLAT
+
+
+
+ ConfirmDialog
+
+ cancel
+ İPTAL
+
+
+ confirm
+ ONAYLA
+
+
+
+ ContactEdit
+
+ removeContactDescription
+ Bu kişiyi adres defterinizden silmek istediğinize emin misiniz?
+
+
+ sipAccounts
+ SIP HESAPLARI
+
+
+ address
+ ADRES
+
+
+ emails
+ E-POSTA(LAR)
+
+
+ webSites
+ WEB SİTE(LERİ)
+
+
+ avatarChooserTitle
+ Avatarınızı seçin
+
+
+ companies
+ ŞİRKETLER
+
+
+ save
+ KAYDET
+
+
+ cancel
+ İPTAL
+
+
+ sipAccountsPlaceholder
+ SIP hesabı
+
+
+ companiesPlaceholder
+ Şirket
+
+
+ emailsPlaceholder
+ E-posta
+
+
+ webSitesPlaceholder
+ Web site
+
+
+ abortEditDescriptionText
+ Kişi düzenlemesini iptal etmek istediğinize emin misiniz?
+
+
+ tooltipShowConversation
+ Sohbeti göster
+
+
+ missingConferenceURI
+ 'You need to set the conference URI in your account settings to create a conference based chat room.' : Tooltip to warn the user that a setting is missing in its configuration.
+
+
+
+
+ Contacts
+
+ searchContactPlaceholder
+ Kişi ara
+
+
+ selectAllContacts
+ Tümü
+
+
+ selectConnectedContacts
+ Bağlı
+
+
+ addContact
+ KİŞİ EKLE
+
+
+ removeContactDescription
+ Bu kişiyi adres defterinizden silmek istediğinize emin misiniz?
+
+
+ missingConferenceURI
+ 'You need to set the conference URI in your account settings to create a conference based chat room.' : Tooltip to warn the user that a setting is missing in its configuration.
+
+
+
+
+ Conversation
+
+ displayCallsAndMessages
+ TÜMÜ
+
+
+ displayCalls
+ ÇAĞRILAR
+
+
+ displayMessages
+ İLETİLER
+
+
+ removeAllEntriesDescription
+ Bu geçmişi temizlemek istediğinize emin misiniz?
+
+
+ tooltipContactEdit
+ Kişi düzenle
+
+
+ tooltipContactAdd
+ Kişi ekle
+
+
+ cleanHistory
+ Geçmişi sil
+
+
+ adminStatus
+ 'Admin' : Admin(istrator)
+
+ One word title for describing the current admin status
+
+
+ conversationMenuGroupInformations
+ 'Group information' : Item menu to get information about the chat room
+
+
+
+ conversationMenuDevices
+ "Conversation's devices" : Item menu to get all participant devices of the chat room
+
+
+
+ conversationMenuEphemeral
+ 'Ephemeral messages' : Item menu to enable ephemeral mode
+
+
+
+ groupChatCallButton
+ "Call all chat room's participants" : tooltip on a button for calling all participant in the current chat room
+
+
+
+ searchMessagesPlaceholder
+ 'Search in messages' : this is a placeholder when searching something in the timeline list
+
+
+
+
+ CreateAppSipAccount
+
+ createAppSipAccountDescription
+ Hesabınızı nasıl oluşturmak istersiniz?
+
+
+ createAppSipAccountTitle
+ %1 HESABI OLUŞTUR
+
+
+ withPhoneNumber
+ TELEFON NUMARASIYLA
+
+
+ withEmailAddress
+ E-POSTA ADRESİYLE
+
+
+
+ CreateAppSipAccountWithEmail
+
+ createAppSipAccountTitle
+ %1 HESABI OLUŞTUR
+
+
+ confirmAction
+ OLUŞTUR
+
+
+ usernameLabel
+ Kullanıcı adı
+
+
+ emailLabel
+ E-posta
+
+
+ passwordLabel
+ Parola
+
+
+ passwordConfirmationLabel
+ Parola onayı
+
+
+ passwordConfirmationError
+ Girdiğiniz parolalar eşleşmiyor.
+
+
+ quitWarning
+ Hesabınız oluşturuldu ancak henüz doğrulanmadı. Bu görünümden çıkmak istediğinize emin misiniz?
+
+
+ displayNameLabel
+ Görünen ad (isteğe bağlı)
+
+
+
+ CreateAppSipAccountWithPhoneNumber
+
+ createAppSipAccountTitle
+ %1 HESABI OLUŞTUR
+
+
+ countryLabel
+ Ülke
+
+
+ phoneNumberLabel
+ Telefon numarası
+
+
+ usernameLabel
+ Kullanıcı adı
+
+
+ displayNameLabel
+ Görünen ad (isteğe bağlı)
+
+
+ confirmAction
+ OLUŞTUR
+
+
+ quitWarning
+ Hesabınız oluşturuldu ancak henüz doğrulanmadı. Eğer bu görünümden çıkarsanız, hesabınızı 24 saat içinde doğrulamanız ve kendi kendinize yeniden eklemek zorunda kalırsınız.
+
+
+
+ DroppableTextArea
+
+ fileChooserTitle
+ Lütfen bir veya daha çok dosya seçin
+
+
+ dropYourAttachment
+ Ekinizi atın
+
+
+ attachmentTooltip
+ Dosya gönder
+
+
+
+ EphemeralChatRoom
+
+ cancelButton
+ 'cancel' : button text for cancelling operation
+
+
+
+ startButton
+ 'start' : button text to start ephemeral mode
+
+
+
+ ephemeralTitle
+ "Ephemeral messages" : Popup title for ephemerals
+
+
+
+ ephemeralText
+ 'New messages will be deleted on both ends once it has been read by your contact. Select a timeout.' : Context Explanation for ephemerals
+
+
+
+ ephemeralNotInConference!
+ 'Ephemeral message is only supported in conference based chat room!'
+
+ Warning about not being in conference based chat room.
+
+
+ disabled
+ 'Disabled'
+
+
+
+ nMinute
+ '%1 minute'
+
+
+
+
+
+ nHour
+ '%1 hour'
+
+
+
+
+
+ nDay
+ '%1 day'
+
+
+
+
+
+ nWeek
+ '%1 week'
+
+
+
+
+
+
+ Event
+
+ incomingCall
+ Gelen çağrı
+
+
+ outgoingCall
+ Giden çağrı
+
+
+ declinedIncomingCall
+ Reddilen gelen çağrı
+
+
+ declinedOutgoingCall
+ Reddedilen giden çağrı
+
+
+ endedCall
+ Son verilen çağrı
+
+
+ missedIncomingCall
+ Yanıtsız gelen çağrı
+
+
+ missedOutgoingCall
+ Yanıtsız giden çağrı
+
+
+
+ FetchRemoteConfiguration
+
+ confirmAction
+ AL
+
+
+ fetchRemoteConfigurationTitle
+ UZAKTAN YAPILANDIRMA AL
+
+
+ urlLabel
+ URL
+
+
+ remoteProvisioningError
+ Bu uzaktan ön hazırlık uri'si belirlenemiyor.
+
+
+ remoteProvisioningUpdateDescription
+ Uygulamanın yeniden başlaması gerekiyor. Şimdi yeniden başlatmak ister misiniz?
+
+
+
+ HistoryView
+
+ removeAllEntriesDescription
+ Bu geçmişi temizlemek istediğinize emin misiniz?
+
+
+ tooltipContactEdit
+ Kişi düzenle
+
+
+ tooltipContactAdd
+ Kişi ekle
+
+
+ cleanHistory
+ Geçmişi sil
+
+
+
+ Home
+
+ howToDescription
+ %1'un nasıl kullanılacağıyla ilgili yardıma mı gereksiniyorsunuz?
+
+
+ howToTitle
+ %1 NASIL KULLANILIR
+
+
+ inviteDescription
+ %1'daki arkadaşlarınızı davet edin.
+
+
+ inviteTitle
+ ARKADAŞLARINIZI DAVET EDİN
+
+
+ accountAssistantDescription
+ %1 hesabı oluştur veya yönet.
+
+
+ accountAssistantTitle
+ HESAP YARDIMCISI
+
+
+ assistantButton
+ YARDIMCI
+
+
+ showTooltips
+ Bilgi çubuklarını göster
+
+
+ inviteButton
+ DAVET ET
+
+
+
+ Incall
+
+ acceptVideoDescription
+ Kişiniz görüntüyü açmak istiyor.
+
+
+ securedStringFormat
+ Çağrı şununla şifrelendi: %1.
+
+
+ callNotSecured
+ Çağrı şifrelenmedi.
+
+
+ takeSnapshotLabel
+ Anlık görüntü al.
+
+
+ startRecordingLabel
+ Kayda başla.
+
+
+ stopRecordingLabel
+ Kaydı durdur.
+
+
+ pendingRequestLabel
+
+
+
+
+ IncallFullscreenWindow
+
+ takeSnapshotLabel
+ Anlık görüntü al.
+
+
+ startRecordingLabel
+ Kayda başla.
+
+
+ stopRecordingLabel
+ Kaydı durdur.
+
+
+
+ InfoChatRoom
+
+ quitGroupButton
+ 'Exit group' : Button label
+
+
+
+ ok
+ 'OK' : Button label
+ TAMAM
+
+
+ addParticipantPlaceholder
+ 'Add Participants' : Placeholder in a search bar for adding participant to the chat room
+
+
+
+ addParticipantTooltip
+ 'Search participants in your contact list in order to invite them into the chat room.'
+
+ Explanation for inviting the selected participants into chat room
+
+
+ participantList
+ 'Participant list'
+
+
+
+ adminStatus
+ 'Admin' : Admin(istrator)
+
+ word for admin status
+
+
+ chatRoomDetailsTitle
+ "Group information" : Popup title.
+
+ popup display data about the current chat room
+
+
+
+ InfoEncryption
+
+ cancelButton
+ 'CANCEL' : button text for cancelling operation
+
+
+
+ callButton
+ 'CALL' : Button that lead to a call
+
+
+
+ okButton
+ 'OK' : Button that validate the popup to be redirected to the device list
+
+
+
+ infoEncryptionTitle
+ 'End-to-end encrypted' Popup title about encryption information.
+
+
+
+ encryptionExplanation
+ "Instant messages are end-to-end encrypted in secured conversations. It is possible to upgrade the security level of a conversation by authentificating participants."
+
+ Explanation of Encryption
+
+
+ encryptionProcessExplanation
+ "To do so, call the contact and follow the authentification process."
+
+ Explanation process
+
+
+
+ InviteFriends
+
+ enterEmailLabel
+ Arkadaşın e-posta adresi
+
+
+ messageLabel
+ İleti
+
+
+ cancel
+ İPTAL
+
+
+ confirm
+ ONAYLA
+
+
+ inviteFriendsTitle
+ Arkadaşları Davet Et
+
+
+ defaultMessage
+ %1 sizi %2'da davet ediyor !
+
+
+ defaultSubject
+ %1 daveti
+
+
+ forcedMessage
+ Uygulamayı bilgisayarınıza indirin ve kullanıcıları ücretsiz olarak aramaya ve konuşmaya başlayın.
+
+Buraya tıklayın: <a href="%1">%1</a>
+
+
+
+
+ MainWindow
+
+ mainSearchBarPlaceholder
+ Kişi ara, çağrı veya sohbet başlat…
+
+
+ contactsEntry
+ KİŞİLER
+
+
+ autoAnswerStatus
+ kendiliğinden
+
+
+ smartSearchBarTooltip
+ Sesli veya görüntülü çağrı başlatmak, ileti göndermek ve kişi eklemek için akıllı arama çubuğunu kullanın. Yalnızca arkadaşınızın SIP adresini veya kullanıcı adını girin.
+
+
+ newConferenceButton
+ Konferans aramasını başlat
+
+
+ newChatRoom
+ 'Open Conference' : Tooltip to illustrate a button
+
+
+
+ hideTimeline
+ 'Hide Timeline' : Tooltip for a button that hide the timeline
+
+
+
+ openTimeline
+ 'Open Timeline' : Tooltip for a button that open the timeline
+
+
+
+ openHome
+ 'Open Home' : Tooltip for a button that open the home view
+
+
+
+
+ MainWindowMenuBar
+
+ settings
+ Tercihler
+
+
+ about
+ Hakkında
+
+
+ quit
+ Çıkış
+
+
+ checkForUpdates
+ 'Check for updates' : Item menu for checking updates
+
+
+
+
+ MainWindowTopMenuBar
+
+ settings
+ Tercihler
+
+
+ about
+ Hakkında
+
+
+ quit
+ Bırakın
+
+
+
+ ManageAccounts
+
+ ok
+ TAMAM
+
+
+ selectPresenceLabel
+ Bulunma durumu
+
+
+ selectAccountLabel
+ Etkin hesap
+
+
+
+ MultimediaParameters
+
+ ok
+ TAMAM
+
+
+
+ NewChatRoom
+
+ cancelButton
+ 'Cancel' : Cancel button
+
+
+
+ startButton
+ 'Launch' : Start button
+
+
+
+ missingSubject
+ 'You need to fill a subject.' : Tooltip to warn a user on missing field.
+
+
+
+ missingParticipants
+ 'You need at least %1 participant.' : Tooltip to warn a user that there are not enough participants for the chat creation.
+
+
+
+
+
+ missingConferenceURI
+ 'You need to set the conference URI in your account settings to create a conference based chat room.' : Tooltip to warn the user that a setting is missong in its configuration.
+
+
+
+ newChatRoomTitle
+ 'Start a chat room' : Title of a popup about creation of a chat room
+
+
+
+ askEncryption
+ 'Would you like to encrypt your chat?' : Ask about setting the chat room as secured.
+
+
+
+ subjectLabel
+ 'Subject' : Label of a text field about the subject of the chat room
+
+
+
+ subjectTooltip
+ 'Current subject of the Chat Room. It cannot be empty'
+
+ Explanation about the subject of the chat room
+
+
+ participantSelectionPlaceholder
+ 'Select participants' : Placeholder for a search on participant to add them in selection.
+
+
+
+ participantSelectionTooltip
+ 'Search in your contacts or add a custom one to the chat room.'
+
+
+
+ adminStatus
+ 'Admin' : Admin(istrator)
+
+ word for admin status
+
+
+ removeParticipantSelection
+ 'Remove this participant from the selection' : Explanation about removing participant from a selection
+
+ This is a tooltip
+
+
+ requiredField
+ 'Required' : Word relative to a star to explain that it is a requirement (Field form)
+
+
+
+ subjectPlaceholder
+ 'Give a subject' : Placeholder in a form about setting a subject
+
+
+
+ LastContactsTitle
+ 'Last contacts' : Header for showing last contacts
+
+
+
+
+ Notice
+
+ conferenceCreatedEvent
+ 'You have joined the group' : Little message to show on the event when the user join the chat group.
+
+
+
+ conferenceCreatedTerminated
+ 'You have left the group' : Little message to show on the event when the user leave the chat group.
+
+
+
+ conferenceParticipantAddedEvent
+ '%1 has joined' : Little message to show on the event when someone join the chat group.
+
+
+
+ conferenceParticipantRemovedEvent
+ '%1 has left' : Little message to show on the event when someone leave the chat group
+
+
+
+ conferenceParticipantSetAdminEvent
+ '%1 is now an admin' : Little message to show on the event when someone get the admin status. %1 is somebody
+
+
+
+ conferencePArticipantUnsetAdminEvent
+ '%1 is no more an admin' : Little message to show on the event when somebody lost its admin status. %1 is somebody
+
+
+
+ conferenceSecurityEvent
+ 'Security level degraded by %1': Little message to show on the event when a security level has been lost.
+
+
+
+ conferenceEphemeralMessageEnabledEvent
+ 'Ephemeral messages have been enabled: %1' : Little message to show on the event when ephemeral has been activated. %1 is a date time
+
+
+
+ conferenceEphemeralMessageDisabledEvent
+ 'Ephemeral messages have been disabled': Little message to show on the event when ephemeral has been deactivated.
+
+
+
+ conferenceSubjectChangedEvent
+ 'New subject : %1' : Little message to show on the event when the subject of the chat room has been changed. %1 is the new subject.
+
+
+
+ conferenceEphemeralMessageLifetimeChangedEvent
+ 'Ephemeral messages have been updated: %1' : Little message to show on the event when ephemeral has been updated. %1 is a date time
+
+
+
+
+ Notifier
+
+ newVersionAvailable
+ Yeni sürüm (%1) var!
+
+
+ newFileMessage
+ Yeni ek alındı!
+
+
+
+ OnlineInstallerDialog
+
+ confirm
+ ONAYLA
+
+
+ onlineInstallerExtractingDescription
+ %1 çıkarılıyor...
+
+
+ onlineInstallerDownloadingDescription
+ %1 indiriliyor...
+
+
+ onlineInstallerFinishedDescription
+ %1 kuruldu!
+
+
+ onlineInstallerFailedDescription
+ %1 kurulumu başarısız!
+
+
+
+ OutgoingMessage
+
+ messageError
+ Hata
+
+
+ messageRead
+ Okundu
+
+
+ messageDelivered
+ İletildi
+
+
+
+ ParticipantsView
+
+ participantsAdminHeader
+ '(Admin)' : One word for Admin(istrator)
+
+ Little Header in one word for a column in participant
+
+
+
+ Presence
+
+ presenceOnline
+ Uygun
+
+
+ presenceBusy
+ Meşgul
+
+
+ presenceDoNotDisturb
+ Rahatsız etme
+
+
+ presenceOffline
+ Çevrim dışı
+
+
+
+ QObject
+
+ LinphoneEnums_TunnelModeEnable
+ 'Enable' : One word for button action to enable tunnel mode.
+
+
+
+ LinphoneEnums_TunnelModeDisable
+ 'Disable' : One word for button action to disable tunnel mode.
+
+
+
+ LinphoneEnums_TunnelModeAuto
+ 'Auto' : One word for button action to set the auto tunnel mode.
+
+
+
+
+ SettingsAdvanced
+
+ logsTitle
+ Günlükler
+
+
+ logsFolderLabel
+ Günlük klasörü
+
+
+ sendLogs
+ GÜNLÜKLERİ GÖNDER
+
+
+ logsUploadUrlLabel
+ Günlüklerin yükleneceği sunucu url'si
+
+
+ logsUploadFailed
+ Günlük yükleme başarısız.
+
+
+ logsEnabledLabel
+ Günlükler etkin
+
+
+ cleanLogs
+ GÜNLÜKLERİ TEMİZLE
+
+
+ cleanLogsDescription
+ Tüm günlükleri temizlemek istediğinize emin misiniz?
+
+
+ developerSettingsTitle
+ Geliştirici ayarları
+
+
+ developerSettingsEnabledLabel
+ Geliştirici ayarlarını etkinleştir
+
+
+ logsMailerFailed
+ Message when Linphone try to open a mailer to send logs, after uploading them to the server (%1 would be the upload url)
+ Posta bulunamadı, ancak %1 konumuna günlükler yüklendi
+
+
+ logsMailerSuccess
+ Günlükler %1 dosyasına yüklendi
+
+
+ contactsTitle
+ Kişiler
+
+
+ noPlugin
+ 'No Plugins to load' : Text in combobox
+
+
+
+
+ SettingsAudio
+
+ audioTitle
+ Ses parametreleri
+
+
+ playbackDeviceLabel
+ Kayıttan oynatma aygıtı
+
+
+ captureDeviceLabel
+ Yakalama aygıtı
+
+
+ ringerDeviceLabel
+ Zil aygıtı
+
+
+ ringLabel
+ Zil
+
+
+ echoCancellationLabel
+ Yankı gidermeyi etkinleştir
+
+
+ audioCodecsTitle
+ Ses çözücüler
+
+
+ showAudioCodecsLabel
+ Ses çözücüleri göster
+
+
+ playbackGainLabel
+ Oynatma kazancı
+
+
+ captureGainLabel
+ Kazancı yakalayın
+
+
+ audioTestLabel
+ Yakalama seviyesi
+
+
+ audioSettingsInCallWarning
+ Sesli çağrı devam ediyor: bazı ayarlar kullanılamıyor.
+
+
+ echoCancellationCalibrationLabel
+
+
+
+ calibratingEchoCancellationInProgress
+
+
+
+ calibratingEchoCancellationDone
+
+
+
+ calibratingEchoCancellationFailed
+
+
+
+ calibratingEchoCancellationNone
+
+
+
+
+ SettingsCallsChat
+
+ fileServerLabel
+ Dosya sunucusu
+
+
+ encryptWithLimeLabel
+ LIME ile şifrele
+
+
+ limeDisabled
+ Devre dışı
+
+
+ limeRequired
+ Zorunlu
+
+
+ limePreferred
+ Yeğlenen
+
+
+ chatTitle
+ Sohbet
+
+
+ callsTitle
+ Çağrılar
+
+
+ encryptionLabel
+ Şfireleme
+
+
+ noEncryption
+ Hiçbiri
+
+
+ autoAnswerLabel
+ Kendiliğinden yanıtla
+
+
+ autoAnswerDelayLabel
+ Gecikme (ms türünde)
+
+
+ autoAnswerWithVideoLabel
+ Kendiliğinden yanıtla (görüntüyle)
+
+
+ chatEnabledLabel
+ Konuşmayı etkinleştir
+
+
+ callRecorderEnabledLabel
+ Çağrı kaydediciyi etkinleştir
+
+
+ chatNotificationSoundEnabledLabel
+ Bildirim sesini etkinleştir
+
+
+ chatNotificationSoundLabel
+ Bildirim sesi
+
+
+ conferenceEnabledLabel
+ Toplantıyı etkinleştir
+
+
+ contactsTitle
+ Kişiler
+
+
+ contactsEnabledLabel
+ Kişileri etkinleştir
+
+
+ muteMicrophoneEnabledLabel
+ Mikrofonu kısmayı etkinleştir
+
+
+ outgoingCallsEnabledLabel
+ Giden çağrıları ektinleştir
+
+
+ showTelKeypadAutomaticallyLabel
+ Telefon numara takımını kendiliğinden göster
+
+
+ automaticallyRecordCallsLabel
+ Çağrıları kendiliğinden kaydet
+
+
+ keepCallsWindowInBackgroundLabel
+ Çağrı pencerelerini arka planda tut
+
+
+ callPauseEnabledLabel
+ Çağrı duraklatma etkin
+
+
+ encryptionMandatoryLabel
+ Şifreleme zorunludur
+
+
+ hideEmptyChatRoomsLabel
+ 'Hide empty chat rooms' : Label for a switch to choose if Linphone hide empty chat rooms
+
+
+
+ waitRegistrationForCallLabel
+ 'Call when registered' : Label on switch to choose if calls are make when the current proxy is registered
+
+
+
+
+ SettingsLdap
+
+ newServer
+
+
+
+
+ SettingsLdapEdit
+
+ cancel
+ İPTAL
+
+
+ confirm
+
+
+
+ displayNameLabel
+ Görünen ad (isteğe bağlı)
+
+
+ displayNameTooltip
+
+
+
+ connectionTitle
+
+
+
+ serverLabel
+
+
+
+ serverTooltip
+
+
+
+ bindDNLabel
+
+
+
+ bindDNTooltip
+
+
+
+ passwordLabel
+ Parola
+
+
+ useTLSLabel
+
+
+
+ useTLSTooltip
+
+
+
+ useSalLabel
+
+
+
+ useSalTooltip
+
+
+
+ verifyTLSLabel
+
+
+
+ AutoMode
+
+
+
+ offMode
+
+
+
+ onMode
+
+
+
+ verifyTLSTooltip
+
+
+
+ searchTitle
+
+
+
+ baseObjectLabel
+
+
+
+ baseObjectPlaceholder
+
+
+
+ baseObjectTooltip
+
+
+
+ filterLabel
+
+
+
+ filterTooltip
+
+
+
+ maxResultsLabel
+
+
+
+ maxResultsTooltip
+
+
+
+ timeoutLabel
+
+
+
+ timeoutTooltip
+
+
+
+ parsingTitle
+
+
+
+ nameAttributesLabel
+
+
+
+ nameAttributesTooltip
+
+
+
+ sipAttributesLabel
+
+
+
+ sipAttributesTooltip
+
+
+
+ domainLabel
+
+
+
+ domainTooltip
+
+
+
+ miscLabel
+
+
+
+ debugLabel
+
+
+
+ debugTooltip
+
+
+
+
+ SettingsNetwork
+
+ sendDtmfsLabel
+ DTMF'leri gönderme yöntemi
+
+
+ allowIpV6Label
+ IPv6'ya izin ver
+
+
+ transportTitle
+ Taşıma
+
+
+ natAndFirewallTitle
+ NAT ve Güvenlik Duvarı
+
+
+ enableIceLabel
+ ICE'yi etkinleştir
+
+
+ stunServerLabel
+ STUN/TURN sunucusu
+
+
+ enableTurnLabel
+ TURN'u etkinleştir
+
+
+ turnUserLabel
+ TURN kullanıcısı
+
+
+ turnPasswordLabel
+ TURN parolası
+
+
+ networkProtocolAndPortsTitle
+ Ağ iletişim kuralları ve bağlantı noktaları
+
+
+ sipUdpPortLabel
+ SIP UDP bağlantı noktası
+
+
+ sipTcpPortLabel
+ SIP TCP bağlantı noktası
+
+
+ audioRtpUdpPortLabel
+ Ses RTP UDP bağlantı noktası
+
+
+ videoRtpUdpPortLabel
+ Görüntü RTP UDP bağlantı noktası
+
+
+ dscpFieldsTitle
+ DSCP Alanları
+
+
+ sipFieldLabel
+ SIP
+
+
+ audioRtpStreamFieldLabel
+ Ses RTP Akışı
+
+
+ videoRtpStreamFieldLabel
+ Görüntü RTP Akışı
+
+
+ bandwidthControlTitle
+ Bant Genişliği Denetimi
+
+
+ downloadSpeedLimitLabel
+ Kbit/sn türünde indirme hız sınırı
+
+
+ uploadSpeedLimitLabel
+ Kbit/sn türünde yükleme hız sınırı
+
+
+ enableAdaptiveRateControlLabel
+ Uyarlanır oran denetimini etkinleştir
+
+
+ presenceTitle
+ Bulunma
+
+
+ rlsUriLabel
+ RLS URI'si kullan
+
+
+ rlsUriAuto
+ KENDİLİĞİNDEN
+
+
+ rlsUriDisabled
+ ASLA
+
+
+ showNetworkSettingsLabel
+ Ağ ayarlarını göster
+
+
+ generalTitle
+ Genel
+
+
+
+ SettingsSipAccounts
+
+ defaultIdentityTitle
+ Öntanımlı kimlik
+
+
+ defaultUsernameLabel
+ Kullanıcı adı
+
+
+ defaultSipAddressLabel
+ SIP adresi
+
+
+ proxyAccountsTitle
+ Vekil hesapları
+
+
+ eraseAllPasswords
+ PAROLALARI SİL
+
+
+ addAccount
+ HESAP EKLE
+
+
+ editHeader
+ Düzenle
+
+
+ deleteHeader
+ Sil
+
+
+ deleteAccountDescription
+ Bu hesabı silmek istediğinize emin misiniz?
+
+
+ eraseAllPasswordsDescription
+ Tüm parolaları silmek istediğinize emin misiniz?
+
+
+ defaultDisplayNameLabel
+ Görünen ad
+
+
+ assistantTitle
+ Yardimci
+
+
+ createAppSipAccountEnabledLabel
+ Hesap oluşturmayı etkinleştir
+
+
+ useAppSipAccountEnabledLabel
+ Hesap kullanımını etkinleştir
+
+
+ useOtherSipAccountEnabledLabel
+ Genel hesap kullanımını etkinleştir
+
+
+ fetchRemoteConfigurationEnabledLabel
+ Yapılandırma almayı etkinleştir
+
+
+ assistantSupportsPhoneNumbersLabel
+ Telefon numaralarını destekler
+
+
+
+ SettingsSipAccountsEdit
+
+ sipAddressLabel
+ SIP adresi
+
+
+ transportLabel
+ Taşıma
+
+
+ serverAddressLabel
+ SIP Sunucu adresi
+
+
+ registrationDurationLabel
+ Kaydolma uzunluğu (saniye)
+
+
+ routeLabel
+ Rota
+
+
+ contactParamsLabel
+ Kişi parametreleri
+
+
+ publishPresenceLabel
+ Bulunma bilgisini yayımla
+
+
+ avpfIntervalLabel
+ AVPF düzenli RTCP aralığı (saniye)
+
+
+ registerEnabledLabel
+ Kaydol
+
+
+ avpfEnabledLabel
+ AVPF'yi etkinleştir
+
+
+ cancel
+ İPTAL
+
+
+ confirm
+ ONAYLA
+
+
+ invalidSipAddress
+ Geçersiz SIP adresi.
+
+
+ invalidServerAddress
+ Geçersiz sunucu adresi.
+
+
+ invalidRoute
+ Geçersiz rota.
+
+
+ enableIceLabel
+ ICE'yi etkinleştir
+
+
+ stunServerLabel
+ STUN/TURN sunucusu
+
+
+ enableTurnLabel
+ TURN'u etkinleştir
+
+
+ turnUserLabel
+ TURN kullanıcısı
+
+
+ turnPasswordLabel
+ TURN parolası
+
+
+ natAndFirewallTitle
+ NAT ve Güvenlik Duvarı
+
+
+ mainSipAccountSettingsTitle
+ Ana SIP hesabı ayarları
+
+
+ conferenceURI
+ "Conference URI" : Label of a text edit for filling Conference URI
+
+
+
+ invalidConferenceURI
+ "invalid conference URI" : Error text about conference URI
+
+
+
+
+ SettingsTunnel
+
+ tunnelStatus
+ 'Tunnel Status' : Field title to introduce the status of the tunnel (activated or not)
+
+
+
+ tunnelDomain
+ 'Domain' : Field title of a textfield to set domain.
+
+
+
+ tunnelUsername
+ 'Username' : Field title of a textfield to set username.
+
+
+
+ tunnelSIP
+ 'SIP' : Field title of a switch to set SIP mode.
+
+
+
+ cancel
+ 'Cancel' : Button to cancel the action.
+ İPTAL
+
+
+ setHTTPProxy
+ 'Set HTTP proxy' : Button to set the new proxy.
+
+
+
+ proxyHttpHost
+ 'Host' : Placeholder to set hostname.
+
+
+
+ proxyHttpPort
+ 'Port' : Placehoilder to set port.
+
+
+
+ proxyHttpUsername
+ 'Username' : Placeholder to set username.
+
+
+
+ proxyHttpPassword
+ 'Password' : Placeholder to set password.
+
+
+
+ proxyHttpApply
+ 'Apply' : Button to set proxy from changes.
+
+
+
+ serverMode
+ 'Mode' : Field title on form to set tunnel mode.
+
+
+
+ serverDualMode
+ 'Dual mode' : Field title on form to set dual mode of the tunnel.
+
+
+
+ serverTitle
+ 'Server' : Title form to set a server
+
+
+
+ serverHostname
+ 'Hostname' : Field title on form to set hostname.
+
+
+
+ serverPort
+ 'Port' : Field title on form to set port.
+
+
+
+ serverDualHostname
+ 'Dual hostname URL' : Field title on form to set the second hostname for dual configuration.
+
+
+
+ serverDualPort
+ 'Dual port' : Field title on form to set the second port for the dual configuration.
+
+
+
+ serverRemoteUDPMirrorPort
+ 'Remote UDP mirror port' : Field title on form to set the remote UDP mirror port.
+
+
+
+ serverDelay
+ 'Delay' : Field title on form to set the delay of the tunnel.
+
+
+
+ tunnelAddServer
+ 'Add server' : Button for adding a server
+
+
+
+ tunnelApply
+ 'Apply' : Button to apply changes.
+
+
+
+
+ SettingsUi
+
+ pathsTitle
+ Yollar
+
+
+ savedScreenshotsLabel
+ Kaydedilen ekran görüntüleri klasörü
+
+
+ savedCallsLabel
+ Kaydedilen çağrılar klasörü
+
+
+ languagesTitle
+ Diller
+
+
+ languagesLabel
+ Dil
+
+
+ systemLocale
+ Sistem yereli
+
+
+ cleanAvatars
+ AVATARLARI SİL
+
+
+ cleanAvatarsDescription
+ Tüm avatarları silmek istediğinize emin misiniz?
+
+
+ downloadLabel
+ İndirme klasörü
+
+
+ setLocaleDescription
+ Uygulamanın yeniden başlaması gerekiyor. Şimdi yeniden başlatmak ister misiniz?
+
+
+ otherTitle
+ Diğer
+
+
+ exitOnCloseLabel
+ Pencere kapatıldığında uygulamadan çık
+
+
+ dataTitle
+ Kullanıcı Arayüzü Verisi
+
+
+ autoStartLabel
+ Uygulamayı kendiliğinden başlat
+
+
+ fontsTitle
+ 'Fonts' : title of fonts section in settings
+
+
+
+ fontsTextChange
+ 'Text Messages' : Label for changing text message fonts
+
+
+
+ fontsPopupTitle
+ 'Select a new font' : Popup title for choosing new fonts
+
+
+
+ checkForUpdateLabel
+ 'Check for updates' : Label switch for enabling check for updates
+
+
+
+
+ SettingsVideo
+
+ videoInputDeviceLabel
+ Görüntü giriş aygıtı
+
+
+ videoFramerateLabel
+ Çerçeve oranı
+
+
+ videoCaptureTitle
+ Görüntü yakalama parametreleri
+
+
+ videoPresetLabel
+ Görüntü ön ayarı
+
+
+ presetDefault
+ Öntanımlı
+
+
+ presetHighFps
+ Yüksek saniye başına çerçeve
+
+
+ presetCustom
+ Özel
+
+
+ videoSizeLabel
+ Görüntü çözünürlüğü
+
+
+ videoCodecsTitle
+ Görüntü çözücüler
+
+
+ showCameraPreview
+ GÖRÜNTÜ ÖNİZLEMESİ
+
+
+ showVideoCodecsLabel
+ Görüntü çözücüleri göster
+
+
+ videoSettingsInCallWarning
+ Görüntülü arama devam ediyor: bazı ayarlar mevcut değil.
+
+
+
+ SettingsVideoPreview
+
+ confirm
+ TAMAM
+
+
+
+ SettingsWindow
+
+ settingsTitle
+ Ayarlar
+
+
+ sipAccountsTab
+ SIP hesapları
+
+
+ audioTab
+ Ses
+
+
+ videoTab
+ Görüntü
+
+
+ callsAndChatTab
+ Çağrı ve Sohbet
+
+
+ networkTab
+ Ağ
+
+
+ uiTab
+ Kullanıcı Arayüzü
+
+
+ validButton
+ TAMAM
+
+
+ uiAdvanced
+ Gelişmiş
+
+
+ tunnelTab
+ 'Tunnel' : Tab title for tunnel section in settings.
+
+
+
+
+ SmartSearchBar
+
+ addContact
+ KİŞİ EKLE
+
+
+
+ Timeline
+
+ timelineFilter
+ A title for filtering mode.
+
+
+
+ timelineFilterAll
+ 'All' The mode for timelines filtering.
+
+
+
+ timelineFilterCustom
+ 'Custom' The mode for timelines filtering.
+
+
+
+ timelineFilterSimpleRooms
+ 'Simple rooms' : Filter item
+
+ Selecting it will show all simple rooms
+
+
+ timelineFilterSecureRooms
+ 'Secure rooms' : Filter item
+
+ Selecting it will show all secure rooms
+
+
+ timelineFilterChatGroups
+ 'Chat groups' : Filter item
+
+ Selecting it will show all chat groups (with more than one participant)
+
+
+ timelineFilterSecureChatGroups
+ 'Secure Chat Groups' : Filter item
+
+ Selecting it will show all secure chat groups (with more than one participant)
+
+
+ timelineFilterEphemerals
+ 'Ephemerals' : Filter item
+
+ Selecting it will show all chat rooms where the ephemeral mode has been enabled.
+
+
+ timelineSearchPlaceholderText
+ 'Search in the list' : ths is a placeholder when searching something in the timeline list
+
+
+
+
+ UseAppSipAccount
+
+ confirmAction
+ KULLAN
+
+
+ useAppSipAccountTitle
+ %1 HESABI KULLAN
+
+
+ useUsernameToLogin
+ Telefon numaranız yerine kullanıcı adı ve parola kullanın.
+
+
+ quitWarning
+ Hesabınız oluşturuldu ancak henüz doğrulanmadı. Bu görünümden çıkmak istediğinize emin misiniz?
+
+
+ passwordRecovery
+ 'Forgotten password?' : text for an url shortcut to change the password
+
+
+
+
+ UseAppSipAccountWithPhoneNumber
+
+ countryLabel
+ Ülke
+
+
+ phoneNumberLabel
+ Telefon numarası
+
+
+
+ UseAppSipAccountWithUsername
+
+ usernameLabel
+ Kullanıcı adı
+
+
+ passwordLabel
+ Parola
+
+
+
+ UseOtherSipAccount
+
+ confirmAction
+ KULLAN
+
+
+ useOtherSipAccountTitle
+ SIP HESABI KULLAN
+
+
+ usernameLabel
+ Kullanıcı adı
+
+
+ displayNameLabel
+ Görünen ad (isteğe bağlı)
+
+
+ sipDomainLabel
+ SIP Alan Adı
+
+
+ passwordLabel
+ Parola
+
+
+ transportLabel
+ Taşıma
+
+
+ addOtherSipAccountError
+ Bu hesap eklenemiyor.
+
+
+
+ ZrtpTokenAuthentication
+
+ confirmSas
+ Aşağıdaki kısa yetkilendirme dizgesini eşinizle onaylayın.
+
+
+ codeA
+ Söyleyin:
+
+
+ codeB
+ Kişiniz şunu söylemeli:
+
+
+ deny
+ REDDET
+
+
+ accept
+ ONAYLA
+
+
+
+ country
+
+ Afghanistan
+ Afganistan
+
+
+ Albania
+ Arnavutluk
+
+
+ Algeria
+ Cezayir
+
+
+ AmericanSamoa
+ Amerikan Samoası
+
+
+ Andorra
+ Andorra
+
+
+ Angola
+ Angola
+
+
+ Anguilla
+ Anguilla
+
+
+ AntiguaAndBarbuda
+ Antigua ve Barbuda
+
+
+ Argentina
+ Arjantin
+
+
+ Armenia
+ Ermenistan
+
+
+ Aruba
+ Aruba
+
+
+ Australia
+ Avustralya
+
+
+ Austria
+ Avusturya
+
+
+ Azerbaijan
+ Azerbaycan
+
+
+ Bahamas
+ Bahamalar
+
+
+ Bahrain
+ Bahreyn
+
+
+ Bangladesh
+ Bangladeş
+
+
+ Barbados
+ Barbados
+
+
+ Belarus
+ Belarus
+
+
+ Belgium
+ Belçika
+
+
+ Belize
+ Belize
+
+
+ Benin
+ Benin
+
+
+ Bermuda
+ Bermuda
+
+
+ Bhutan
+ Bhutan
+
+
+ Bolivia
+ Bolivya
+
+
+ BosniaAndHerzegowina
+ Bosna-Hersek
+
+
+ Botswana
+ Botsvana
+
+
+ Brazil
+ Brezilya
+
+
+ Brunei
+ Bruney
+
+
+ Bulgaria
+ Bulgaristan
+
+
+ BurkinaFaso
+ Burkina Faso
+
+
+ Burundi
+ Burundi
+
+
+ Cambodia
+ Kamboçya
+
+
+ Cameroon
+ Kamerun
+
+
+ Canada
+ Kanada
+
+
+ CapeVerde
+ Yeşil Burun Adaları
+
+
+ CaymanIslands
+ Cayman Adaları
+
+
+ CentralAfricanRepublic
+ Orta Afrika Cumhuriyeti
+
+
+ Chad
+ Çad
+
+
+ Chile
+ Şili
+
+
+ China
+ Çin
+
+
+ Colombia
+ Kolombiya
+
+
+ Comoros
+ Komorlar
+
+
+ PeoplesRepublicOfCongo
+ Kongo Cumhuriyeti
+
+
+ DemocraticRepublicOfCongo
+ Demokratik Kongo Cumhuriyeti
+
+
+ CookIslands
+ Cook Adaları
+
+
+ CostaRica
+ Kosta Rika
+
+
+ IvoryCoast
+ Fildişi Sahili
+
+
+ Croatia
+ Hırvatistan
+
+
+ Cuba
+ Küba
+
+
+ Cyprus
+ Kıbrıs
+
+
+ CzechRepublic
+ Çek Cumhuriyeti
+
+
+ Denmark
+ Danimarka
+
+
+ Djibouti
+ Cibuti
+
+
+ Dominica
+ Dominika
+
+
+ DominicanRepublic
+ Dominik Cumhuriyeti
+
+
+ Ecuador
+ Ekvador
+
+
+ Egypt
+ Mısır
+
+
+ ElSalvador
+ El Salvador
+
+
+ EquatorialGuinea
+ Ekvator Ginesi
+
+
+ Eritrea
+ Eritre
+
+
+ Estonia
+ Estonya
+
+
+ Ethiopia
+ Etyopya
+
+
+ FalklandIslands
+ Falkland Adaları
+
+
+ FaroeIslands
+ Faroe Adaları
+
+
+ Fiji
+ Fiji
+
+
+ Finland
+ Finlandiya
+
+
+ France
+ Fransa
+
+
+ FrenchGuiana
+ Fransız Guyanası
+
+
+ FrenchPolynesia
+ Fransız Polinezyası
+
+
+ Gabon
+ Gabon
+
+
+ Gambia
+ Gambiya
+
+
+ Georgia
+ Georgia
+
+
+ Germany
+ Almanya
+
+
+ Ghana
+ Gana
+
+
+ Gibraltar
+ Cebelitarık
+
+
+ Greece
+ Yunanistan
+
+
+ Greenland
+ Grönland
+
+
+ Grenada
+ Grenada
+
+
+ Guadeloupe
+ Guadeloupe
+
+
+ Guam
+ Guam'a
+
+
+ Guatemala
+ Guatemala
+
+
+ Guinea
+ Gine
+
+
+ GuineaBissau
+ Gine Bissau
+
+
+ Guyana
+ Guyana
+
+
+ Haiti
+ Haiti
+
+
+ Honduras
+ Honduras
+
+
+ HongKong
+ Hong Kong
+
+
+ Hungary
+ Macaristan
+
+
+ Iceland
+ İzlanda
+
+
+ India
+ Hindistan
+
+
+ Indonesia
+ Endonezya
+
+
+ Iran
+ İran
+
+
+ Iraq
+ Irak
+
+
+ Ireland
+ İrlanda
+
+
+ Israel
+ İsrail
+
+
+ Italy
+ İtalya
+
+
+ Jamaica
+ Jamaika
+
+
+ Japan
+ Japonya
+
+
+ Jordan
+ Ürdün
+
+
+ Kazakhstan
+ Kazakistan
+
+
+ Kenya
+ Kenya
+
+
+ Kiribati
+ Kiribati
+
+
+ DemocraticRepublicOfKorea
+ Kore Demokratik Cumhuriyeti
+
+
+ RepublicOfKorea
+ Kore Cumhuriyeti
+
+
+ Kuwait
+ Kuveyt
+
+
+ Kyrgyzstan
+ Kırgızistan
+
+
+ Laos
+ Laos
+
+
+ Latvia
+ Letonya
+
+
+ Lebanon
+ Lübnan
+
+
+ Lesotho
+ Lesotho
+
+
+ Liberia
+ Liberya
+
+
+ Libya
+ Libya
+
+
+ Liechtenstein
+ Lihtenştayn
+
+
+ Lithuania
+ Litvanya
+
+
+ Luxembourg
+ Lüksemburg
+
+
+ Macau
+ Makao
+
+
+ Macedonia
+ Makedonya
+
+
+ Madagascar
+ Madagaskar
+
+
+ Malawi
+ Malavi
+
+
+ Malaysia
+ Malezya
+
+
+ Maldives
+ Maldivler
+
+
+ Mali
+ Mali
+
+
+ Malta
+ Malta
+
+
+ MarshallIslands
+ Marshall Adaları
+
+
+ Martinique
+ Martinik
+
+
+ Mauritania
+ Moritanya
+
+
+ Mauritius
+ Mauritius
+
+
+ Mayotte
+ Mayotte
+
+
+ Mexico
+ Meksika
+
+
+ Micronesia
+ Mikronezya
+
+
+ Moldova
+ Moldova
+
+
+ Monaco
+ Monako
+
+
+ Mongolia
+ Moğolistan
+
+
+ Montenegro
+ Karadağ
+
+
+ Montserrat
+ Montserrat
+
+
+ Morocco
+ Fas
+
+
+ Mozambique
+ Mozambik
+
+
+ Myanmar
+ Myanmar
+
+
+ Namibia
+ Namibya
+
+
+ NauruCountry
+ Nauru
+
+
+ Nepal
+ Nepal
+
+
+ Netherlands
+ Hollanda
+
+
+ NewCaledonia
+ Yeni Kaledonya
+
+
+ NewZealand
+ Yeni Zelanda
+
+
+ Nicaragua
+ Nikaragua
+
+
+ Niger
+ Nijer
+
+
+ Nigeria
+ Nijerya
+
+
+ Niue
+ Niue
+
+
+ NorfolkIsland
+ Norfolk Adası
+
+
+ NorthernMarianaIslands
+ Kuzey Mariana Adaları
+
+
+ Norway
+ Norveç
+
+
+ Oman
+ Umman
+
+
+ Pakistan
+ Pakistan
+
+
+ Palau
+ Palau
+
+
+ PalestinianTerritories
+ Filistin Toprakları
+
+
+ Panama
+ Panama
+
+
+ PapuaNewGuinea
+ Papua Yeni Gine
+
+
+ Paraguay
+ Paraguay
+
+
+ Peru
+ Peru
+
+
+ Philippines
+ Filipinler
+
+
+ Poland
+ Polonya
+
+
+ Portugal
+ Portekiz
+
+
+ PuertoRico
+ Porto Riko
+
+
+ Qatar
+ Katar
+
+
+ Reunion
+ Buluşma
+
+
+ Romania
+ Romanya
+
+
+ RussianFederation
+ Rusya Federasyonu
+
+
+ Rwanda
+ Ruanda
+
+
+ SaintHelena
+ Saint Helena
+
+
+ SaintKittsAndNevis
+ Saint Kitts ve Nevis
+
+
+ SaintLucia
+ Saint Lucia
+
+
+ SaintPierreAndMiquelon
+ Saint Pierre ve Miquelon
+
+
+ SaintVincentAndTheGrenadines
+ Saint Vincent ve Grenadinler
+
+
+ Samoa
+ Samoa
+
+
+ SanMarino
+ San Marino
+
+
+ SaoTomeAndPrincipe
+ São Tomé ve Principe
+
+
+ SaudiArabia
+ Suudi Arabistan
+
+
+ Senegal
+ Senegal
+
+
+ Serbia
+ Sırbistan
+
+
+ Seychelles
+ Seyşeller
+
+
+ SierraLeone
+ Sierra Leone
+
+
+ Singapore
+ Singapur
+
+
+ Slovakia
+ Slovakya
+
+
+ Slovenia
+ Slovenya
+
+
+ SolomonIslands
+ Solomon Adaları
+
+
+ Somalia
+ Somali
+
+
+ SouthAfrica
+ Güney Afrika Cumhuriyeti
+
+
+ Spain
+ İspanya
+
+
+ SriLanka
+ Sri Lanka
+
+
+ Sudan
+ Sudan
+
+
+ Suriname
+ Surinam
+
+
+ Swaziland
+ Svaziland
+
+
+ Sweden
+ İsveç
+
+
+ Switzerland
+ İsviçre
+
+
+ Syria
+ Suriye
+
+
+ Taiwan
+ Tayvan
+
+
+ Tajikistan
+ Tacikistan
+
+
+ Tanzania
+ Tanzanya
+
+
+ Thailand
+ Tayland
+
+
+ Togo
+ Togo
+
+
+ Tokelau
+ Tokelau
+
+
+ Tonga
+ Tonga
+
+
+ TrinidadAndTobago
+ Trinidad ve Tobago
+
+
+ Tunisia
+ Tunus
+
+
+ Turkey
+ Türkiye
+
+
+ Turkmenistan
+ Türkmenistan
+
+
+ TurksAndCaicosIslands
+ Turks ve Caicos Adaları
+
+
+ Tuvalu
+ Tuvalu
+
+
+ Uganda
+ Uganda
+
+
+ Ukraine
+ Ukrayna
+
+
+ UnitedArabEmirates
+ Birleşik Arap Emirlikleri
+
+
+ UnitedKingdom
+ Birleşik Krallık
+
+
+ UnitedStates
+ Amerika Birleşik Devletleri
+
+
+ Uruguay
+ Uruguay
+
+
+ Uzbekistan
+ Özbekistan
+
+
+ Vanuatu
+ Vanuatu
+
+
+ Venezuela
+ Venezuela
+
+
+ Vietnam
+ Vietnam
+
+
+ WallisAndFutunaIslands
+ Wallis ve Futuna Adaları
+
+
+ Yemen
+ Yemen
+
+
+ Zambia
+ Zambiya
+
+
+ Zimbabwe
+ Zimbabve
+
+
+
+ linphone-utils
+
+ downloadCodecDescription
+ %1 (%2) indirilmesini istiyor musunuz?
+
+
+
diff --git a/linphone-app/resources.qrc b/linphone-app/resources.qrc
index 320a3ef38..bf9010a19 100644
--- a/linphone-app/resources.qrc
+++ b/linphone-app/resources.qrc
@@ -152,6 +152,7 @@
assets/images/stop_fullscreen_custom.svg
assets/images/timer_custom.svg
assets/images/tel_keypad_custom.svg
+ assets/images/tel_keypad_voicemail_custom.svg
assets/images/tooltip_arrow_bottom_custom.svg
assets/images/tooltip_arrow_left_custom.svg
assets/images/tooltip_arrow_right_custom.svg
diff --git a/linphone-app/src/components/chat-room/ChatRoomModel.cpp b/linphone-app/src/components/chat-room/ChatRoomModel.cpp
index c158ae920..3e52db2ef 100644
--- a/linphone-app/src/components/chat-room/ChatRoomModel.cpp
+++ b/linphone-app/src/components/chat-room/ChatRoomModel.cpp
@@ -347,7 +347,6 @@ QString ChatRoomModel::getUsername () const {
}
QString ChatRoomModel::getAvatar () const {
- qWarning() << getUsername() << " *> " << mChatRoom->getNbParticipants();
if( mChatRoom && mChatRoom->getNbParticipants() == 1){
auto participants = getParticipants(false);
auto contact = CoreManager::getInstance()->getContactsListModel()->findContactModelFromSipAddress(Utils::coreStringToAppString((*participants.begin())->getAddress()->asString()));
diff --git a/linphone-app/src/components/other/colors/ColorListModel.hpp b/linphone-app/src/components/other/colors/ColorListModel.hpp
index 9b7fcd7ac..32a3f3bf8 100644
--- a/linphone-app/src/components/other/colors/ColorListModel.hpp
+++ b/linphone-app/src/components/other/colors/ColorListModel.hpp
@@ -123,6 +123,9 @@ class ColorListModel : public ProxyListModel {
ADD_COLOR("readonly_fg", "#B1B1B1", "Chat text area Readonly foreground")
+ ADD_COLOR("telkeypad_bg", "#4D5B66", "Background for phone keypad")
+ ADD_COLOR("telkeypad_fg", "#E4E4E4", "Foreground for phone keypad")
+ ADD_COLOR("telkeypad_h", "#B1B1B1", "Foreground for phone keypad")
// Keywords: 'mKeywordsMap'
// s=standard, ma=main, l=list, sc=screen, me=menu
diff --git a/linphone-app/ui/modules/Common/Form/ActionButton.qml b/linphone-app/ui/modules/Common/Form/ActionButton.qml
index 2c789eb18..85cb2482f 100644
--- a/linphone-app/ui/modules/Common/Form/ActionButton.qml
+++ b/linphone-app/ui/modules/Common/Form/ActionButton.qml
@@ -82,6 +82,7 @@ Item {
signal clicked(real x, real y)
signal pressed(real x, real y)
+ signal released(real x, real y)
// ---------------------------------------------------------------------------
@@ -121,8 +122,8 @@ Item {
function getBackgroundColor(){
var defaultColor = 'transparent'
if(isCustom){
- if(wrappedButton.icon == '')
- return getColor(wrappedButton.colorSet.backgroundNormalColor, defaultColor, 'backgroundNormalColor')
+ //if(wrappedButton.icon == '')
+ //return getColor(wrappedButton.colorSet.backgroundNormalColor, defaultColor, 'backgroundNormalColor')
if (wrappedButton.updating || wrappedButton.toggled)
return getColor(wrappedButton.colorSet.backgroundUpdatingColor, defaultColor, 'backgroundUpdatingColor')
if (!useStates)
@@ -138,8 +139,8 @@ Item {
function getForegroundColor(){
var defaultColor = 'black'
if(isCustom){
- if(wrappedButton.icon == '')
- return getColor(wrappedButton.colorSet.foregroundNormalColor, defaultColor, 'foregroundNormalColor')
+ //if(wrappedButton.icon == '')
+ //return getColor(wrappedButton.colorSet.foregroundNormalColor, defaultColor, 'foregroundNormalColor')
if (wrappedButton.updating || wrappedButton.toggled)
return getColor(wrappedButton.colorSet.foregroundUpdatingColor, defaultColor, 'foregroundUpdatingColor')
if (!useStates)
@@ -155,8 +156,8 @@ Item {
function getBackgroundHiddenPartColor(){
var defaultColor = 'transparent'
if(isCustom){
- if(wrappedButton.icon == '')
- return getColor(wrappedButton.colorSet.backgroundHiddenPartNormalColor, defaultColor, 'backgroundHiddenPartNormalColor')
+ //if(wrappedButton.icon == '')
+ //return getColor(wrappedButton.colorSet.backgroundHiddenPartNormalColor, defaultColor, 'backgroundHiddenPartNormalColor')
if (wrappedButton.updating || wrappedButton.toggled)
return getColor(wrappedButton.colorSet.backgroundHiddenPartUpdatingColor, defaultColor, 'backgroundHiddenPartUpdatingColor')
if (!useStates)
@@ -172,8 +173,8 @@ Item {
function getForegroundHiddenPartColor(){
var defaultColor = '#80FFFFFF'
if(isCustom){
- if(wrappedButton.icon == '')
- return getColor(wrappedButton.colorSet.foregroundHiddenPartNormalColor, defaultColor, 'foregroundHiddenPartNormalColor')
+ //if(wrappedButton.icon == '')
+ //return getColor(wrappedButton.colorSet.foregroundHiddenPartNormalColor, defaultColor, 'foregroundHiddenPartNormalColor')
if (wrappedButton.updating || wrappedButton.toggled)
return getColor(wrappedButton.colorSet.foregroundHiddenPartUpdatingColor, defaultColor, 'foregroundHiddenPartUpdatingColor')
if (!useStates)
@@ -214,6 +215,8 @@ Item {
hoverEnabled: !wrappedButton.updating//|| wrappedButton.autoIcon
onClicked: !wrappedButton.updating && wrappedButton.enabled && wrappedButton.clicked(pressX, pressY)
onPressed: !wrappedButton.updating && wrappedButton.enabled && wrappedButton.pressed(pressX, pressY)
+ onReleased: !wrappedButton.updating && wrappedButton.enabled && wrappedButton.released(pressX, pressY)
+
Rectangle{
id: foregroundColor
anchors.fill:parent
diff --git a/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml b/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml
index 367be8c72..fc4f80177 100644
--- a/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml
+++ b/linphone-app/ui/modules/Linphone/SmartSearchBar/SmartSearchBar.qml
@@ -18,6 +18,8 @@ SearchBox {
property alias header : view.headerItem
property alias actions : view.actions
property alias showHeader : view.showHeader
+ property string previousText: text
+ onTextChanged: if( text != '') previousText = text;
function addAddressToIgnore(entry){
searchModel.addAddressToIgnore(entry)
diff --git a/linphone-app/ui/modules/Linphone/Styles/TelKeypad/TelKeypadStyle.qml b/linphone-app/ui/modules/Linphone/Styles/TelKeypad/TelKeypadStyle.qml
index 1fb7b7f9b..908d13856 100644
--- a/linphone-app/ui/modules/Linphone/Styles/TelKeypad/TelKeypadStyle.qml
+++ b/linphone-app/ui/modules/Linphone/Styles/TelKeypad/TelKeypadStyle.qml
@@ -7,19 +7,33 @@ import ColorsList 1.0
QtObject {
property string sectionName: 'TelKeypad'
- property int columnSpacing: 0
- property int height: 180
- property int rowSpacing: 0
- property int width: 180
- property color color: ColorsList.add(sectionName+'', 'k').color
+ property int columnSpacing: 12
+ property int height: 240
+ property int rowSpacing: 12
+ property int width: 240
+ property color color: ColorsList.add(sectionName+'', 'telkeypad_bg').color
property color selectedColor : ColorsList.add(sectionName+'_c', 'm').color
property int selectedBorderWidth: 2
- property real radius : 5.0
+ property real radius : 20
+
+ property QtObject voicemail: QtObject{
+ property string icon: 'tel_keypad_voicemail_custom'
+ property int iconSize: 20
+ }
property QtObject button: QtObject {
- property QtObject color: QtObject {
- property color normal: ColorsList.add(sectionName+'_b_n', 'q').color
- property color pressed: ColorsList.add(sectionName+'_b_p', 'i').color
+ property QtObject colorSet: QtObject{
+ property int iconSize: 0
+ property string name : 'telButton'
+ property string icon : ''
+ property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 'telkeypad_fg').color
+ property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 'telkeypad_h').color
+ property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 'i').color
+ property color backgroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_u', icon, 'i').color
+ property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 'transparent').color
+ property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 'transparent').color
+ property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 'transparent').color
+ property color foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_u', icon, 'transparent').color
}
property QtObject line: QtObject {
@@ -32,8 +46,8 @@ QtObject {
}
property QtObject text: QtObject {
- property color color: ColorsList.add(sectionName+'_b_text', 'd').color
- property int pointSize: Units.dp * 11
+ property color color: ColorsList.add(sectionName+'_b_text', 'telkeypad_bg').color
+ property int pointSize: Units.dp * 14
}
}
}
diff --git a/linphone-app/ui/modules/Linphone/TelKeypad/TelKeypad.qml b/linphone-app/ui/modules/Linphone/TelKeypad/TelKeypad.qml
index 687f342c9..ec01fe7be 100644
--- a/linphone-app/ui/modules/Linphone/TelKeypad/TelKeypad.qml
+++ b/linphone-app/ui/modules/Linphone/TelKeypad/TelKeypad.qml
@@ -9,118 +9,86 @@ import 'TelKeypad.js' as Logic
// =============================================================================
Rectangle {
- id: telKeypad
+ id: telKeypad
+
+ property var container: parent
+ property var call
+ signal sendDtmf(var dtmf)
+ signal keyPressed(var event)
+
+ color: TelKeypadStyle.color // useless as it is overridden by buttons color, but keep it if buttons are transparent
+ onActiveFocusChanged: {if(activeFocus) selectedArea.border.width=TelKeypadStyle.selectedBorderWidth; else selectedArea.border.width=0}
+ Keys.onPressed: keyPressed(event)
+ layer {
+ effect: PopupShadow {}
+ enabled: true
+ }
+
+ height: TelKeypadStyle.height
+ width: TelKeypadStyle.width
+ radius:TelKeypadStyle.radius+1.0 // +1 for avoid mixing color with border slection (some pixels can be print after the line)
- property var container: parent
- property var call
-
- color: TelKeypadStyle.color // useless as it is overridden by buttons color, but keep it if buttons are transparent
- onActiveFocusChanged: {if(activeFocus) selectedArea.border.width=TelKeypadStyle.selectedBorderWidth; else selectedArea.border.width=0}
-
- layer {
- effect: PopupShadow {}
- enabled: true
- }
-
- height: TelKeypadStyle.height
- width: TelKeypadStyle.width
- radius:TelKeypadStyle.radius+1.0 // +1 for avoid mixing color with border slection (some pixels can be print after the line)
-
- Keys.onPressed: {
- var index = Logic.mapKeyToButtonIndex(event.key)
- if (index != null) {
- event.accepted = true
- Logic.sendDtmf(index)
- }
- }
-
- // ---------------------------------------------------------------------------
-
- GridLayout {
- id: grid
-
- anchors.fill: parent
-
- columns: 4 // Not a style.
- rows: 4 // Same idea.
-
- columnSpacing: TelKeypadStyle.columnSpacing
- rowSpacing: TelKeypadStyle.rowSpacing
-
- Repeater {
- model: [
- '1', '2', '3', 'A',
- '4', '5', '6', 'B',
- '7', '8', '9', 'C',
- '*', '0', '#', 'D',
- ]
-
- TelKeypadButton {
- property var _timeout
-
- Layout.fillHeight: true
- Layout.fillWidth: true
-
- text: modelData
-
- onClicked: telKeypad.call.sendDtmf(modelData)
- }
- }
- }
-
- // ---------------------------------------------------------------------------
-
- DragBox {
- id: dragBox
-
- readonly property int delta: 5
-
- property int _id
- property var _mouseX
- property var _mouseY
-
- container: telKeypad.container
- draggable: parent
-
- xPosition: (function () {
- return 80
- })
- yPosition: (function () {
- return 70
- })
-
- onPressed: {
- _mouseX = mouse.x
- _mouseY = mouse.y
- _id = parseInt(_mouseX / (parent.width / grid.columns)) + parseInt(_mouseY / (parent.height / grid.rows)) * grid.columns
-
- telKeypad.focus = true
- }
-
- onReleased: Math.abs(_mouseX - mouse.x) <= delta && Math.abs(_mouseY - mouse.y) <= delta &&
- Logic.sendDtmf(_id)
- }
- Rectangle{
- id: selectedArea
- anchors.fill:parent
- color:"transparent"
- border.color:TelKeypadStyle.selectedColor
- border.width:0
- focus:false
- enabled:false
- radius:TelKeypadStyle.radius
- }
- MouseArea
- {// Just take hover events and set popup to do its automatic close if mouse is not inside field/popup area
- anchors.fill: parent
- onContainsMouseChanged: (containsMouse?telKeypad.forceActiveFocus():telKeypad.focus=false)
- hoverEnabled:true
- preventStealing: true
- propagateComposedEvents:true
- onPressed: mouse.accepted=false
- onReleased: mouse.accepted=false
- onClicked: mouse.accepted=false
- onDoubleClicked: mouse.accepted=false
- onPressAndHold: mouse.accepted=false
- }
+ // ---------------------------------------------------------------------------
+ MouseArea{
+ anchors.fill:parent
+ onClicked: telKeypad.forceActiveFocus()
+ }
+ GridLayout {
+ id: grid
+
+ anchors.fill: parent
+ anchors.topMargin: TelKeypadStyle.rowSpacing+5
+ anchors.bottomMargin: TelKeypadStyle.rowSpacing+5
+ anchors.leftMargin: TelKeypadStyle.columnSpacing+5
+ anchors.rightMargin: TelKeypadStyle.columnSpacing+5
+
+ columns: 4 // Not a style.
+ rows: 4 // Same idea.
+
+ columnSpacing: TelKeypadStyle.columnSpacing
+ rowSpacing: TelKeypadStyle.rowSpacing
+
+ Repeater {
+ model: [
+ '1', '2', '3', 'A',
+ '4', '5', '6', 'B',
+ '7', '8', '9', 'C',
+ '*', '0', '#', 'D',
+ ]
+
+ TelKeypadButton {
+ id: telKeypadButton
+ property var _timeout
+ showVoicemail: index === 0
+ auxSymbol: index === 13 ? '+' : ''
+
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+
+ text: modelData
+ onSendDtmf: {
+ telKeypad.forceActiveFocus()
+ if(telKeypad.call) telKeypad.call.sendDtmf(dtmf)
+ telKeypad.sendDtmf(dtmf)
+ }
+ Connections{
+ target: telKeypad
+ onKeyPressed: telKeypadButton.activateEvent(event.key)
+ }
+ }
+ }
+ }
+
+ // ---------------------------------------------------------------------------
+
+ Rectangle{
+ id: selectedArea
+ anchors.fill:parent
+ color:"transparent"
+ border.color:TelKeypadStyle.selectedColor
+ border.width:0
+ focus:false
+ enabled:false
+ radius:TelKeypadStyle.radius
+ }
}
diff --git a/linphone-app/ui/modules/Linphone/TelKeypad/TelKeypadButton.qml b/linphone-app/ui/modules/Linphone/TelKeypad/TelKeypadButton.qml
index 3931c9092..2dac83638 100644
--- a/linphone-app/ui/modules/Linphone/TelKeypad/TelKeypadButton.qml
+++ b/linphone-app/ui/modules/Linphone/TelKeypad/TelKeypadButton.qml
@@ -1,59 +1,118 @@
import QtQuick 2.7
import QtQuick.Layouts 1.3
+import Common 1.0
import Linphone.Styles 1.0
// =============================================================================
Item {
id: button
-
- property color color: TelKeypadStyle.button.color.normal
- property string text: ''
-
- signal clicked
-
- // ---------------------------------------------------------------------------
-
- Rectangle {
- anchors.fill: parent
- color: button.color
- radius:TelKeypadStyle.radius+2.0
-
- ColumnLayout {
- anchors.fill: parent
-
- spacing: 0
-
- Text {
- Layout.fillHeight: true
- Layout.fillWidth: true
-
- color: TelKeypadStyle.button.text.color
- elide: Text.ElideRight
-
- font {
- bold: true
- pointSize: TelKeypadStyle.button.text.pointSize
- }
-
- text: button.text
-
- horizontalAlignment: Text.AlignHCenter
- verticalAlignment: Text.AlignVCenter
- }
-
- Rectangle {
- Layout.fillWidth: true
- Layout.preferredHeight: TelKeypadStyle.button.line.height
-
- Layout.bottomMargin: TelKeypadStyle.button.line.bottomMargin
- Layout.leftMargin: TelKeypadStyle.button.line.leftMargin
- Layout.rightMargin: TelKeypadStyle.button.line.rightMargin
- Layout.topMargin: TelKeypadStyle.button.line.topMargin
-
- color: TelKeypadStyle.button.line.color
- }
- }
- }
-}
+
+ property string text: ''
+ property bool showVoicemail: false
+ property string auxSymbol: ''
+
+ signal sendDtmf(var dtmf)
+
+ function activateEvent(key){
+ var keyString = String.fromCharCode(key)
+ if( keyString == text || keyString == auxSymbol){
+ actionButton.toggled = true;
+ sendDtmf(keyString)
+ }
+ }
+ // ---------------------------------------------------------------------------
+ Timer{
+ id: untoggledTimer
+ interval: 100
+ repeat: false
+ onTriggered: actionButton.toggled = false
+ }
+ ActionButton {
+ id: actionButton
+ onToggledChanged: if(toggled) untoggledTimer.start()
+ anchors.fill: parent
+ colorSet: TelKeypadStyle.button.colorSet
+ backgroundRadius: width/2
+ isCustom: true
+ property bool doNotSend: false
+ Timer{
+ id: longPress
+ interval: 500
+ onTriggered: { if(actionButton.doNotSend){
+ actionButton.doNotSend = false
+ }else{
+ if( button.auxSymbol != '' && actionButton.hovered) {
+ actionButton.doNotSend = true;
+ button.sendDtmf(button.auxSymbol)
+ }
+ }
+ }
+ }
+ onPressed: {actionButton.doNotSend = false;longPress.start()}
+ onReleased: { if(actionButton.doNotSend)
+ actionButton.doNotSend = false
+ else {
+ actionButton.doNotSend = true;
+ button.sendDtmf(button.text)
+ }
+ }
+
+ ColumnLayout {
+ anchors.fill: parent
+ spacing: 0
+ anchors.topMargin: 5
+ anchors.bottomMargin: 5
+
+ RowLayout{
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ Layout.alignment: Qt.AlignCenter
+ Layout.leftMargin: 5
+ Layout.rightMargin: 5
+ spacing: 0
+ Text {
+ id: charText
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ color: TelKeypadStyle.button.text.color
+ elide: Text.ElideRight
+
+ font {
+ bold: true
+ pointSize: TelKeypadStyle.button.text.pointSize
+ }
+
+ text: button.text
+
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ Icon{
+ icon: TelKeypadStyle.voicemail.icon
+ iconSize: charText.height/2
+ overwriteColor: TelKeypadStyle.button.text.color
+ visible: button.showVoicemail
+ }
+ }
+ Text {
+ visible: text != ''
+ Layout.fillHeight: true
+ Layout.fillWidth: true
+ color: TelKeypadStyle.button.text.color
+ elide: Text.ElideRight
+
+ font {
+ bold: true
+ pointSize: TelKeypadStyle.button.text.pointSize
+ }
+
+ text: auxSymbol
+
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ }
+ }
+ }
+ }
diff --git a/linphone-app/ui/views/App/Main/MainWindow.qml b/linphone-app/ui/views/App/Main/MainWindow.qml
index 841cd24f8..98c2cb3af 100644
--- a/linphone-app/ui/views/App/Main/MainWindow.qml
+++ b/linphone-app/ui/views/App/Main/MainWindow.qml
@@ -200,9 +200,16 @@ ApplicationWindow {
onLaunchSecureChat: CallsListModel.launchChat( sipAddress,1 )
onLaunchVideoCall: CallsListModel.launchVideoCall(sipAddress, '')
}
-
+ ActionButton {
+ isCustom: true
+ backgroundRadius: 90
+ colorSet: MainWindowStyle.buttons.telKeyad
+ onClicked: telKeypad.visible = !telKeypad.visible
+ toggled: telKeypad.visible
+ }
ActionButton {
+ Layout.leftMargin: 30
isCustom: true
backgroundRadius: 4
colorSet: MainWindowStyle.buttons.newChatGroup
@@ -355,16 +362,28 @@ ApplicationWindow {
}
// Main content.
- Loader {
- id: contentLoader
-
- objectName: '__contentLoader'
-
+ Item{
Layout.fillHeight: true
Layout.fillWidth: true
-
- source: 'Home.qml'
- Component.onCompleted: if (AccountSettingsModel.accounts.length < 2) source= 'Assistant.qml' // default proxy = 1. Do not use this set diretly in source because of bindings that will override next setSource
+ Loader {
+ id: contentLoader
+
+ objectName: '__contentLoader'
+
+ anchors.fill: parent
+
+ source: 'Home.qml'
+ Component.onCompleted: if (AccountSettingsModel.accounts.length < 2) source= 'Assistant.qml' // default proxy = 1. Do not use this set diretly in source because of bindings that will override next setSource
+ }
+ TelKeypad {
+ anchors.right: parent.right
+ anchors.top: parent.top
+ id: telKeypad
+ onSendDtmf: smartSearchBar.text = smartSearchBar.previousText+dtmf
+ onVisibleChanged: if(!visible) smartSearchBar.previousText = '' // this is a way to reset search text
+ //call: incall.call
+ visible: SettingsModel.showTelKeypadAutomatically
+ }
}
}
}
diff --git a/linphone-app/ui/views/App/Styles/Calls/CallStyle.qml b/linphone-app/ui/views/App/Styles/Calls/CallStyle.qml
index 1fc8f003d..f1313b992 100644
--- a/linphone-app/ui/views/App/Styles/Calls/CallStyle.qml
+++ b/linphone-app/ui/views/App/Styles/Calls/CallStyle.qml
@@ -130,9 +130,11 @@ QtObject {
property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 'me_n_b_bg').color
property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 'me_h_b_bg').color
property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 'me_p_b_bg').color
+ property color backgroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_u', icon, 'me_u_b_bg').color
property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 'me_n_b_fg').color
property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 'me_h_b_fg').color
property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 'me_p_b_fg').color
+ property color foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_u', icon, 'me_u_b_fg').color
}
property QtObject secure: QtObject {
property int iconSize: 16
diff --git a/linphone-app/ui/views/App/Styles/Main/MainWindowStyle.qml b/linphone-app/ui/views/App/Styles/Main/MainWindowStyle.qml
index 91020ce6b..087ecb2d4 100644
--- a/linphone-app/ui/views/App/Styles/Main/MainWindowStyle.qml
+++ b/linphone-app/ui/views/App/Styles/Main/MainWindowStyle.qml
@@ -83,6 +83,19 @@ QtObject {
property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 'ma_h_b_fg').color
property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 'ma_p_b_fg').color
}
+ property QtObject telKeyad: QtObject {
+ property int iconSize: 16
+ property string name : 'telKeypad'
+ property string icon : 'tel_keypad_custom'
+ property color backgroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_n', icon, 'l_n_b_bg').color
+ property color backgroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_h', icon, 'l_h_b_bg').color
+ property color backgroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_p', icon, 'l_p_b_bg').color
+ property color backgroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_bg_u', icon, 'l_u_b_bg').color
+ property color foregroundNormalColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_n', icon, 'l_n_b_fg').color
+ property color foregroundHoveredColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_h', icon, 'l_h_b_fg').color
+ property color foregroundPressedColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_p', icon, 'l_p_b_fg').color
+ property color foregroundUpdatingColor : ColorsList.addImageColor(sectionName+'_'+name+'_fg_u', icon, 'l_u_b_fg').color
+ }
property QtObject newChatGroup: QtObject {
property int iconSize: 40
property string name : 'newChatGroup'