Ignore:
Timestamp:
Aug 31, 2016, 5:31:04 PM (9 years ago)
Author:
Silvan Scherrer
Message:

smplayer: update trunk to version 16.8.0

Location:
smplayer/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • smplayer/trunk

  • smplayer/trunk/src/playlist.h

    r176 r181  
    1717*/
    1818
    19 
    2019#ifndef PLAYLIST_H
    2120#define PLAYLIST_H
     
    2423#include <QStringList>
    2524#include <QWidget>
     25#include <QModelIndex>
     26#include <QStandardItem>
    2627#include <QProcess>
    27 
    28 class PlaylistItem {
    29 
     28#include "mediadata.h"
     29
     30#define PLAYLIST_DOWNLOAD
     31//#define PLAYLIST_DOUBLE_TOOLBAR
     32
     33class PLItem : public QStandardItem {
    3034public:
    31         PlaylistItem() { _filename=""; _name=""; _duration=0;
    32                      _played = false; _deleted=false; };
    33         PlaylistItem(QString filename, QString name, double duration) {
    34                          _filename = filename; _name = name; _duration = duration;
    35                  _played = false; _deleted = false; };
    36         ~PlaylistItem() {};
    37 
    38         void setFilename(QString filename) { _filename = filename; };
    39         void setName(QString name) { _name = name; };
    40         void setDuration(double duration) { _duration = duration; };
    41         void setPlayed(bool b) { _played = b; };
    42         void setMarkForDeletion(bool b) { _deleted = b; };
    43 
    44         QString filename() { return _filename; };
    45         QString name() { return _name; };
    46         double duration() { return _duration; };
    47         bool played() { return _played; };
    48         bool markedForDeletion() { return _deleted; };
    49 
    50 private:
    51         QString _filename, _name;
    52         double _duration;
    53         bool _played, _deleted;
     35         enum PLItem_Roles { Role_Played = Qt::UserRole + 2, Role_Current = Qt::UserRole + 3 };
     36
     37        PLItem();
     38        PLItem(const QString filename, const QString name, double duration);
     39        ~PLItem();
     40
     41        void setFilename(const QString filename);
     42        void setName(const QString name);
     43        void setDuration(double duration);
     44        void setPlayed(bool played);
     45        void setPosition(int position);
     46        void setCurrent(bool b);
     47
     48        QString filename();
     49        QString name();
     50        double duration();
     51        bool played();
     52        int position();
     53        bool isCurrent();
     54
     55        QList<QStandardItem *> items();
     56
     57protected:
     58        QStandardItem * col_num;
     59        QStandardItem * col_duration;
     60        QStandardItem * col_filename;
    5461};
    5562
    56 class MyTableWidget;
     63
     64class QTableView;
     65class QStandardItemModel;
     66class QStandardItem;
     67class QSortFilterProxyModel;
    5768class QToolBar;
    5869class MyAction;
    59 class Core;
     70class MyLineEdit;
     71class LoadPage;
    6072class QMenu;
    6173class QSettings;
    6274class QToolButton;
    6375class QTimer;
     76class QMovie;
     77class URLHistory;
    6478
    6579class Playlist : public QWidget
     
    6983public:
    7084        enum AutoGetInfo { NoGetInfo = 0, GetInfo = 1, UserDefined = 2 };
    71 
    72         Playlist( Core *c, QWidget * parent = 0, Qt::WindowFlags f = Qt::Window );
     85        enum M3UFormat { M3U = 0, M3U8 = 1, DetectFormat = 2 };
     86
     87        Playlist(QWidget * parent = 0, Qt::WindowFlags f = Qt::Window );
    7388        ~Playlist();
     89
     90        void setConfigPath(const QString & config_path);
    7491
    7592        void clear();
    7693        void list();
     94
    7795        int count();
    7896        bool isEmpty();
    79         QString print(QString seperator);
    8097
    8198        bool isModified() { return modified; };
     99
     100        PLItem * itemData(int row);
     101        PLItem * itemFromProxy(int row);
     102        bool existsItem(int row);
     103
     104        /*
     105        void changeItem(int row, const QString & filename, const QString name, double duration, bool played = false, int pos = -1);
     106        */
    82107
    83108public slots:
     
    90115        void playItem(int n);
    91116
    92         virtual void playNext();
    93         virtual void playPrev();
    94 
    95         virtual void resumePlay();
    96 
    97         virtual void removeSelected();
    98         virtual void removeAll();
    99         virtual void remove(int);
    100 
    101         virtual void moveItemUp(int);
    102         virtual void moveItemDown(int);
    103 
    104         virtual void addCurrentFile();
    105         virtual void addFiles();
    106         virtual void addDirectory();
    107         virtual void addUrls();
    108 
    109         virtual void addFile(QString file, AutoGetInfo auto_get_info = UserDefined);
    110         virtual void addFiles(QStringList files, AutoGetInfo auto_get_info = UserDefined);
     117        void playNext();
     118        void playPrev();
     119
     120        void resumePlay();
     121
     122        void removeSelected();
     123        void removeAll();
     124
     125        void addCurrentFile();
     126        void addFiles();
     127        void addDirectory();
     128        void addUrls();
     129
     130        void addFile(QString file, AutoGetInfo auto_get_info = UserDefined);
     131        void addFiles(QStringList files, AutoGetInfo auto_get_info = UserDefined);
    111132
    112133        // Adds a directory, no recursive
    113         virtual void addOneDirectory(QString dir);
     134        void addOneDirectory(QString dir);
    114135
    115136        // Adds a directory, maybe with recursion (depends on user config)
    116         virtual void addDirectory(QString dir);
    117 
    118         // EDIT BY NEO -->
    119         virtual void sortBy(int section);
    120         // <--
    121 
    122         virtual void deleteSelectedFileFromDisk();
    123 
    124         virtual bool maybeSave();
    125     virtual void load();
    126     virtual bool save();
    127 
    128         virtual void load_m3u(QString file);
    129         virtual bool save_m3u(QString file);
    130 
    131         virtual void load_pls(QString file);
    132         virtual bool save_pls(QString file);
     137        void addDirectory(QString dir);
     138
     139        void deleteSelectedFileFromDisk();
     140
     141        bool maybeSave();
     142        void load();
     143        bool save();
     144
     145#ifdef PLAYLIST_DOWNLOAD
     146        void openUrl();
     147        void openUrl(const QString & url);
     148#endif
     149
     150        void load_m3u(QString file, M3UFormat format = DetectFormat);
     151        bool save_m3u(QString file);
     152
     153        void load_pls(QString file);
     154        bool save_pls(QString file);
    133155
    134156        void loadXSPF(const QString & filename);
    135157        bool saveXSPF(const QString & filename);
    136158
    137         virtual void getMediaInfo();
    138 
    139159        void setModified(bool);
    140160
     161        void setFilter(const QString & filter);
     162
     163        // Slots to connect from basegui
     164        void getMediaInfo(const MediaData &);
     165        void playerFailed(QProcess::ProcessError);
     166        void playerFinishedWithError(int);
     167
     168public:
    141169        // Preferences
    142170        void setDirectoryRecursion(bool b) { recursive_add_directory = b; };
     
    145173        void setPlayFilesFromStart(bool b) { play_files_from_start = b; };
    146174        void setIgnorePlayerErrors(bool b) { ignore_player_errors = b; };
    147 
    148 public:
     175        void setAutomaticallyPlayNext(bool b) { automatically_play_next = b; };
     176
    149177        bool directoryRecursion() { return recursive_add_directory; };
    150178        bool autoGetInfo() { return automatically_get_info; };
     
    152180        bool playFilesFromStart() { return play_files_from_start; };
    153181        bool ignorePlayerErrors() { return ignore_player_errors; };
    154 
    155         QList<PlaylistItem> playlist(){return pl;};
     182        bool automaticallyPlayNext() { return automatically_play_next; };
     183
     184#ifdef PLAYLIST_DOWNLOAD
     185        void setMaxItemsUrlHistory(int max_items);
     186        int maxItemsUrlHistory();
     187#endif
    156188
    157189/*
     
    162194
    163195signals:
     196        void requestToPlayFile(const QString & filename, int seek = -1);
     197        void requestToAddCurrentFile();
    164198        void playlistEnded();
    165199        void visibilityChanged(bool visible);
     
    167201
    168202protected:
    169         void updateView();
    170203        void setCurrentItem(int current);
     204        int findCurrentItem();
    171205        void clearPlayedTag();
    172206        int chooseRandomItem();
    173         void swapItems(int item1, int item2 );
    174         // EDIT BY NEO -->
    175         void sortBy(int section, bool revert, int count);
    176         // <--
    177207        QString lastDir();
    178208
    179209protected slots:
    180         virtual void playCurrent();
    181         virtual void itemDoubleClicked(int row);
    182         virtual void showPopup(const QPoint & pos);
    183         virtual void upItem();
    184         virtual void downItem();
    185         virtual void editCurrentItem();
    186         virtual void editItem(int item);
    187 
    188         virtual void saveSettings();
    189         virtual void loadSettings();
    190 
    191         virtual void maybeSaveSettings();
    192 
    193         void playerFailed(QProcess::ProcessError);
    194         void playerFinishedWithError(int);
     210        void playCurrent();
     211        void itemActivated(const QModelIndex & index );
     212        void showPopup(const QPoint & pos);
     213        void upItem();
     214        void downItem();
     215        void editCurrentItem();
     216        void editItem(int row);
     217
     218        void saveSettings();
     219        void loadSettings();
     220
     221        void maybeSaveSettings();
     222
     223        void filterEditChanged(const QString &);
     224
     225#ifdef PLAYLIST_DOWNLOAD
     226        void playlistDownloaded(QByteArray);
     227        void errorOcurred(int error_number, QString error_str);
     228        void showLoadingAnimation(bool b);
     229#endif
    195230
    196231protected:
     
    209244
    210245protected:
    211         typedef QList <PlaylistItem> PlaylistItemList;
    212         PlaylistItemList pl;
    213         int current_item;
    214 
    215246        QString playlist_path;
    216247        QString latest_dir;
    217248
    218         Core * core;
    219249        QMenu * add_menu;
    220250        QMenu * remove_menu;
    221251        QMenu * popup;
    222252
    223         MyTableWidget * listView;
     253        QTableView * listView;
     254        QStandardItemModel * table;
     255        QSortFilterProxyModel * proxy;
    224256
    225257        QToolBar * toolbar;
     258#ifdef PLAYLIST_DOUBLE_TOOLBAR
     259        QToolBar * toolbar2;
     260#endif
    226261        QToolButton * add_button;
    227262        QToolButton * remove_button;
    228263
     264        MyLineEdit * filter_edit;
     265
    229266        MyAction * openAct;
     267#ifdef PLAYLIST_DOWNLOAD
     268        MyAction * openUrlAct;
     269#endif
    230270        MyAction * saveAct;
    231271        MyAction * playAct;
     
    249289        MyAction * deleteSelectedFileFromDiskAct;
    250290
     291        QSettings * set;
     292
     293#ifdef PLAYLIST_DOWNLOAD
     294        LoadPage * downloader;
     295        URLHistory * history_urls;
     296        QMovie * animation;
     297        QAction * loading_label_action;
     298#endif
     299
    251300private:
    252301        bool modified;
     
    262311        bool automatically_play_next;
    263312        bool ignore_player_errors;
     313        bool change_name;
     314        bool save_dirs;
    264315};
    265316
    266 
    267 #endif
    268 
     317#endif
Note: See TracChangeset for help on using the changeset viewer.