Changeset 181 for smplayer/trunk/src/playlist.h
- Timestamp:
- Aug 31, 2016, 5:31:04 PM (9 years ago)
- Location:
- smplayer/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
smplayer/trunk
- Property svn:mergeinfo changed
/smplayer/vendor/current merged: 179
- Property svn:mergeinfo changed
-
smplayer/trunk/src/playlist.h
r176 r181 17 17 */ 18 18 19 20 19 #ifndef PLAYLIST_H 21 20 #define PLAYLIST_H … … 24 23 #include <QStringList> 25 24 #include <QWidget> 25 #include <QModelIndex> 26 #include <QStandardItem> 26 27 #include <QProcess> 27 28 class PlaylistItem { 29 28 #include "mediadata.h" 29 30 #define PLAYLIST_DOWNLOAD 31 //#define PLAYLIST_DOUBLE_TOOLBAR 32 33 class PLItem : public QStandardItem { 30 34 public: 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 57 protected: 58 QStandardItem * col_num; 59 QStandardItem * col_duration; 60 QStandardItem * col_filename; 54 61 }; 55 62 56 class MyTableWidget; 63 64 class QTableView; 65 class QStandardItemModel; 66 class QStandardItem; 67 class QSortFilterProxyModel; 57 68 class QToolBar; 58 69 class MyAction; 59 class Core; 70 class MyLineEdit; 71 class LoadPage; 60 72 class QMenu; 61 73 class QSettings; 62 74 class QToolButton; 63 75 class QTimer; 76 class QMovie; 77 class URLHistory; 64 78 65 79 class Playlist : public QWidget … … 69 83 public: 70 84 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 ); 73 88 ~Playlist(); 89 90 void setConfigPath(const QString & config_path); 74 91 75 92 void clear(); 76 93 void list(); 94 77 95 int count(); 78 96 bool isEmpty(); 79 QString print(QString seperator);80 97 81 98 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 */ 82 107 83 108 public slots: … … 90 115 void playItem(int n); 91 116 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); 111 132 112 133 // Adds a directory, no recursive 113 v irtual void addOneDirectory(QString dir);134 void addOneDirectory(QString dir); 114 135 115 136 // 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); 133 155 134 156 void loadXSPF(const QString & filename); 135 157 bool saveXSPF(const QString & filename); 136 158 137 virtual void getMediaInfo();138 139 159 void setModified(bool); 140 160 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 168 public: 141 169 // Preferences 142 170 void setDirectoryRecursion(bool b) { recursive_add_directory = b; }; … … 145 173 void setPlayFilesFromStart(bool b) { play_files_from_start = b; }; 146 174 void setIgnorePlayerErrors(bool b) { ignore_player_errors = b; }; 147 148 public: 175 void setAutomaticallyPlayNext(bool b) { automatically_play_next = b; }; 176 149 177 bool directoryRecursion() { return recursive_add_directory; }; 150 178 bool autoGetInfo() { return automatically_get_info; }; … … 152 180 bool playFilesFromStart() { return play_files_from_start; }; 153 181 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 156 188 157 189 /* … … 162 194 163 195 signals: 196 void requestToPlayFile(const QString & filename, int seek = -1); 197 void requestToAddCurrentFile(); 164 198 void playlistEnded(); 165 199 void visibilityChanged(bool visible); … … 167 201 168 202 protected: 169 void updateView();170 203 void setCurrentItem(int current); 204 int findCurrentItem(); 171 205 void clearPlayedTag(); 172 206 int chooseRandomItem(); 173 void swapItems(int item1, int item2 );174 // EDIT BY NEO -->175 void sortBy(int section, bool revert, int count);176 // <--177 207 QString lastDir(); 178 208 179 209 protected 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 195 230 196 231 protected: … … 209 244 210 245 protected: 211 typedef QList <PlaylistItem> PlaylistItemList;212 PlaylistItemList pl;213 int current_item;214 215 246 QString playlist_path; 216 247 QString latest_dir; 217 248 218 Core * core;219 249 QMenu * add_menu; 220 250 QMenu * remove_menu; 221 251 QMenu * popup; 222 252 223 MyTableWidget * listView; 253 QTableView * listView; 254 QStandardItemModel * table; 255 QSortFilterProxyModel * proxy; 224 256 225 257 QToolBar * toolbar; 258 #ifdef PLAYLIST_DOUBLE_TOOLBAR 259 QToolBar * toolbar2; 260 #endif 226 261 QToolButton * add_button; 227 262 QToolButton * remove_button; 228 263 264 MyLineEdit * filter_edit; 265 229 266 MyAction * openAct; 267 #ifdef PLAYLIST_DOWNLOAD 268 MyAction * openUrlAct; 269 #endif 230 270 MyAction * saveAct; 231 271 MyAction * playAct; … … 249 289 MyAction * deleteSelectedFileFromDiskAct; 250 290 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 251 300 private: 252 301 bool modified; … … 262 311 bool automatically_play_next; 263 312 bool ignore_player_errors; 313 bool change_name; 314 bool save_dirs; 264 315 }; 265 316 266 267 #endif 268 317 #endif
Note:
See TracChangeset
for help on using the changeset viewer.