[vlc-devel] [PATCH 01/16] qt: add title_first_symbol property to mlvideomodel

Abel Tesfaye abeltesfaye45 at gmail.com
Fri Aug 9 17:23:38 CEST 2019


From: Abel Tesfaye <Abeltesfaye45 at gmail.com>

---
 .../gui/qt/components/mediacenter/mlvideomodel.cpp  | 13 +++++++++++++
 .../gui/qt/components/mediacenter/mlvideomodel.hpp  |  1 +
 2 files changed, 14 insertions(+)

diff --git a/modules/gui/qt/components/mediacenter/mlvideomodel.cpp b/modules/gui/qt/components/mediacenter/mlvideomodel.cpp
index 01fe549d0f..26136de8ac 100644
--- a/modules/gui/qt/components/mediacenter/mlvideomodel.cpp
+++ b/modules/gui/qt/components/mediacenter/mlvideomodel.cpp
@@ -33,6 +33,8 @@ enum Role {
     VIDEO_MRL,
     VIDEO_VIDEO_TRACK,
     VIDEO_AUDIO_TRACK,
+
+    VIDEO_TITLE_FIRST_SYMBOL,
 };
 
 }
@@ -80,6 +82,9 @@ QVariant MLVideoModel::data(const QModelIndex& index, int role) const
             return QVariant::fromValue( video->getVideoDesc() );
         case VIDEO_AUDIO_TRACK:
             return QVariant::fromValue( video->getAudioDesc() );
+        case VIDEO_TITLE_FIRST_SYMBOL:
+            return QVariant::fromValue( getFirstSymbol( video->getTitle() ) );
+
         default:
             return {};
     }
@@ -100,6 +105,7 @@ QHash<int, QByteArray> MLVideoModel::roleNames() const
         { VIDEO_MRL, "mrl" },
         { VIDEO_AUDIO_TRACK, "audioDesc" },
         { VIDEO_VIDEO_TRACK, "videoDesc" },
+        { VIDEO_TITLE_FIRST_SYMBOL, "title_first_symbol"},
     };
 }
 
@@ -158,3 +164,10 @@ void MLVideoModel::onVlcMlEvent(const vlc_ml_event_t* event)
     }
     MLBaseModel::onVlcMlEvent( event );
 }
+QString MLVideoModel::getFirstSymbol( const QString& str )
+{
+    QString ret("#");
+    if ( str.length() > 0 && str[0].isLetter() )
+        ret = str[0].toUpper();
+    return ret;
+}
diff --git a/modules/gui/qt/components/mediacenter/mlvideomodel.hpp b/modules/gui/qt/components/mediacenter/mlvideomodel.hpp
index 91e2d62fe1..ae0bac0dc6 100644
--- a/modules/gui/qt/components/mediacenter/mlvideomodel.hpp
+++ b/modules/gui/qt/components/mediacenter/mlvideomodel.hpp
@@ -50,6 +50,7 @@ private:
     virtual void onVlcMlEvent( const vlc_ml_event_t* event ) override;
 
     static QHash<QByteArray, vlc_ml_sorting_criteria_t> M_names_to_criteria;
+    static QString getFirstSymbol( const QString& str );
 };
 
 #endif // MCVIDEOMODEL_H
-- 
2.21.0



More information about the vlc-devel mailing list