

#ifndef REPLAYGAINSCANNER_H
#define REPLAYGAINSCANNER_H

#include <kdialog.h>

#include "replaygainfilelist.h"

class Config;
class Logger;
class ComboButton;

class TQCheckBox;

class KPushButton;
class KProgress;


/**
 * @short The Replay Gain Tool
 * @author Daniel Faust <hessijames@gmail.com>
 * @version 0.3
 */
class ReplayGainScanner : public KDialog
{
    TQ_OBJECT
  
public:
    /**
     * Constructor
     */
    ReplayGainScanner( TagEngine*, Config*, Logger*, TQWidget* parent=0, const char* name=0, bool modal=true, WFlags f=0 );

    /**
     * Destructor
     */
    virtual ~ReplayGainScanner();

    void addFiles( TQStringList );

private slots:
    void addClicked( int );
    void showDirDialog();
    void showFileDialog();
    void calcReplayGainClicked();
    void removeReplayGainClicked();
    void cancelClicked();
    void processStarted();
    void processStopped();
    void updateProgress( int, int );

private:
    ComboButton* cAdd;
    TQCheckBox* cForce;
    //TQComboBox* cFilter;
    ReplayGainFileList* lList;
    KProgress* pProgressBar;
    KPushButton* pTagVisible;
    KPushButton* pRemoveTag;
    KPushButton* pCancel;
    KPushButton* pOk;

    TagEngine* tagEngine;
    Config* config;
    Logger* logger;

    TQTime elapsedTime;

signals:
    void addFile( const TQString& );
    void addDir( const TQString&, const TQStringList& filter = "", bool recursive = true );
    void calcAllReplayGain( bool force );
    void removeAllReplayGain();
    void cancelProcess();
};

#endif // REPLAYGAINSCANNER_H
