/****************************************************************************
** Form interface generated from reading ui file 'cdinfodialogbase.ui'
**
** Created by: The TQt user interface compiler (TQt 3.5.0)
**
** WARNING! All changes made in this file will be lost!
****************************************************************************/

#ifndef UI_CDINFODIALOGBASE_H
#define UI_CDINFODIALOGBASE_H

#include <ntqvariant.h>
#include <ntqwidget.h>
#include "libkcddb/cdinfo.h"
#include "libkcddb/cddb.h"
#include "libkcddb/categories.h"
#include "libkcddb/genres.h"

class TQVBoxLayout;
class TQHBoxLayout;
class TQGridLayout;
class TQSpacerItem;
class TQLabel;
class KLineEdit;
class KComboBox;
class KIntSpinBox;
class TQCheckBox;
class TDEListView;
class TQPushButton;
class KCDDBDlgBasePrivate;
class TQListViewItem;

class CDInfoDialogBase : public TQWidget
{
    TQ_OBJECT

public:
    CDInfoDialogBase( TQWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
    ~CDInfoDialogBase();

    TQLabel* lb_revision;
    KLineEdit* m_title;
    TQLabel* lb_category;
    TQLabel* m_id;
    KLineEdit* m_artist;
    TQLabel* lb_artist;
    TQLabel* lb_year;
    TQLabel* lb_genre;
    KComboBox* m_category;
    KIntSpinBox* m_year;
    TQCheckBox* m_multiple;
    KLineEdit* m_comment;
    TQLabel* lb_comment;
    TQLabel* lb_title;
    KComboBox* m_genre;
    TQLabel* lb_id;
    TQLabel* lb_length;
    TQLabel* m_revision;
    TQLabel* m_length;
    TDEListView* m_trackList;
    TQPushButton* m_changeEncoding;
    TQLabel* lb_playingOrder;
    KLineEdit* m_playOrder;

    static const unsigned TRACK_ARTIST = 4;
    static const unsigned TRACK_TIME = 1;
    static const unsigned TRACK_NUMBER = 0;
    static const unsigned TRACK_TITLE = 2;
    static const unsigned TRACK_COMMENT = 3;

    virtual TQString framesTime( unsigned frames );
    virtual KCDDB::CDInfo info() const;

public slots:
    virtual void setInfo( const KCDDB::CDInfo & info, KCDDB::TrackOffsetList & trackStartFrames );
    virtual void artistChanged( const TQString & newArtist );
    virtual void genreChanged( const TQString & newGenre );
    virtual void slotMultipleArtists( bool hasMultipleArtist );

signals:
    void play(int i);
    void discInfoClicked();
    void trackInfoClicked(unsigned);

protected:
    TQVBoxLayout* CDInfoDialogBaseLayout;
    TQGridLayout* layout1;
    TQHBoxLayout* layout2;
    TQSpacerItem* spacer1;

protected slots:
    virtual void languageChange();

    virtual void slotTrackSelected( TQListViewItem * item );
    virtual void slotNextTrack();
    virtual void slotTrackDoubleClicked( TQListViewItem * item, const TQPoint &, int column );


private:
    KCDDB::Genres m_genres;
    KCDDB::Categories m_categories;
    static const char *SEPARATOR;
    KCDDBDlgBasePrivate *d;

    void init();
    void destroy();

private slots:
    virtual void slotChangeEncoding();

};

#endif // CDINFODIALOGBASE_H
