PageRenderTime 82ms CodeModel.GetById 40ms app.highlight 4ms RepoModel.GetById 36ms app.codeStats 0ms

/src/libtomahawk/database/DatabaseCommand_CreatePlaylist.h

http://github.com/tomahawk-player/tomahawk
C Header | 71 lines | 36 code | 18 blank | 17 comment | 0 complexity | 298432d5ca59815a0b95620086c95c95 MD5 | raw file
 1/* === This file is part of Tomahawk Player - <http://tomahawk-player.org> ===
 2 *
 3 *   Copyright 2010-2011, Christian Muehlhaeuser <muesli@tomahawk-player.org>
 4 *
 5 *   Tomahawk is free software: you can redistribute it and/or modify
 6 *   it under the terms of the GNU General Public License as published by
 7 *   the Free Software Foundation, either version 3 of the License, or
 8 *   (at your option) any later version.
 9 *
10 *   Tomahawk is distributed in the hope that it will be useful,
11 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
12 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 *   GNU General Public License for more details.
14 *
15 *   You should have received a copy of the GNU General Public License
16 *   along with Tomahawk. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#ifndef DATABASECOMMAND_CREATEPLAYLIST_H
20#define DATABASECOMMAND_CREATEPLAYLIST_H
21
22#include "Typedefs.h"
23#include "DatabaseCommandLoggable.h"
24
25#include "DllMacro.h"
26
27#include <QStringList>
28
29namespace Tomahawk
30{
31
32class DLLEXPORT DatabaseCommand_CreatePlaylist : public DatabaseCommandLoggable
33{
34Q_OBJECT
35Q_PROPERTY( QVariant playlist READ playlistV WRITE setPlaylistV )
36
37public:
38    explicit DatabaseCommand_CreatePlaylist( QObject* parent = 0 );
39    explicit DatabaseCommand_CreatePlaylist( const Tomahawk::source_ptr& author, const Tomahawk::playlist_ptr& playlist );
40    virtual ~DatabaseCommand_CreatePlaylist();
41
42    QString commandname() const { return "createplaylist"; }
43
44    virtual void exec( DatabaseImpl* lib );
45    virtual void postCommitHook();
46    virtual bool doesMutates() const { return true; }
47
48    QVariant playlistV() const;
49
50    void setPlaylistV( const QVariant& v )
51    {
52        m_v = v;
53    }
54
55protected:
56    void createPlaylist( DatabaseImpl* lib, bool dynamic = false );
57
58    virtual bool report() { return m_report; }
59
60    void setPlaylist( const Tomahawk::playlist_ptr& playlist );
61
62    QVariant m_v;
63
64private:
65    Tomahawk::playlist_ptr m_playlist;
66    bool m_report; // call Playlist::reportCreated?
67};
68
69}
70
71#endif // DATABASECOMMAND_CREATEPLAYLIST_H