Skip to content
Snippets Groups Projects
Select Git revision
  • master default protected
  • release/201811
  • release/201812
  • release/201901
  • release/201902
  • release/201903
  • release/201904
  • release/201905
  • release/201906
  • release/201908
  • release/201912
  • release/202001
  • release/202005
  • release/windows-test/201910
  • release/201808
  • wip/smartlist_refacto
  • wip/patches_poly_2017/JimmyHamel/MathieuGirouxHuppe
17 results

AccountListItemsViewModel.h

Blame
    • Andreas Traczyk's avatar
      746f376e
      refactoring: implements per account contacts, trust requests & more · 746f376e
      Andreas Traczyk authored
      - seperates contacts by account
      - implements the trust request API
      - introduces localization strings and transifex update mechanism
      - adds lodepng to remove windows photobooth png metadata
      - changes icons
      - adds default colored initial avatars
      - changes logo images
      - complete overhaul on the ui/ux
      
      Change-Id: I43914ff63a48bb43a6997721773df5029a1650b5
      746f376e
      History
      refactoring: implements per account contacts, trust requests & more
      Andreas Traczyk authored
      - seperates contacts by account
      - implements the trust request API
      - introduces localization strings and transifex update mechanism
      - adds lodepng to remove windows photobooth png metadata
      - changes icons
      - adds default colored initial avatars
      - changes logo images
      - complete overhaul on the ui/ux
      
      Change-Id: I43914ff63a48bb43a6997721773df5029a1650b5
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    AccountListItemsViewModel.h 3.03 KiB
    /***************************************************************************
     * Copyright (C) 2016 by Savoir-faire Linux                                *
     * Author: Jäger Nicolas <nicolas.jager@savoirfairelinux.com>              *
     * Author: Traczyk Andreas <andreas.traczyk@savoirfairelinux.com>          *
     *                                                                         *
     * This program is free software; you can redistribute it and/or modify    *
     * it under the terms of the GNU General Public License as published by    *
     * the Free Software Foundation; either version 3 of the License, or       *
     * (at your option) any later version.                                     *
     *                                                                         *
     * This program is distributed in the hope that it will be useful,         *
     * but WITHOUT ANY WARRANTY; without even the implied warranty of          *
     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           *
     * GNU General Public License for more details.                            *
     *                                                                         *
     * You should have received a copy of the GNU General Public License       *
     * along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
     **************************************************************************/
    #pragma once
    
    using namespace Platform::Collections;
    using namespace Concurrency;
    
    using namespace RingClientUWP;
    using namespace RingClientUWP::Controls;
    
    namespace RingClientUWP
    {
    namespace ViewModel
    {
    
    public ref class AccountListItemsViewModel sealed
    {
    public:
        String^ getSelectedAccountId();
        int unreadMessages();
        int unreadContactRequests();
    
    internal:
        /* singleton */
        static property AccountListItemsViewModel^ instance
        {
            AccountListItemsViewModel^ get()
            {
                static AccountListItemsViewModel^ instance_ = ref new AccountListItemsViewModel();
                return instance_;
            }
        }
    
        /* functions */
        void update(const std::vector<std::string>& properties);
        AccountListItem^ findItem(String^ accountId);
        int getIndex(String^ accountId);
        void removeItem(AccountListItem^ item);
    
        /* properties */
        property Vector<AccountListItem^>^ itemsList
        {
            Vector<AccountListItem^>^ get() {
                return itemsList_;
            }
        }
    
        property AccountListItem^ _selectedItem
        {
            AccountListItem^ get() {
                return currentItem_;
            }
            void set(AccountListItem^ value) {
                if (currentItem_)
                    currentItem_->_isSelected = false;
                currentItem_ = value;
                updateContactsViewModel();
            }
        }
    
    private:
        AccountListItemsViewModel(); // singleton
        Vector<AccountListItem^>^ itemsList_;
        AccountListItem^ currentItem_;
    
        void OnaccountAdded(RingClientUWP::Account ^account);
        void OnclearAccountsList();
        void updateContactsViewModel();
    };
    }
    }