summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opieui/fileselector/ofileselector.cpp19
-rw-r--r--libopie2/opieui/fileselector/ofileselector.h10
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
@@ -57,19 +57,21 @@
57#include <qregexp.h> 57#include <qregexp.h>
58#include <qobjectlist.h> 58#include <qobjectlist.h>
59 59
60using namespace Opie::Ui::Internal; 60using namespace Opie::Ui::Internal;
61 61
62namespace Opie { 62namespace Opie {
63namespace Ui { 63namespace Ui {
64namespace Internal { 64namespace Internal {
65OFileViewInterface::OFileViewInterface( OFileSelector* selector ) 65OFileViewInterface::OFileViewInterface( OFileSelector* _selector )
66 : m_selector( selector ) 66 : m_selector( _selector )
67{} 67{
68 selector()->registerView( this );
69}
68 70
69OFileViewInterface::~OFileViewInterface() 71OFileViewInterface::~OFileViewInterface()
70{} 72{}
71 73
72QString OFileViewInterface::name()const 74QString OFileViewInterface::name()const
73{ 75{
74 return m_name; 76 return m_name;
75} 77}
@@ -506,17 +508,17 @@ QString OFileViewFileListView::currentDir()const
506 return m_currentDir; 508 return m_currentDir;
507} 509}
508 510
509OFileSelector* OFileViewFileListView::selector() 511OFileSelector* OFileViewFileListView::selector()
510{ 512{
511 return m_sel; 513 return m_sel;
512} 514}
513 515
514bool OFileViewFileListView::eventFilter (QObject *o, QEvent *e) 516bool OFileViewFileListView::eventFilter (QObject *, QEvent *e)
515{ 517{
516 if ( e->type() == QEvent::KeyPress ) 518 if ( e->type() == QEvent::KeyPress )
517 { 519 {
518 QKeyEvent *k = (QKeyEvent *)e; 520 QKeyEvent *k = (QKeyEvent *)e;
519 if ( (k->key()==Key_Enter) || (k->key()==Key_Return)) 521 if ( (k->key()==Key_Enter) || (k->key()==Key_Return))
520 { 522 {
521 slotClicked( Qt::LeftButton,m_view->currentItem(),QPoint(0,0),0); 523 slotClicked( Qt::LeftButton,m_view->currentItem(),QPoint(0,0),0);
522 return true; 524 return true;
@@ -942,17 +944,17 @@ void OFileSelector::initUI()
942 m_cmbMime = new QComboBox( m_cmbBox ); 944 m_cmbMime = new QComboBox( m_cmbBox );
943 lay->addWidget( m_cmbBox ); 945 lay->addWidget( m_cmbBox );
944} 946}
945 947
946/* 948/*
947 * This will make sure that the return key in the name edit causes dialogs to close 949 * This will make sure that the return key in the name edit causes dialogs to close
948 */ 950 */
949 951
950bool OFileSelector::eventFilter (QObject *o, QEvent *e) 952bool OFileSelector::eventFilter (QObject *, QEvent *e)
951{ 953{
952 if ( e->type() == QEvent::KeyPress ) 954 if ( e->type() == QEvent::KeyPress )
953 { 955 {
954 QKeyEvent *k = (QKeyEvent *)e; 956 QKeyEvent *k = (QKeyEvent *)e;
955 if ( (k->key()==Key_Enter) || (k->key()==Key_Return)) 957 if ( (k->key()==Key_Enter) || (k->key()==Key_Return))
956 { 958 {
957 emit ok(); 959 emit ok();
958 return true; 960 return true;
@@ -993,21 +995,28 @@ void OFileSelector::initViews()
993 m_views.insert( QObject::tr("Documents"), new ODocumentFileView(this) ); 995 m_views.insert( QObject::tr("Documents"), new ODocumentFileView(this) );
994 996
995 /* see above why add both */ 997 /* see above why add both */
996 OFileViewInterface* in = new OFileViewFileSystem( this ); 998 OFileViewInterface* in = new OFileViewFileSystem( this );
997 m_views.insert( QObject::tr("Files"), in ); 999 m_views.insert( QObject::tr("Files"), in );
998 m_views.insert( QObject::tr("All Files"), in ); 1000 m_views.insert( QObject::tr("All Files"), in );
999} 1001}
1000 1002
1003void OFileSelector::registerView( const Internal::OFileViewInterface* iface ) {
1004 m_viewsPtr.append( iface );
1005}
1006
1007
1001/** 1008/**
1002 * d'tor 1009 * d'tor
1003 */ 1010 */
1004OFileSelector::~OFileSelector() 1011OFileSelector::~OFileSelector()
1005{ 1012{
1013 m_viewsPtr.setAutoDelete( true );
1014 m_viewsPtr.clear();
1006} 1015}
1007 1016
1008 1017
1009 1018
1010/** 1019/**
1011 * Convience function for the fileselector 1020 * Convience function for the fileselector
1012 * make sure to delete the DocLnk 1021 * make sure to delete the DocLnk
1013 * 1022 *
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
@@ -39,16 +39,17 @@
39#include <qpe/applnk.h> 39#include <qpe/applnk.h>
40 40
41/* QT */ 41/* QT */
42#include <qlist.h> 42#include <qlist.h>
43#include <qwidget.h> 43#include <qwidget.h>
44#include <qmap.h> 44#include <qmap.h>
45#include <qvaluelist.h> 45#include <qvaluelist.h>
46#include <qstringlist.h> 46#include <qstringlist.h>
47#include <qlist.h>
47 48
48class QLineEdit; 49class QLineEdit;
49class QComboBox; 50class QComboBox;
50class QWidgetStack; 51class QWidgetStack;
51class QHBox; 52class QHBox;
52 53
53typedef QMap<QString, QStringList> MimeTypes; 54typedef QMap<QString, QStringList> MimeTypes;
54 55
@@ -178,27 +179,36 @@ private:
178private: 179private:
179 /* inits the Widgets */ 180 /* inits the Widgets */
180 void initUI(); 181 void initUI();
181 /* inits the MimeType ComboBox content + connects signals and slots */ 182 /* inits the MimeType ComboBox content + connects signals and slots */
182 void initMime(); 183 void initMime();
183 /* init the Views :) */ 184 /* init the Views :) */
184 void initViews(); 185 void initViews();
185 186
187
188 /*
189 * register a view for deletion.
190 * This happens on creation of a OFileViewInterface
191 */
192 void registerView( const Internal::OFileViewInterface* );
193
186private: 194private:
187 QLineEdit* m_lneEdit; // the LineEdit for the Name 195 QLineEdit* m_lneEdit; // the LineEdit for the Name
188 QComboBox *m_cmbView, *m_cmbMime; // two ComboBoxes to select the View and MimeType 196 QComboBox *m_cmbView, *m_cmbMime; // two ComboBoxes to select the View and MimeType
189 QWidgetStack* m_stack; // our widget stack which will contain the views 197 QWidgetStack* m_stack; // our widget stack which will contain the views
190 Internal::OFileViewInterface* currentView() const; // returns the currentView 198 Internal::OFileViewInterface* currentView() const; // returns the currentView
191 Internal::OFileViewInterface* m_current; // here is the view saved 199 Internal::OFileViewInterface* m_current; // here is the view saved
192 bool m_shNew : 1; // should we show New? 200 bool m_shNew : 1; // should we show New?
193 bool m_shClose : 1; // should we show Close? 201 bool m_shClose : 1; // should we show Close?
194 MimeTypes m_mimeType; // list of mimetypes 202 MimeTypes m_mimeType; // list of mimetypes
195 203
196 QMap<QString, Internal::OFileViewInterface*> m_views; // QString translated view name + ViewInterface Ptr 204 QMap<QString, Internal::OFileViewInterface*> m_views; // QString translated view name + ViewInterface Ptr
205 /* views register themselves automatically */
206 QList<Internal::OFileViewInterface> m_viewsPtr;
197 QHBox* m_nameBox; // the LineEdit + Label is hold here 207 QHBox* m_nameBox; // the LineEdit + Label is hold here
198 QHBox* m_cmbBox; // this holds the two combo boxes 208 QHBox* m_cmbBox; // this holds the two combo boxes
199 209
200 QString m_startDir; 210 QString m_startDir;
201 int m_mode; 211 int m_mode;
202 int m_selector; 212 int m_selector;
203 213
204 struct Data; // used for future versions 214 struct Data; // used for future versions