-rw-r--r-- | libopie2/opieui/fileselector/ofileselector.cpp | 19 | ||||
-rw-r--r-- | libopie2/opieui/fileselector/ofileselector.h | 10 |
2 files changed, 24 insertions, 5 deletions
diff --git a/libopie2/opieui/fileselector/ofileselector.cpp b/libopie2/opieui/fileselector/ofileselector.cpp index 5528aed..b06defd 100644 --- a/libopie2/opieui/fileselector/ofileselector.cpp +++ b/libopie2/opieui/fileselector/ofileselector.cpp @@ -61,11 +61,13 @@ using namespace Opie::Ui::Internal; namespace Opie { namespace Ui { namespace Internal { -OFileViewInterface::OFileViewInterface( OFileSelector* selector ) - : m_selector( selector ) -{} +OFileViewInterface::OFileViewInterface( OFileSelector* _selector ) + : m_selector( _selector ) +{ + selector()->registerView( this ); +} OFileViewInterface::~OFileViewInterface() {} @@ -510,9 +512,9 @@ OFileSelector* OFileViewFileListView::selector() { return m_sel; } -bool OFileViewFileListView::eventFilter (QObject *o, QEvent *e) +bool OFileViewFileListView::eventFilter (QObject *, QEvent *e) { if ( e->type() == QEvent::KeyPress ) { QKeyEvent *k = (QKeyEvent *)e; @@ -946,9 +948,9 @@ void OFileSelector::initUI() /* * This will make sure that the return key in the name edit causes dialogs to close */ -bool OFileSelector::eventFilter (QObject *o, QEvent *e) +bool OFileSelector::eventFilter (QObject *, QEvent *e) { if ( e->type() == QEvent::KeyPress ) { QKeyEvent *k = (QKeyEvent *)e; @@ -997,13 +999,20 @@ void OFileSelector::initViews() m_views.insert( QObject::tr("Files"), in ); m_views.insert( QObject::tr("All Files"), in ); } +void OFileSelector::registerView( const Internal::OFileViewInterface* iface ) { + m_viewsPtr.append( iface ); +} + + /** * d'tor */ OFileSelector::~OFileSelector() { + m_viewsPtr.setAutoDelete( true ); + m_viewsPtr.clear(); } diff --git a/libopie2/opieui/fileselector/ofileselector.h b/libopie2/opieui/fileselector/ofileselector.h index 8bcd9ee..de2b98a 100644 --- a/libopie2/opieui/fileselector/ofileselector.h +++ b/libopie2/opieui/fileselector/ofileselector.h @@ -43,8 +43,9 @@ #include <qwidget.h> #include <qmap.h> #include <qvaluelist.h> #include <qstringlist.h> +#include <qlist.h> class QLineEdit; class QComboBox; class QWidgetStack; @@ -182,8 +183,15 @@ private: void initMime(); /* init the Views :) */ void initViews(); + + /* + * register a view for deletion. + * This happens on creation of a OFileViewInterface + */ + void registerView( const Internal::OFileViewInterface* ); + private: QLineEdit* m_lneEdit; // the LineEdit for the Name QComboBox *m_cmbView, *m_cmbMime; // two ComboBoxes to select the View and MimeType QWidgetStack* m_stack; // our widget stack which will contain the views @@ -193,8 +201,10 @@ private: bool m_shClose : 1; // should we show Close? MimeTypes m_mimeType; // list of mimetypes QMap<QString, Internal::OFileViewInterface*> m_views; // QString translated view name + ViewInterface Ptr + /* views register themselves automatically */ + QList<Internal::OFileViewInterface> m_viewsPtr; QHBox* m_nameBox; // the LineEdit + Label is hold here QHBox* m_cmbBox; // this holds the two combo boxes QString m_startDir; |