magnatunebrowser.h

来自「Amarok是一款在LINUX或其他类UNIX操作系统中运行的音频播放器软件。 」· C头文件 代码 · 共 252 行

H
252
字号
/*  Copyright (c) 2006  Nikolaj Hald Nielsen <nhnFreespirit@gmail.com>  This library is free software; you can redistribute it and/or  modify it under the terms of the GNU Library General Public  License as published by the Free Software Foundation; either  version 2 of the License, or (at your option) any later version.  This library is distributed in the hope that it will be useful,  but WITHOUT ANY WARRANTY; without even the implied warranty of  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  Library General Public License for more details.  You should have received a copy of the GNU Library General Public License  along with this library; see the file COPYING.LIB.  If not, write to  the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,  Boston, MA 02110-1301, USA.*/#ifndef AMAROKMAGNATUNEBROWSER_H#define AMAROKMAGNATUNEBROWSER_H#include "amarok.h"#include "magnatuneartistinfobox.h"#include "magnatunelistview.h"#include "magnatunelistviewitems.h"#include "magnatunepurchasedialog.h"#include "magnatunepurchasehandler.h"#include "magnatuneredownloadhandler.h"#include "magnatunexmlparser.h"#include <kio/job.h>#include <kio/jobclasses.h>#include <qcheckbox.h>#include <qcombobox.h>#include <qhbox.h>#include <qpopupmenu.h>#include <qpushbutton.h>#include <qvbox.h>/**Amarok browser that displays all the music available at magnatune.com and makes it available for previewing and purchasing.Implemented as a singleton@author Nikolaj Hald Nielsen <nhnFreespirit@gmail.com>*/class MagnatuneBrowser : public QVBox{    Q_OBJECTpublic:    /**     * Destructor     */    ~MagnatuneBrowser() { }    /**     * Retrieves the class instance (Singleton pattern)     * @return pointer to the class instance     */    static MagnatuneBrowser *instance() {        if(!s_instance)  s_instance = new MagnatuneBrowser("MagnatuneBrowser");        return s_instance;    }private slots:    /**     * Slot for recieving aboutToShow signals from the right click menu.     * Inserts items in the menu based on the type of the current selection     */    void menuAboutToShow();    /**     * Slot called when the purchase album button is clicked. Starts a purchase     */    void purchaseButtonClicked();    /**     * Slot for recieving notification from the right click menu that the user     * has chosen to purchase an album. Starts a purchase     */    void purchaseSelectedAlbum();    /**     * Slot for recieving notification from the right click menu that the user      * has chosen to purchase the album contining the selected track.     * Starts a purchase     */    void purchaseAlbumContainingSelectedTrack();     /**     * Slot for recieving notification from the right click menu that the user      * has selected "add to playlist" for the currently selected item,     */    void addSelectionToPlaylist();    /**     * Slot for recieving notification that the user has double clicked an      * item in the list view. Ads item to playlist.     * @param item The item that was double clicked     */    void itemExecuted( QListViewItem * item);    /**     * Slot for recieving notification when a new item in the list is selected.     * Adds the corrosponding artist or album info to the info view (if visible)     * @param item The selected item     */    void selectionChanged( QListViewItem * item);    /**     * Slot for recieving notifications about right clicks in the list view.     * if selection is valid the popup menu is shown     * @param item The item that was right clicked     * @param pos The position of the cursor at the time of thre right click     * @param column The column of the item that was right clicked (unused)     */    void showPopupMenu( QListViewItem * item, const QPoint & pos, int column );    /**     * Slot for recieving notification that the update button has been clicked.     */    void updateButtonClicked();    /**     * Toggles the info area on and off     * @param show If true the info box is shown, if false it is hidden     */    void showInfo(bool show);    /**     * Slot for recieving notification when the Magnatune xml file has been downloaded.      * Triggers a parse of the file to get the info added to the databse     * @param downLoadJob The calling download Job     */    void listDownloadComplete( KIO::Job* downLoadJob);    /**     * Slot for catching cancelled list downloads     */    void listDownloadCancelled();    /**     * Slot called when the genre combo box selection changes. Triggers an update of the list view.     */    void genreChanged();    /**     * Slot called when the parsing of the Magnatuin xml file is completed.     * Triggers an update of the list view and the genre combo box     */    void doneParsing();    /**     * Starts the process of redownloading a previously bought album     */    void processRedownload();    /**     * Slot for recieving notifications of completed purchase operations     * @param success Was the operation a success?     */    void purchaseCompleted( bool success );        /**     * Don not do expensive initializations before we are actually shown     */    void polish();private:    MagnatuneBrowser( const char *name );    /**     * Helper function that initializes the button panel below the list view     */    void initBottomPanel();    /**     * Helper function that initializes the genre selection panel above the list view     */    void initTopPanel();    /**     * Starts downloading an updated track list xml file from      * http://magnatune.com/info/album_info.xml     * @return Currently always returns true     */    bool updateMagnatuneList();    /**     * Adds a magnatune preview track to the playlist.     * @param item The track to add     */    void addTrackToPlaylist ( MagnatuneTrack  *item );    /**     * Adds all preview tracks on a magnatune album to the playlist     * @param item The album to add     */    void addAlbumToPlaylist ( MagnatuneAlbum  *item );    /**     * Adds all preview tracks on all albums by a given artist to the playlist     * @param item the artist to add     */    void addArtistToPlaylist( MagnatuneArtist *item );    /**     * Clears the list view and inserts artists based on the currently selected genre     */    void updateList();    /**     * Clears the genre combo box and inserts all genres from the database     */    void updateGenreBox();    static MagnatuneBrowser *s_instance;    MagnatuneListView         *m_listView;    MagnatuneArtistInfoBox    *m_artistInfobox;    QString                    m_currentInfoUrl;    QPopupMenu                *m_popupMenu;    MagnatunePurchaseHandler  *m_purchaseHandler;    MagnatuneRedownloadHandler *m_redownloadHandler;    QHBox       *m_topPanel;    QVBox       *m_bottomPanel;    QPushButton *m_advancedFeaturesButton;    QPushButton *m_updateListButton;    QPushButton *m_purchaseAlbumButton;    QPushButton *m_showInfoToggleButton;    QComboBox   *m_genreComboBox;    bool         m_isInfoShown;    bool         m_purchaseInProgress;    bool         m_polished;    KIO::TransferJob * m_listDownloadJob;};#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?