diff --git a/Linphone/CMakeLists.txt b/Linphone/CMakeLists.txt index cda319c16..10e8e6743 100644 --- a/Linphone/CMakeLists.txt +++ b/Linphone/CMakeLists.txt @@ -79,21 +79,34 @@ add_subdirectory(model) add_subdirectory(view) add_subdirectory(core) +#fonts.qrc is in data and not in data/font because we want to use 'font' in path and not in prefix. +#TODO make prefix working +set(_LINPHONEAPP_FONTS_FILES) +qt6_add_big_resources(_LINPHONEAPP_FONTS_FILES data/fonts.qrc) + + # Have big_resource.qrc treated as a source file by Qt Creator +list(APPEND _LINPHONEAPP_FONTS_FILES data/fonts.qrc) +set_property(SOURCE data/fonts.qrc PROPERTY SKIP_AUTORCC ON) + qt6_add_executable(Linphone ${_LINPHONEAPP_SOURCES} + ${_LINPHONEAPP_FONTS_FILES} ) set_source_files_properties(${_LINPHONEAPP_QML_SINGLETONS} PROPERTIES QT_QML_SINGLETON_TYPE TRUE) + qt6_add_qml_module(Linphone URI Linphone RESOURCE_PREFIX "" VERSION 1.0 QML_FILES ${_LINPHONEAPP_QML_FILES} ${_LINPHONEAPP_QML_SINGLETONS} + RESOURCES data/fonts.qrc ) qt6_add_resources(Linphone "resources" PREFIX "/" FILES ${_LINPHONEAPP_RC_FILES}) + ################################################################ # TARGETS LINKS ################################################################ diff --git a/Linphone/core/App.cpp b/Linphone/core/App.cpp index b4c9b660b..1b5715f91 100644 --- a/Linphone/core/App.cpp +++ b/Linphone/core/App.cpp @@ -23,7 +23,9 @@ #include "App.hpp" #include +#include #include +#include #include #include #include @@ -77,6 +79,14 @@ App::App(int &argc, char *argv[]) auto ignoreVSync = QSurfaceFormat::defaultFormat(); ignoreVSync.setSwapInterval(0); QSurfaceFormat::setDefaultFormat(ignoreVSync); + qInfo() << "Loading Fonts"; + QDirIterator it(":/font/", QDirIterator::Subdirectories); + while (it.hasNext()) { + QString ttf = it.next(); + // qDebug() << ttf; + auto id = QFontDatabase::addApplicationFont(ttf); + } + //------------------- mLinphoneThread = new Thread(this); init(); diff --git a/Linphone/core/conference/ConferenceInfoCore.cpp b/Linphone/core/conference/ConferenceInfoCore.cpp index 8a5639ac5..02115f86f 100644 --- a/Linphone/core/conference/ConferenceInfoCore.cpp +++ b/Linphone/core/conference/ConferenceInfoCore.cpp @@ -57,6 +57,7 @@ ConferenceInfoCore::ConferenceInfoCore(std::shared_ptr if (conferenceInfo) { mustBeInLinphoneThread(getClassName()); mConferenceInfoModel = Utils::makeQObject_ptr(conferenceInfo); + mHaveModel = true; auto confSchedulerModel = mConferenceInfoModel->getConferenceScheduler(); if (!confSchedulerModel) { auto confScheduler = CoreModel::getInstance()->getCore()->createConferenceScheduler(); @@ -108,7 +109,6 @@ ConferenceInfoCore::ConferenceInfoCore(std::shared_ptr auto cleanedClonedAddress = accountAddress->clone(); cleanedClonedAddress->clean(); mOrganizerAddress = Utils::coreStringToAppString(cleanedClonedAddress->asStringUriOnly()); - qDebug() << "set organizer address" << mOrganizerAddress; } } }); @@ -126,6 +126,7 @@ ConferenceInfoCore::ConferenceInfoCore(const ConferenceInfoCore &conferenceInfoC mUri = conferenceInfoCore.mUri; mParticipants = conferenceInfoCore.mParticipants; mTimeZoneModel = conferenceInfoCore.mTimeZoneModel; + mHaveModel = conferenceInfoCore.mHaveModel; mIsScheduled = conferenceInfoCore.mIsScheduled; mIsEnded = conferenceInfoCore.mIsEnded; mInviteMode = conferenceInfoCore.mInviteMode; @@ -343,6 +344,17 @@ QString ConferenceInfoCore::getUri() const { return mUri; } +bool ConferenceInfoCore::getHaveModel() const { + return mHaveModel; +} + +void ConferenceInfoCore::setHaveModel(const bool &haveModel) { + if (mHaveModel != haveModel) { + mHaveModel = haveModel; + emit haveModelChanged(); + } +} + bool ConferenceInfoCore::isScheduled() const { return mIsScheduled; } @@ -578,6 +590,7 @@ void ConferenceInfoCore::save() { } else qCritical() << "No contact address"; } else qCritical() << "No default account"; mConferenceInfoModel = Utils::makeQObject_ptr(linphoneConf); + setHaveModel(true); // mConferenceInfoModel->createConferenceScheduler(); auto confSchedulerModel = mConferenceInfoModel->getConferenceScheduler(); if (!confSchedulerModel) { diff --git a/Linphone/core/conference/ConferenceInfoCore.hpp b/Linphone/core/conference/ConferenceInfoCore.hpp index 57f241a32..dcc5609ec 100644 --- a/Linphone/core/conference/ConferenceInfoCore.hpp +++ b/Linphone/core/conference/ConferenceInfoCore.hpp @@ -51,10 +51,13 @@ public: Q_PROPERTY(QString subject READ getSubject WRITE setSubject NOTIFY subjectChanged) Q_PROPERTY(QString description READ getDescription WRITE setDescription NOTIFY descriptionChanged) Q_PROPERTY(QString uri READ getUri NOTIFY uriChanged) + + Q_PROPERTY(bool haveModel READ getHaveModel NOTIFY haveModelChanged) Q_PROPERTY(bool isScheduled READ isScheduled WRITE setIsScheduled NOTIFY isScheduledChanged) Q_PROPERTY(bool isEnded READ isEnded WRITE setIsEnded NOTIFY isEndedChanged) Q_PROPERTY(int inviteMode READ getInviteMode WRITE setInviteMode NOTIFY inviteModeChanged) Q_PROPERTY(int participantCount READ getParticipantCount NOTIFY participantsChanged) + Q_PROPERTY(QVariantList participants READ getParticipants NOTIFY participantsChanged) Q_PROPERTY(LinphoneEnums::ConferenceInfoState state READ getConferenceInfoState NOTIFY conferenceInfoStateChanged) Q_PROPERTY(LinphoneEnums::ConferenceSchedulerState schedulerState READ getConferenceSchedulerState NOTIFY @@ -82,6 +85,8 @@ public: QString getSubject() const; QString getDescription() const; QString getUri() const; + bool getHaveModel() const; + void setHaveModel(const bool &haveModel); bool isScheduled() const; void setIsScheduled(const bool &on); bool computeIsEnded() const; @@ -148,6 +153,7 @@ signals: void descriptionChanged(); void participantsChanged(); void uriChanged(); + void haveModelChanged(); void isScheduledChanged(); void isEndedChanged(); void inviteModeChanged(); @@ -182,6 +188,7 @@ private: LinphoneEnums::ConferenceSchedulerState mConferenceSchedulerState; LinphoneEnums::ConferenceInfoState mConferenceInfoState = LinphoneEnums::ConferenceInfoState::ConferenceInfoStateNew; + bool mHaveModel = false; bool mIsScheduled; bool mIsEnded = false; QTimer mCheckEndTimer; diff --git a/Linphone/core/conference/ConferenceInfoList.cpp b/Linphone/core/conference/ConferenceInfoList.cpp index a95835450..f32ef2069 100644 --- a/Linphone/core/conference/ConferenceInfoList.cpp +++ b/Linphone/core/conference/ConferenceInfoList.cpp @@ -57,6 +57,7 @@ void ConferenceInfoList::setSelf(QSharedPointer me) { mustBeInLinphoneThread(getClassName()); std::list> conferenceInfos = CoreModel::getInstance()->getCore()->getDefaultAccount()->getConferenceInformationList(); + items->push_back(nullptr); // Add Dummy conference for today for (auto conferenceInfo : conferenceInfos) { auto confInfoCore = build(conferenceInfo); if (confInfoCore) items->push_back(confInfoCore); @@ -64,7 +65,10 @@ void ConferenceInfoList::setSelf(QSharedPointer me) { mCoreModelConnection->invokeToCore([this, items]() { mustBeInMainThread(getClassName()); resetData(); + int currentDateIndex = sort(*items); add(*items); + updateHaveCurrentDate(); + setCurrentDateIndex(mHaveCurrentDate ? currentDateIndex + 1 : currentDateIndex); delete items; }); }); @@ -108,14 +112,50 @@ void ConferenceInfoList::setSelf(QSharedPointer me) { emit lUpdate(); } +bool ConferenceInfoList::haveCurrentDate() const { + return mHaveCurrentDate; +} + +void ConferenceInfoList::setHaveCurrentDate(bool have) { + if (mHaveCurrentDate != have) { + mHaveCurrentDate = have; + emit haveCurrentDateChanged(); + } +} + +void ConferenceInfoList::updateHaveCurrentDate() { + auto today = QDateTime::currentDateTimeUtc().date(); + for (auto item : mList) { + auto model = item.objectCast(); + if (model && model->getDateTimeUtc().date() == today) { + setHaveCurrentDate(true); + return; + } + } + setHaveCurrentDate(false); +} + +int ConferenceInfoList::getCurrentDateIndex() const { + return mCurrentDateIndex; +} + +void ConferenceInfoList::setCurrentDateIndex(int index) { + if (mCurrentDateIndex != index) { + mCurrentDateIndex = index; + emit currentDateIndexChanged(); + } +} + QSharedPointer ConferenceInfoList::get(std::shared_ptr conferenceInfo) const { auto uri = Utils::coreStringToAppString(conferenceInfo->getUri()->asStringUriOnly()); for (auto item : mList) { auto model = item.objectCast(); - auto confUri = model->getUri(); - if (confUri == uri) { - return model; + if (model) { + auto confUri = model->getUri(); + if (confUri == uri) { + return model; + } } } return nullptr; @@ -144,7 +184,7 @@ ConferenceInfoList::build(const std::shared_ptr &confe void ConferenceInfoList::remove(const int &row) { // beginRemoveRows(QModelIndex(), row, row); auto item = mList[row].objectCast(); - emit item->lDeleteConferenceInfo(); + if (item) emit item->lDeleteConferenceInfo(); // endRemoveRows(); } @@ -158,10 +198,42 @@ QHash ConferenceInfoList::roleNames() const { QVariant ConferenceInfoList::data(const QModelIndex &index, int role) const { int row = index.row(); if (!index.isValid() || row < 0 || row >= mList.count()) return QVariant(); - if (role == Qt::DisplayRole) { - return QVariant::fromValue(new ConferenceInfoGui(mList[row].objectCast())); - } else if (role == Qt::DisplayRole + 1) { - return Utils::toDateMonthString(mList[row].objectCast()->getDateTimeUtc()); + auto conferenceInfo = mList[row].objectCast(); + if (conferenceInfo) { + if (role == Qt::DisplayRole) { + return QVariant::fromValue(new ConferenceInfoGui(mList[row].objectCast())); + } else if (role == Qt::DisplayRole + 1) { + return Utils::toDateMonthString(mList[row].objectCast()->getDateTimeUtc()); + } + } else { // Dummy date + if (role == Qt::DisplayRole) { + return QVariant::fromValue(new ConferenceInfoGui()); + } else if (role == Qt::DisplayRole + 1) { + return Utils::toDateMonthString(QDateTime::currentDateTimeUtc()); + } } return QVariant(); } + +int ConferenceInfoList::sort(QList> &listToSort) { + auto nowDate = QDateTime(QDate::currentDate(), QTime(0, 0, 0)).toUTC().date(); + std::sort(listToSort.begin(), listToSort.end(), + [nowDate](const QSharedPointer &a, const QSharedPointer &b) { + auto l = a.objectCast(); + auto r = b.objectCast(); + if (!l || !r) { // sort on date + return !l ? nowDate <= r->getDateTimeUtc().date() : l->getDateTimeUtc().date() < nowDate; + } else { + return l->getDateTimeUtc() < r->getDateTimeUtc(); + } + }); + /* + int count = 0; + for(auto item : listToSort){ + auto l = item.objectCast(); + qDebug() << count ++ << (l ? l->getDateTimeUtc() : QDateTime::currentDateTimeUtc()); + }*/ + auto it = std::find(listToSort.begin(), listToSort.end(), nullptr); + // qDebug() << it - listToSort.begin(); + return it == listToSort.end() ? -1 : it - listToSort.begin(); +} diff --git a/Linphone/core/conference/ConferenceInfoList.hpp b/Linphone/core/conference/ConferenceInfoList.hpp index 347d1b744..53d24cca9 100644 --- a/Linphone/core/conference/ConferenceInfoList.hpp +++ b/Linphone/core/conference/ConferenceInfoList.hpp @@ -38,6 +38,13 @@ public: ~ConferenceInfoList(); void setSelf(QSharedPointer me); + + bool haveCurrentDate()const; + void setHaveCurrentDate(bool have); + void updateHaveCurrentDate(); + + int getCurrentDateIndex() const; + void setCurrentDateIndex(int index); QSharedPointer get(std::shared_ptr conferenceInfo) const; QSharedPointer build(const std::shared_ptr &conferenceInfo) const; @@ -47,12 +54,18 @@ public: QHash roleNames() const override; virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; + static int sort(QList> &listToSort); // return the index of null item. signals: void lUpdate(); + void addCurrentDateChanged(); + void haveCurrentDateChanged(); + void currentDateIndexChanged(); private: QSharedPointer> mCoreModelConnection; + bool mHaveCurrentDate = false; + int mCurrentDateIndex = -1; DECLARE_ABSTRACT_OBJECT }; #endif // CONFERENCE_INFO_LIST_H_ diff --git a/Linphone/core/conference/ConferenceInfoProxy.cpp b/Linphone/core/conference/ConferenceInfoProxy.cpp index 9b5cd0244..ae7683536 100644 --- a/Linphone/core/conference/ConferenceInfoProxy.cpp +++ b/Linphone/core/conference/ConferenceInfoProxy.cpp @@ -28,8 +28,19 @@ DEFINE_ABSTRACT_OBJECT(ConferenceInfoProxy) ConferenceInfoProxy::ConferenceInfoProxy(QObject *parent) : SortFilterProxy(parent) { mList = ConferenceInfoList::create(); setSourceModel(mList.get()); - connect(this, &ConferenceInfoProxy::searchTextChanged, [this] { invalidate(); }); + connect(this, &ConferenceInfoProxy::searchTextChanged, [this] { + invalidate(); + updateCurrentDateIndex(); + }); connect(this, &ConferenceInfoProxy::lUpdate, mList.get(), &ConferenceInfoList::lUpdate); + connect(mList.get(), &ConferenceInfoList::haveCurrentDateChanged, [this] { + invalidate(); + updateCurrentDateIndex(); + }); + connect(mList.get(), &ConferenceInfoList::haveCurrentDateChanged, this, + &ConferenceInfoProxy::haveCurrentDateChanged); + connect(mList.get(), &ConferenceInfoList::currentDateIndexChanged, this, + &ConferenceInfoProxy::updateCurrentDateIndex); } ConferenceInfoProxy::~ConferenceInfoProxy() { @@ -45,31 +56,35 @@ void ConferenceInfoProxy::setSearchText(const QString &search) { emit searchTextChanged(); } +bool ConferenceInfoProxy::haveCurrentDate() const { + return mList->haveCurrentDate(); +} + +int ConferenceInfoProxy::getCurrentDateIndex() const { + return mCurrentDateIndex; +} + +void ConferenceInfoProxy::updateCurrentDateIndex() { + int newIndex = mapFromSource(sourceModel()->index(mList->getCurrentDateIndex(), 0)).row(); + if (mCurrentDateIndex != newIndex) { + mCurrentDateIndex = newIndex; + emit currentDateIndexChanged(); + } +} + bool ConferenceInfoProxy::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const { - const ConferenceInfoGui *gui = - sourceModel()->data(sourceModel()->index(sourceRow, 0, sourceParent)).value(); - if (gui) { - auto ciCore = gui->getCore(); - assert(ciCore); + auto ciCore = qobject_cast(sourceModel())->template getAt(sourceRow); + if (ciCore) { if (!ciCore->getSubject().contains(mSearchText)) return false; - if (ciCore->getDuration() == 0) return false; QDateTime currentDateTime = QDateTime::currentDateTimeUtc(); if (mFilterType == 0) { - // auto res = ciCore->getEndDateTimeUtc() < currentDateTime; return true; } else if (mFilterType == 1) { auto res = ciCore->getEndDateTimeUtc() >= currentDateTime; return res; - // } else if (mFilterType == 2) { - // return !Utils::isMe(ciCore->getOrganizer()); } else return mFilterType == -1; + } else { + return !mList->haveCurrentDate(); } return false; } - -bool ConferenceInfoProxy::lessThan(const QModelIndex &left, const QModelIndex &right) const { - auto l = getItemAt(left.row())->getCore(); - auto r = getItemAt(right.row())->getCore(); - - return l->getDateTimeUtc() < r->getDateTimeUtc(); -} \ No newline at end of file diff --git a/Linphone/core/conference/ConferenceInfoProxy.hpp b/Linphone/core/conference/ConferenceInfoProxy.hpp index 79df3b025..537b9ce88 100644 --- a/Linphone/core/conference/ConferenceInfoProxy.hpp +++ b/Linphone/core/conference/ConferenceInfoProxy.hpp @@ -30,6 +30,8 @@ class ConferenceInfoProxy : public SortFilterProxy, public AbstractObject { Q_OBJECT Q_PROPERTY(QString searchText READ getSearchText WRITE setSearchText NOTIFY searchTextChanged) + Q_PROPERTY(bool haveCurrentDate READ haveCurrentDate NOTIFY haveCurrentDateChanged) + Q_PROPERTY(int currentDateIndex READ getCurrentDateIndex NOTIFY currentDateIndexChanged) public: ConferenceInfoProxy(QObject *parent = Q_NULLPTR); @@ -37,18 +39,29 @@ public: QString getSearchText() const; void setSearchText(const QString &search); + + bool haveCurrentDate() const; + + int getCurrentDateIndex() const; + void updateCurrentDateIndex(); protected: bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override; - bool lessThan(const QModelIndex &left, const QModelIndex &right) const override; + // Do not use the sort feature. We cannot retrieve indexes with mapToSource because Qt return -1 for items that are not displayed. + // We need it to know where + // The workaround is to implement ourself the sort into the List. + //bool lessThan(const QModelIndex &left, const QModelIndex &right) const override; signals: void searchTextChanged(); + void haveCurrentDateChanged(); + void currentDateIndexChanged(); void lUpdate(); private: QString mSearchText; QSharedPointer mList; + int mCurrentDateIndex = -1; DECLARE_ABSTRACT_OBJECT }; diff --git a/Linphone/core/proxy/SortFilterProxy.cpp b/Linphone/core/proxy/SortFilterProxy.cpp index c99a5fdb4..93f123ca6 100644 --- a/Linphone/core/proxy/SortFilterProxy.cpp +++ b/Linphone/core/proxy/SortFilterProxy.cpp @@ -21,7 +21,6 @@ #include "SortFilterProxy.hpp" SortFilterProxy::SortFilterProxy(QObject *parent) : QSortFilterProxyModel(parent) { - mFilterType = 0; connect(this, &SortFilterProxy::rowsInserted, this, &SortFilterProxy::countChanged); connect(this, &SortFilterProxy::rowsRemoved, this, &SortFilterProxy::countChanged); } diff --git a/Linphone/core/proxy/SortFilterProxy.hpp b/Linphone/core/proxy/SortFilterProxy.hpp index 7fb12904e..80784dbd4 100644 --- a/Linphone/core/proxy/SortFilterProxy.hpp +++ b/Linphone/core/proxy/SortFilterProxy.hpp @@ -52,7 +52,7 @@ signals: void filterTypeChanged(int filterType); protected: - int mFilterType; + int mFilterType = 0; bool mDeleteSourceModel = false; }; diff --git a/Linphone/data/font/NotoColorEmoji_WindowsCompatible.ttf b/Linphone/data/font/NotoColorEmoji_WindowsCompatible.ttf new file mode 100644 index 000000000..2a9ea7041 Binary files /dev/null and b/Linphone/data/font/NotoColorEmoji_WindowsCompatible.ttf differ diff --git a/Linphone/data/font/NotoSans-hinted/NotoSans-Bold.ttf b/Linphone/data/font/NotoSans-hinted/NotoSans-Bold.ttf deleted file mode 100644 index ab11d3163..000000000 Binary files a/Linphone/data/font/NotoSans-hinted/NotoSans-Bold.ttf and /dev/null differ diff --git a/Linphone/data/font/NotoSans-hinted/NotoSans-BoldItalic.ttf b/Linphone/data/font/NotoSans-hinted/NotoSans-BoldItalic.ttf deleted file mode 100644 index 6dfd1e614..000000000 Binary files a/Linphone/data/font/NotoSans-hinted/NotoSans-BoldItalic.ttf and /dev/null differ diff --git a/Linphone/data/font/NotoSans-hinted/NotoSans-Italic.ttf b/Linphone/data/font/NotoSans-hinted/NotoSans-Italic.ttf deleted file mode 100644 index 1639ad7d4..000000000 Binary files a/Linphone/data/font/NotoSans-hinted/NotoSans-Italic.ttf and /dev/null differ diff --git a/Linphone/data/font/NotoSans-hinted/NotoSans-Regular.ttf b/Linphone/data/font/NotoSans-hinted/NotoSans-Regular.ttf deleted file mode 100644 index a1b8994ed..000000000 Binary files a/Linphone/data/font/NotoSans-hinted/NotoSans-Regular.ttf and /dev/null differ diff --git a/Linphone/data/font/NotoSans-hinted/NotoSansUI-Bold.ttf b/Linphone/data/font/NotoSans-hinted/NotoSansUI-Bold.ttf deleted file mode 100644 index 6dee5c2d5..000000000 Binary files a/Linphone/data/font/NotoSans-hinted/NotoSansUI-Bold.ttf and /dev/null differ diff --git a/Linphone/data/font/NotoSans-hinted/NotoSansUI-BoldItalic.ttf b/Linphone/data/font/NotoSans-hinted/NotoSansUI-BoldItalic.ttf deleted file mode 100644 index 4bd6f9d87..000000000 Binary files a/Linphone/data/font/NotoSans-hinted/NotoSansUI-BoldItalic.ttf and /dev/null differ diff --git a/Linphone/data/font/NotoSans-hinted/NotoSansUI-Italic.ttf b/Linphone/data/font/NotoSans-hinted/NotoSansUI-Italic.ttf deleted file mode 100644 index 54cae82b7..000000000 Binary files a/Linphone/data/font/NotoSans-hinted/NotoSansUI-Italic.ttf and /dev/null differ diff --git a/Linphone/data/font/NotoSans-hinted/NotoSansUI-Regular.ttf b/Linphone/data/font/NotoSans-hinted/NotoSansUI-Regular.ttf deleted file mode 100644 index 65b29fcff..000000000 Binary files a/Linphone/data/font/NotoSans-hinted/NotoSansUI-Regular.ttf and /dev/null differ diff --git a/Linphone/data/font/NotoSans-hinted/README b/Linphone/data/font/NotoSans-hinted/README deleted file mode 100644 index 60e9f3405..000000000 --- a/Linphone/data/font/NotoSans-hinted/README +++ /dev/null @@ -1,15 +0,0 @@ -This package is part of the noto project. Visit -google.com/get/noto for more information. - -Built on 2017-04-03 from the following noto repository: ------ -Repo: noto-fonts -Tag: v2017-03-06-phase3-initial -Date: 2017-03-06 15:25:38 GMT -Commit:60aa0da2ee84b11e78725b4577edc2e80b009d56 - -Initial phase 3. - -This is the first release of noto-fonts that includes phase 3 fonts in -the hinted/unhinted subdirectories. The new fonts are Armenian, -Cherokee, and Hebrew. diff --git a/Linphone/data/font/Noto_Sans/NotoSans-Italic-VariableFont_wdth,wght.ttf b/Linphone/data/font/Noto_Sans/NotoSans-Italic-VariableFont_wdth,wght.ttf new file mode 100644 index 000000000..4e962ee86 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/NotoSans-Italic-VariableFont_wdth,wght.ttf differ diff --git a/Linphone/data/font/Noto_Sans/NotoSans-VariableFont_wdth,wght.ttf b/Linphone/data/font/Noto_Sans/NotoSans-VariableFont_wdth,wght.ttf new file mode 100644 index 000000000..f7d0d78ed Binary files /dev/null and b/Linphone/data/font/Noto_Sans/NotoSans-VariableFont_wdth,wght.ttf differ diff --git a/Linphone/data/font/NotoSans-hinted/LICENSE_OFL.txt b/Linphone/data/font/Noto_Sans/OFL.txt similarity index 69% rename from Linphone/data/font/NotoSans-hinted/LICENSE_OFL.txt rename to Linphone/data/font/Noto_Sans/OFL.txt index d952d62c0..09f020bb9 100644 --- a/Linphone/data/font/NotoSans-hinted/LICENSE_OFL.txt +++ b/Linphone/data/font/Noto_Sans/OFL.txt @@ -1,92 +1,93 @@ -This Font Software is licensed under the SIL Open Font License, -Version 1.1. - -This license is copied below, and is also available with a FAQ at: -http://scripts.sil.org/OFL - ------------------------------------------------------------ -SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 ------------------------------------------------------------ - -PREAMBLE -The goals of the Open Font License (OFL) are to stimulate worldwide -development of collaborative font projects, to support the font -creation efforts of academic and linguistic communities, and to -provide a free and open framework in which fonts may be shared and -improved in partnership with others. - -The OFL allows the licensed fonts to be used, studied, modified and -redistributed freely as long as they are not sold by themselves. The -fonts, including any derivative works, can be bundled, embedded, -redistributed and/or sold with any software provided that any reserved -names are not used by derivative works. The fonts and derivatives, -however, cannot be released under any other type of license. The -requirement for fonts to remain under this license does not apply to -any document created using the fonts or their derivatives. - -DEFINITIONS -"Font Software" refers to the set of files released by the Copyright -Holder(s) under this license and clearly marked as such. This may -include source files, build scripts and documentation. - -"Reserved Font Name" refers to any names specified as such after the -copyright statement(s). - -"Original Version" refers to the collection of Font Software -components as distributed by the Copyright Holder(s). - -"Modified Version" refers to any derivative made by adding to, -deleting, or substituting -- in part or in whole -- any of the -components of the Original Version, by changing formats or by porting -the Font Software to a new environment. - -"Author" refers to any designer, engineer, programmer, technical -writer or other person who contributed to the Font Software. - -PERMISSION & CONDITIONS -Permission is hereby granted, free of charge, to any person obtaining -a copy of the Font Software, to use, study, copy, merge, embed, -modify, redistribute, and sell modified and unmodified copies of the -Font Software, subject to the following conditions: - -1) Neither the Font Software nor any of its individual components, in -Original or Modified Versions, may be sold by itself. - -2) Original or Modified Versions of the Font Software may be bundled, -redistributed and/or sold with any software, provided that each copy -contains the above copyright notice and this license. These can be -included either as stand-alone text files, human-readable headers or -in the appropriate machine-readable metadata fields within text or -binary files as long as those fields can be easily viewed by the user. - -3) No Modified Version of the Font Software may use the Reserved Font -Name(s) unless explicit written permission is granted by the -corresponding Copyright Holder. This restriction only applies to the -primary font name as presented to the users. - -4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font -Software shall not be used to promote, endorse or advertise any -Modified Version, except to acknowledge the contribution(s) of the -Copyright Holder(s) and the Author(s) or with their explicit written -permission. - -5) The Font Software, modified or unmodified, in part or in whole, -must be distributed entirely under this license, and must not be -distributed under any other license. The requirement for fonts to -remain under this license does not apply to any document created using -the Font Software. - -TERMINATION -This license becomes null and void if any of the above conditions are -not met. - -DISCLAIMER -THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT -OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE -COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL -DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM -OTHER DEALINGS IN THE FONT SOFTWARE. +Copyright 2022 The Noto Project Authors (https://github.com/notofonts/latin-greek-cyrillic) + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://openfontlicense.org + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/Linphone/data/font/Noto_Sans/README.txt b/Linphone/data/font/Noto_Sans/README.txt new file mode 100644 index 000000000..4958bee26 --- /dev/null +++ b/Linphone/data/font/Noto_Sans/README.txt @@ -0,0 +1,136 @@ +Noto Sans Variable Font +======================= + +This download contains Noto Sans as both variable fonts and static fonts. + +Noto Sans is a variable font with these axes: + wdth + wght + +This means all the styles are contained in these files: + NotoSans-VariableFont_wdth,wght.ttf + NotoSans-Italic-VariableFont_wdth,wght.ttf + +If your app fully supports variable fonts, you can now pick intermediate styles +that aren’t available as static fonts. Not all apps support variable fonts, and +in those cases you can use the static font files for Noto Sans: + static/NotoSans_ExtraCondensed-Thin.ttf + static/NotoSans_ExtraCondensed-ExtraLight.ttf + static/NotoSans_ExtraCondensed-Light.ttf + static/NotoSans_ExtraCondensed-Regular.ttf + static/NotoSans_ExtraCondensed-Medium.ttf + static/NotoSans_ExtraCondensed-SemiBold.ttf + static/NotoSans_ExtraCondensed-Bold.ttf + static/NotoSans_ExtraCondensed-ExtraBold.ttf + static/NotoSans_ExtraCondensed-Black.ttf + static/NotoSans_Condensed-Thin.ttf + static/NotoSans_Condensed-ExtraLight.ttf + static/NotoSans_Condensed-Light.ttf + static/NotoSans_Condensed-Regular.ttf + static/NotoSans_Condensed-Medium.ttf + static/NotoSans_Condensed-SemiBold.ttf + static/NotoSans_Condensed-Bold.ttf + static/NotoSans_Condensed-ExtraBold.ttf + static/NotoSans_Condensed-Black.ttf + static/NotoSans_SemiCondensed-Thin.ttf + static/NotoSans_SemiCondensed-ExtraLight.ttf + static/NotoSans_SemiCondensed-Light.ttf + static/NotoSans_SemiCondensed-Regular.ttf + static/NotoSans_SemiCondensed-Medium.ttf + static/NotoSans_SemiCondensed-SemiBold.ttf + static/NotoSans_SemiCondensed-Bold.ttf + static/NotoSans_SemiCondensed-ExtraBold.ttf + static/NotoSans_SemiCondensed-Black.ttf + static/NotoSans-Thin.ttf + static/NotoSans-ExtraLight.ttf + static/NotoSans-Light.ttf + static/NotoSans-Regular.ttf + static/NotoSans-Medium.ttf + static/NotoSans-SemiBold.ttf + static/NotoSans-Bold.ttf + static/NotoSans-ExtraBold.ttf + static/NotoSans-Black.ttf + static/NotoSans_ExtraCondensed-ThinItalic.ttf + static/NotoSans_ExtraCondensed-ExtraLightItalic.ttf + static/NotoSans_ExtraCondensed-LightItalic.ttf + static/NotoSans_ExtraCondensed-Italic.ttf + static/NotoSans_ExtraCondensed-MediumItalic.ttf + static/NotoSans_ExtraCondensed-SemiBoldItalic.ttf + static/NotoSans_ExtraCondensed-BoldItalic.ttf + static/NotoSans_ExtraCondensed-ExtraBoldItalic.ttf + static/NotoSans_ExtraCondensed-BlackItalic.ttf + static/NotoSans_Condensed-ThinItalic.ttf + static/NotoSans_Condensed-ExtraLightItalic.ttf + static/NotoSans_Condensed-LightItalic.ttf + static/NotoSans_Condensed-Italic.ttf + static/NotoSans_Condensed-MediumItalic.ttf + static/NotoSans_Condensed-SemiBoldItalic.ttf + static/NotoSans_Condensed-BoldItalic.ttf + static/NotoSans_Condensed-ExtraBoldItalic.ttf + static/NotoSans_Condensed-BlackItalic.ttf + static/NotoSans_SemiCondensed-ThinItalic.ttf + static/NotoSans_SemiCondensed-ExtraLightItalic.ttf + static/NotoSans_SemiCondensed-LightItalic.ttf + static/NotoSans_SemiCondensed-Italic.ttf + static/NotoSans_SemiCondensed-MediumItalic.ttf + static/NotoSans_SemiCondensed-SemiBoldItalic.ttf + static/NotoSans_SemiCondensed-BoldItalic.ttf + static/NotoSans_SemiCondensed-ExtraBoldItalic.ttf + static/NotoSans_SemiCondensed-BlackItalic.ttf + static/NotoSans-ThinItalic.ttf + static/NotoSans-ExtraLightItalic.ttf + static/NotoSans-LightItalic.ttf + static/NotoSans-Italic.ttf + static/NotoSans-MediumItalic.ttf + static/NotoSans-SemiBoldItalic.ttf + static/NotoSans-BoldItalic.ttf + static/NotoSans-ExtraBoldItalic.ttf + static/NotoSans-BlackItalic.ttf + +Get started +----------- + +1. Install the font files you want to use + +2. Use your app's font picker to view the font family and all the +available styles + +Learn more about variable fonts +------------------------------- + + https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts + https://variablefonts.typenetwork.com + https://medium.com/variable-fonts + +In desktop apps + + https://theblog.adobe.com/can-variable-fonts-illustrator-cc + https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts + +Online + + https://developers.google.com/fonts/docs/getting_started + https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide + https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts + +Installing fonts + + MacOS: https://support.apple.com/en-us/HT201749 + Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux + Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows + +Android Apps + + https://developers.google.com/fonts/docs/android + https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts + +License +------- +Please read the full license text (OFL.txt) to understand the permissions, +restrictions and requirements for usage, redistribution, and modification. + +You can use them in your products & projects – print or digital, +commercial or otherwise. + +This isn't legal advice, please consider consulting a lawyer and see the full +license for all details. diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-Black.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-Black.ttf new file mode 100644 index 000000000..e52bac282 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-Black.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-BlackItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-BlackItalic.ttf new file mode 100644 index 000000000..8a430ec93 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-BlackItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-Bold.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-Bold.ttf new file mode 100644 index 000000000..d84248ed1 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-Bold.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-BoldItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-BoldItalic.ttf new file mode 100644 index 000000000..3a34c4c34 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-BoldItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-ExtraBold.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-ExtraBold.ttf new file mode 100644 index 000000000..b416f0bfa Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-ExtraBold.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-ExtraBoldItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-ExtraBoldItalic.ttf new file mode 100644 index 000000000..181846ff4 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-ExtraBoldItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-ExtraLight.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-ExtraLight.ttf new file mode 100644 index 000000000..81f09586e Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-ExtraLight.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-ExtraLightItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-ExtraLightItalic.ttf new file mode 100644 index 000000000..0d7c13aa1 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-ExtraLightItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-Italic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-Italic.ttf new file mode 100644 index 000000000..c40c3562c Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-Italic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-Light.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-Light.ttf new file mode 100644 index 000000000..f7a67d7a1 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-Light.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-LightItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-LightItalic.ttf new file mode 100644 index 000000000..d51fb252e Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-LightItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-Medium.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-Medium.ttf new file mode 100644 index 000000000..a799b74da Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-Medium.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-MediumItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-MediumItalic.ttf new file mode 100644 index 000000000..2ccbc5b03 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-MediumItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-Regular.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-Regular.ttf new file mode 100644 index 000000000..fa4cff505 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-Regular.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-SemiBold.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-SemiBold.ttf new file mode 100644 index 000000000..d3ed423e1 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-SemiBold.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-SemiBoldItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-SemiBoldItalic.ttf new file mode 100644 index 000000000..c83e750e2 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-SemiBoldItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-Thin.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-Thin.ttf new file mode 100644 index 000000000..1459e795d Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-Thin.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans-ThinItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans-ThinItalic.ttf new file mode 100644 index 000000000..14deac866 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans-ThinItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Black.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Black.ttf new file mode 100644 index 000000000..0e1f611a5 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Black.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-BlackItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-BlackItalic.ttf new file mode 100644 index 000000000..99f7a211e Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-BlackItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Bold.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Bold.ttf new file mode 100644 index 000000000..71e739616 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Bold.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-BoldItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-BoldItalic.ttf new file mode 100644 index 000000000..e948404b4 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-BoldItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ExtraBold.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ExtraBold.ttf new file mode 100644 index 000000000..38520d955 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ExtraBold.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ExtraBoldItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ExtraBoldItalic.ttf new file mode 100644 index 000000000..e4421afdf Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ExtraBoldItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ExtraLight.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ExtraLight.ttf new file mode 100644 index 000000000..f47e49eaa Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ExtraLight.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ExtraLightItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ExtraLightItalic.ttf new file mode 100644 index 000000000..f13c880f4 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ExtraLightItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Italic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Italic.ttf new file mode 100644 index 000000000..8e5c0f7c6 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Italic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Light.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Light.ttf new file mode 100644 index 000000000..0b5c4f696 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Light.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-LightItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-LightItalic.ttf new file mode 100644 index 000000000..a88fe4d80 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-LightItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Medium.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Medium.ttf new file mode 100644 index 000000000..582b88abd Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Medium.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-MediumItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-MediumItalic.ttf new file mode 100644 index 000000000..a88217932 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-MediumItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Regular.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Regular.ttf new file mode 100644 index 000000000..78cc2f578 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Regular.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-SemiBold.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-SemiBold.ttf new file mode 100644 index 000000000..f724bf733 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-SemiBold.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-SemiBoldItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-SemiBoldItalic.ttf new file mode 100644 index 000000000..c7b50d264 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-SemiBoldItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Thin.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Thin.ttf new file mode 100644 index 000000000..fb4744786 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-Thin.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ThinItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ThinItalic.ttf new file mode 100644 index 000000000..0fcffa55d Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_Condensed-ThinItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Black.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Black.ttf new file mode 100644 index 000000000..32a879355 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Black.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-BlackItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-BlackItalic.ttf new file mode 100644 index 000000000..d3769cc98 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-BlackItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Bold.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Bold.ttf new file mode 100644 index 000000000..32d50e7b5 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Bold.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-BoldItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-BoldItalic.ttf new file mode 100644 index 000000000..92599d27f Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-BoldItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraBold.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraBold.ttf new file mode 100644 index 000000000..07e8a8c02 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraBold.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraBoldItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraBoldItalic.ttf new file mode 100644 index 000000000..b4fd5dec9 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraBoldItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraLight.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraLight.ttf new file mode 100644 index 000000000..7bd15ad5b Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraLight.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraLightItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraLightItalic.ttf new file mode 100644 index 000000000..8d7dac17e Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraLightItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Italic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Italic.ttf new file mode 100644 index 000000000..e264b8b6b Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Italic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Light.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Light.ttf new file mode 100644 index 000000000..5e960dab1 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Light.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-LightItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-LightItalic.ttf new file mode 100644 index 000000000..ca4f813e3 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-LightItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Medium.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Medium.ttf new file mode 100644 index 000000000..3be216e42 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Medium.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-MediumItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-MediumItalic.ttf new file mode 100644 index 000000000..a02277771 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-MediumItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Regular.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Regular.ttf new file mode 100644 index 000000000..e805601da Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Regular.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-SemiBold.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-SemiBold.ttf new file mode 100644 index 000000000..930d29e22 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-SemiBold.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-SemiBoldItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-SemiBoldItalic.ttf new file mode 100644 index 000000000..1f9d8d44c Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-SemiBoldItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Thin.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Thin.ttf new file mode 100644 index 000000000..f31235b64 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-Thin.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ThinItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ThinItalic.ttf new file mode 100644 index 000000000..b79d61426 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_ExtraCondensed-ThinItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Black.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Black.ttf new file mode 100644 index 000000000..215e6b545 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Black.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-BlackItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-BlackItalic.ttf new file mode 100644 index 000000000..a7413455b Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-BlackItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Bold.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Bold.ttf new file mode 100644 index 000000000..1cad8500d Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Bold.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-BoldItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-BoldItalic.ttf new file mode 100644 index 000000000..aa925bba8 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-BoldItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraBold.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraBold.ttf new file mode 100644 index 000000000..369bcb245 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraBold.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraBoldItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraBoldItalic.ttf new file mode 100644 index 000000000..0f029d2d3 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraBoldItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraLight.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraLight.ttf new file mode 100644 index 000000000..5ddd58908 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraLight.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraLightItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraLightItalic.ttf new file mode 100644 index 000000000..777c9a0ac Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraLightItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Italic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Italic.ttf new file mode 100644 index 000000000..705a14424 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Italic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Light.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Light.ttf new file mode 100644 index 000000000..a276aa49e Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Light.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-LightItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-LightItalic.ttf new file mode 100644 index 000000000..da4ffea14 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-LightItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Medium.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Medium.ttf new file mode 100644 index 000000000..13774a423 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Medium.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-MediumItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-MediumItalic.ttf new file mode 100644 index 000000000..8188ae3bb Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-MediumItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Regular.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Regular.ttf new file mode 100644 index 000000000..a2d0fd4f4 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Regular.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-SemiBold.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-SemiBold.ttf new file mode 100644 index 000000000..edb001830 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-SemiBold.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-SemiBoldItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-SemiBoldItalic.ttf new file mode 100644 index 000000000..bf96c72e9 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-SemiBoldItalic.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Thin.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Thin.ttf new file mode 100644 index 000000000..1591087f1 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-Thin.ttf differ diff --git a/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ThinItalic.ttf b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ThinItalic.ttf new file mode 100644 index 000000000..1f2cfae30 Binary files /dev/null and b/Linphone/data/font/Noto_Sans/static/NotoSans_SemiCondensed-ThinItalic.ttf differ diff --git a/Linphone/data/fonts.qrc b/Linphone/data/fonts.qrc new file mode 100644 index 000000000..1c11264e7 --- /dev/null +++ b/Linphone/data/fonts.qrc @@ -0,0 +1,77 @@ + + + font/NotoColorEmoji_WindowsCompatible.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-LightItalic.ttf + font/Noto_Sans/static/NotoSans_Condensed-ThinItalic.ttf + font/Noto_Sans/static/NotoSans-SemiBoldItalic.ttf + font/Noto_Sans/static/NotoSans-Italic.ttf + font/Noto_Sans/static/NotoSans-MediumItalic.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-BoldItalic.ttf + font/Noto_Sans/static/NotoSans_Condensed-ExtraBoldItalic.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-BlackItalic.ttf + font/Noto_Sans/static/NotoSans_Condensed-MediumItalic.ttf + font/Noto_Sans/static/NotoSans_Condensed-BoldItalic.ttf + font/Noto_Sans/static/NotoSans_Condensed-ExtraLightItalic.ttf + font/Noto_Sans/static/NotoSans_Condensed-Medium.ttf + font/Noto_Sans/static/NotoSans_Condensed-SemiBold.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-Black.ttf + font/Noto_Sans/static/NotoSans-Medium.ttf + font/Noto_Sans/static/NotoSans_Condensed-Bold.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraBold.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-Regular.ttf + font/Noto_Sans/static/NotoSans-SemiBold.ttf + font/Noto_Sans/static/NotoSans-ExtraBoldItalic.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-Medium.ttf + font/Noto_Sans/static/NotoSans-BlackItalic.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-MediumItalic.ttf + font/Noto_Sans/static/NotoSans-BoldItalic.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-SemiBoldItalic.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraBoldItalic.ttf + font/Noto_Sans/static/NotoSans_Condensed-SemiBoldItalic.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-LightItalic.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-MediumItalic.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraBoldItalic.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraLightItalic.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-Italic.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-ThinItalic.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-Italic.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-SemiBoldItalic.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-BlackItalic.ttf + font/Noto_Sans/static/NotoSans_Condensed-Italic.ttf + font/Noto_Sans/static/NotoSans-ExtraLight.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-Thin.ttf + font/Noto_Sans/static/NotoSans-Regular.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-Light.ttf + font/Noto_Sans/static/NotoSans_Condensed-ExtraBold.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-ExtraLight.ttf + font/Noto_Sans/static/NotoSans_Condensed-ExtraLight.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-SemiBold.ttf + font/Noto_Sans/static/NotoSans-Thin.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-Bold.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraLightItalic.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-Black.ttf + font/Noto_Sans/static/NotoSans-ExtraBold.ttf + font/Noto_Sans/static/NotoSans_Condensed-Light.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-ThinItalic.ttf + font/Noto_Sans/static/NotoSans-Black.ttf + font/Noto_Sans/static/NotoSans-LightItalic.ttf + font/Noto_Sans/static/NotoSans-ThinItalic.ttf + font/Noto_Sans/static/NotoSans_SemiCondensed-BoldItalic.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-SemiBold.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-Light.ttf + font/Noto_Sans/static/NotoSans_Condensed-LightItalic.ttf + font/Noto_Sans/static/NotoSans_Condensed-BlackItalic.ttf + font/Noto_Sans/static/NotoSans-Bold.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraBold.ttf + font/Noto_Sans/static/NotoSans_Condensed-Thin.ttf + font/Noto_Sans/static/NotoSans_Condensed-Regular.ttf + font/Noto_Sans/static/NotoSans_Condensed-Black.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-Bold.ttf + font/Noto_Sans/static/NotoSans-Light.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-Medium.ttf + font/Noto_Sans/static/NotoSans-ExtraLightItalic.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-Regular.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-ExtraLight.ttf + font/Noto_Sans/static/NotoSans_ExtraCondensed-Thin.ttf + + diff --git a/Linphone/model/call/CallModel.cpp b/Linphone/model/call/CallModel.cpp index 0e515a233..0c5445d80 100644 --- a/Linphone/model/call/CallModel.cpp +++ b/Linphone/model/call/CallModel.cpp @@ -360,7 +360,7 @@ void CallModel::onStateChanged(const std::shared_ptr &call, // After UpdatedByRemote, video direction could be changed. auto params = call->getRemoteParams(); emit remoteVideoEnabledChanged(params && params->videoEnabled()); - qWarning() << "CallCameraEnabled:" << call->cameraEnabled(); + qDebug() << "CallCameraEnabled:" << call->cameraEnabled(); auto videoDirection = call->getCurrentParams()->getVideoDirection(); emit cameraEnabledChanged(videoDirection == linphone::MediaDirection::SendOnly || videoDirection == linphone::MediaDirection::SendRecv); diff --git a/Linphone/tool/Utils.cpp b/Linphone/tool/Utils.cpp index 56dfa9a3f..6614c7cd5 100644 --- a/Linphone/tool/Utils.cpp +++ b/Linphone/tool/Utils.cpp @@ -1164,6 +1164,14 @@ QDateTime Utils::createDateTime(const QDate &date, int hour, int min) { return QDateTime(date, time); } +QDateTime Utils::getCurrentDateTime() { + return QDateTime::currentDateTime(); +} + +QDateTime Utils::getCurrentDateTimeUtc() { + return QDateTime::currentDateTimeUtc(); +} + int Utils::secsTo(const QString &startTime, const QString &endTime) { QDateTime startDate(QDateTime::fromString(startTime, "hh:mm")); QDateTime endDate(QDateTime::fromString(endTime, "hh:mm")); diff --git a/Linphone/tool/Utils.hpp b/Linphone/tool/Utils.hpp index 9298b73b4..46255746c 100644 --- a/Linphone/tool/Utils.hpp +++ b/Linphone/tool/Utils.hpp @@ -95,6 +95,8 @@ public: Q_INVOKABLE static bool isBeforeToday(QDate date); Q_INVOKABLE static bool datesAreEqual(const QDate &a, const QDate &b); Q_INVOKABLE static QDateTime createDateTime(const QDate &date, int hour, int min); + Q_INVOKABLE static QDateTime getCurrentDateTime(); + Q_INVOKABLE static QDateTime getCurrentDateTimeUtc(); Q_INVOKABLE static int getYear(const QDate &date); Q_INVOKABLE static int secsTo(const QString &start, const QString &end); Q_INVOKABLE static QDateTime addSecs(QDateTime date, int secs); diff --git a/Linphone/view/App/CallsWindow.qml b/Linphone/view/App/CallsWindow.qml index 95fea44ca..144279969 100644 --- a/Linphone/view/App/CallsWindow.qml +++ b/Linphone/view/App/CallsWindow.qml @@ -1114,7 +1114,7 @@ Window { } MenuButton { checkable: true - icon.source: mainWindow.call.core.speakerMuted ? AppIcons.speakerSlash : AppIcons.speaker + icon.source: !mainWindow.call || mainWindow.call.core.speakerMuted ? AppIcons.speakerSlash : AppIcons.speaker icon.width: 32 * DefaultStyle.dp icon.height: 32 * DefaultStyle.dp contentImageColor: down diff --git a/Linphone/view/Item/Button.qml b/Linphone/view/Item/Button.qml index e88b22fec..6acc5b0f2 100644 --- a/Linphone/view/Item/Button.qml +++ b/Linphone/view/Item/Button.qml @@ -116,8 +116,6 @@ Control.Button { } ButtonText {} ButtonImage{ - Layout.preferredWidth: mainItem.icon.width - Layout.preferredHeight: mainItem.icon.height } Item { Layout.fillWidth : true diff --git a/Linphone/view/Item/Contact/Sticker.qml b/Linphone/view/Item/Contact/Sticker.qml index 7dace22af..3cf3e4f13 100644 --- a/Linphone/view/Item/Contact/Sticker.qml +++ b/Linphone/view/Item/Contact/Sticker.qml @@ -14,7 +14,7 @@ Item { id: mainItem height: 300 width: 200 - required property bool previewEnabled + property bool previewEnabled property CallGui call: null property AccountGui account: null property ParticipantDeviceGui participantDevice: null diff --git a/Linphone/view/Item/Meeting/MeetingList.qml b/Linphone/view/Item/Meeting/MeetingList.qml index f5336e96e..522495ee1 100644 --- a/Linphone/view/Item/Meeting/MeetingList.qml +++ b/Linphone/view/Item/Meeting/MeetingList.qml @@ -17,11 +17,24 @@ ListView { property ConferenceInfoGui selectedConference: model.getAt(currentIndex) || null spacing: 8 * DefaultStyle.dp - currentIndex: -1 + currentIndex: confInfoProxy.currentDateIndex onCountChanged: selectedConference = model.getAt(currentIndex) || null - onCurrentIndexChanged: selectedConference = model.getAt(currentIndex) || null - + onCurrentIndexChanged: { + selectedConference = currentIndex != confInfoProxy.currentDateIndex ? model.getAt(currentIndex) : null + } + onVisibleChanged: if( visible) { + mainItem.positionViewAtIndex(currentIndex, ListView.Center)// First approximative move + delayMove.restart() // Move to exact position after load. + } + Timer{ + id: delayMove + interval: 60 + onTriggered: mainItem.positionViewAtIndex(currentIndex, ListView.Center) + } + // using highlight doesn't center, take time before moving and don't work for not visible item (like not loaded) + highlightFollowsCurrentItem: false + function forceUpdate() { confInfoProxy.lUpdate() } @@ -55,15 +68,16 @@ ListView { height: 63 * DefaultStyle.dp + topOffset width: mainItem.width property var previousItem : mainItem.model.count > 0 && index > 0 ? mainItem.model.getAt(index-1) : null - property var dateTime: $modelData.core.dateTime + property var dateTime: $modelData && $modelData.core.haveModel ? $modelData.core.dateTime : UtilsCpp.getCurrentDateTime() property string day : UtilsCpp.toDateDayNameString(dateTime) property string dateString: UtilsCpp.toDateString(dateTime) - property string previousDateString: previousItem ? UtilsCpp.toDateString(previousItem.core.dateTimeUtc) : '' + property string previousDateString: previousItem ? UtilsCpp.toDateString(previousItem.core ? previousItem.core.dateTimeUtc : UtilsCpp.getCurrentDateTimeUtc()) : '' property bool isFirst : ListView.previousSection !== ListView.section property int topOffset: (dateDay.visible && !isFirst? 8 * DefaultStyle.dp : 0) - - - property var endDateTime: $modelData.core.endDateTime + property var endDateTime: $modelData ? $modelData.core.endDateTime : '' + + property var haveModel: $modelData && $modelData.core.haveModel || false + RowLayout{ anchors.fill: parent anchors.topMargin:parent.topOffset @@ -102,7 +116,7 @@ ListView { property var isCurrentDay: UtilsCpp.isCurrentDay(dateTime) color: isCurrentDay ? DefaultStyle.main1_500_main : "transparent" - Component.onCompleted: if(isCurrentDay) mainItem.currentIndex = index + Text { id: dayNumText anchors.centerIn: parent @@ -127,7 +141,7 @@ ListView { anchors.fill: parent anchors.rightMargin: 5 // margin to avoid clipping shadows at right radius: 10 * DefaultStyle.dp - + visible: itemDelegate.haveModel color: mainItem.currentIndex === index ? DefaultStyle.main2_200 : DefaultStyle.grey_0 ColumnLayout { anchors.fill: parent @@ -162,15 +176,30 @@ ListView { MultiEffect { source: conferenceInfoDelegate anchors.fill: conferenceInfoDelegate + visible: itemDelegate.haveModel shadowEnabled: true shadowBlur: 0.7 shadowOpacity: 0.2 } + Text { + anchors.fill: parent + anchors.rightMargin: 5 * DefaultStyle.dp // margin to avoid clipping shadows at right + anchors.leftMargin: 16 * DefaultStyle.dp + verticalAlignment: Text.AlignVCenter + visible: !itemDelegate.haveModel + text: qsTr("Aucune réunion aujourd'hui") + lineHeightMode: Text.FixedHeight + lineHeight: 17.71 * DefaultStyle.dp + font { + pixelSize: 13 * DefaultStyle.dp + weight: 700 + } + } MouseArea { hoverEnabled: mainItem.hoverEnabled anchors.fill: parent - visible: dateDay.visible cursorShape: Qt.PointingHandCursor + visible: dateDay.visible && itemDelegate.haveModel onClicked: { mainItem.currentIndex = index mainItem.conferenceSelected($modelData) @@ -184,7 +213,7 @@ ListView { MouseArea { id: confArea hoverEnabled: mainItem.hoverEnabled - visible: !dateDay.visible + visible: !dateDay.visible && itemDelegate.haveModel anchors.fill: parent cursorShape: Qt.PointingHandCursor onClicked: { diff --git a/Linphone/view/Layout/Call/ActiveSpeakerLayout.qml b/Linphone/view/Layout/Call/ActiveSpeakerLayout.qml index d6b053b08..cb5f2f25a 100644 --- a/Linphone/view/Layout/Call/ActiveSpeakerLayout.qml +++ b/Linphone/view/Layout/Call/ActiveSpeakerLayout.qml @@ -87,17 +87,16 @@ Item{ model: allDevices snapMode: ListView.SnapOneItem clip: true - delegate: - Sticker { + delegate: Sticker { previewEnabled: index == 0 - visible: modelData && mainItem.callState != LinphoneEnums.CallState.End && mainItem.callState != LinphoneEnums.CallState.Released - && modelData.core.address != activeSpeakerSticker.address + visible: $modelData && mainItem.callState != LinphoneEnums.CallState.End && mainItem.callState != LinphoneEnums.CallState.Released + && $modelData.core.address != activeSpeakerSticker.address height: visible ? 180 * DefaultStyle.dp : 0 width: 300 * DefaultStyle.dp qmlName: 'S_'+index - participantDevice: modelData - Component.onCompleted: console.log(qmlName + " is " +modelData.core.address) + participantDevice: $modelData + Component.onCompleted: console.log(qmlName + " is " +($modelData ? $modelData.core.address : "-")) } } } diff --git a/Linphone/view/Page/Main/MeetingPage.qml b/Linphone/view/Page/Main/MeetingPage.qml index 90f75d405..f3a4e8309 100644 --- a/Linphone/view/Page/Main/MeetingPage.qml +++ b/Linphone/view/Page/Main/MeetingPage.qml @@ -103,24 +103,12 @@ AbstractMainPage { id: leftPanelStackView initialItem: listLayout anchors.top: parent.top - anchors.topMargin: 18 * DefaultStyle.dp anchors.left: parent.left anchors.right: parent.right anchors.bottom: parent.bottom anchors.leftMargin: 45 * DefaultStyle.dp } - ScrollBar { - id: meetingsScrollbar - anchors.right: parent.right - anchors.rightMargin: 8 * DefaultStyle.dp - anchors.top: leftPanelStackView.top - anchors.bottom: parent.bottom - visible: leftPanelStackView.currentItem == listLayout - active: true - interactive: true - policy: Control.ScrollBar.AsNeeded - } } Item { @@ -216,7 +204,15 @@ AbstractMainPage { conferenceList.forceUpdate() } } - Control.ScrollBar.vertical: meetingsScrollbar + Control.ScrollBar.vertical: ScrollBar { + id: meetingsScrollbar + anchors.right: parent.right + anchors.rightMargin: 8 * DefaultStyle.dp + active: true + interactive: true + policy: Control.ScrollBar.AsNeeded + + } } } }