/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ #ifndef ARCHIVEVIEW_H #define ARCHIVEVIEW_H #include #include #include #include #include "archivemodel.h" #include "smtreeview.h" class QComboBox; class QLabel; class QLineEdit; class QSortFilterProxyModel; class QTextEdit; class QCompleter; class QStandardItemModel; class QSpinBox; class QToolBar; class QMouseEvent; class QDragEnterEvent; class QRadioButton; /* separate widget since we need it in NewMovieWizard * and editing genres, actors in the new ArchiveView */ class MappingEditorWidget : public QWidget { Q_OBJECT public: explicit MappingEditorWidget(const QString &caption, bool showClearButton = false, QWidget *parent = 0); void fillCompleter(const QStringList &completions); void setCurrentItems(const QStringList &items); QStringList items() const; void setDecorationItem(const QIcon &icon) { mDecorationIcon = icon; } public slots: void clear(); private slots: void addItem(); void removeItem(); private: QStandardItemModel *mModel; QSortFilterProxyModel *mProxy; SmTreeView *mView; QPushButton *mAdd; QPushButton *mRemove; QPushButton *mClear; QLineEdit *mEditor; QCompleter *mCompleter; QStringListModel *mCompleterModel; QString mCaption; QIcon mDecorationIcon; }; /* dialog putting MappingEditorWidget and * Cancel, Accept buttons together. Used when editing * ArchiveView */ class MappingEditor : public QDialog { Q_OBJECT public: explicit MappingEditor(const QString &caption, QWidget *parent = 0, Qt::WindowFlags f = 0); MappingEditorWidget *widget() { return mWidget; } private: QPushButton *mAccept; QPushButton *mCancel; MappingEditorWidget *mWidget; }; class MetadataEditorWidget : public QWidget { Q_OBJECT public: explicit MetadataEditorWidget(QWidget *parent = 0); void setMetadata(const QList &data); QList metadata() const; signals: void oldSelected(const QString &); private slots: void addToComment(const QString &reason); private: QSpinBox *mReleaseYear; QLineEdit *mSubject; QTextEdit *mComment; QRadioButton *mTorrent; QRadioButton *mUsenet; QDate mAdded; QComboBox *mReencReason; QList mWidgets; }; class MetadataEditor : public QDialog { Q_OBJECT public: explicit MetadataEditor(QWidget *parent = 0, Qt::WindowFlags f = 0); MetadataEditorWidget *widget() { return mWidget; } private: MetadataEditorWidget *mWidget; QPushButton *mCancel; QPushButton *mAccept; }; class PartEditor : public QDialog { Q_OBJECT public: explicit PartEditor(QWidget *parent = 0, Qt::WindowFlags f = 0); void setPartNo(int partNo); int partNo() const; void setSubtitle(const QString &subtitle); QString subtitle() const; private: QSpinBox *mPartNo; QLineEdit *mSubtitle; QPushButton *mCancel; QPushButton *mAccept; }; #endif // ARCHIVEVIEW_H