-rw-r--r-- | libopie2/opieui/fileselector/ofileselector.cpp | 26 | ||||
-rw-r--r-- | libopie2/opieui/fileselector/ofileselector.h | 3 | ||||
-rw-r--r-- | libopie2/opieui/fileselector/ofileselector_p.h | 1 |
3 files changed, 27 insertions, 3 deletions
diff --git a/libopie2/opieui/fileselector/ofileselector.cpp b/libopie2/opieui/fileselector/ofileselector.cpp index 346eeae..e8d502f 100644 --- a/libopie2/opieui/fileselector/ofileselector.cpp +++ b/libopie2/opieui/fileselector/ofileselector.cpp | |||
@@ -521,24 +521,32 @@ bool OFileViewFileListView::eventFilter (QObject *, QEvent *e) | |||
521 | if ( e->type() == QEvent::KeyPress ) | 521 | if ( e->type() == QEvent::KeyPress ) |
522 | { | 522 | { |
523 | QKeyEvent *k = (QKeyEvent *)e; | 523 | QKeyEvent *k = (QKeyEvent *)e; |
524 | if ( (k->key()==Key_Enter) || (k->key()==Key_Return)) | 524 | if ( (k->key()==Key_Enter) || (k->key()==Key_Return)) |
525 | { | 525 | { |
526 | slotClicked( Qt::LeftButton,m_view->currentItem(),QPoint(0,0),0); | 526 | slotClicked( Qt::LeftButton,m_view->currentItem(),QPoint(0,0),0); |
527 | return true; | 527 | return true; |
528 | } | 528 | } |
529 | } | 529 | } |
530 | return false; | 530 | return false; |
531 | } | 531 | } |
532 | 532 | ||
533 | /** | ||
534 | * @return true if the item show all files or directories | ||
535 | */ | ||
536 | bool OFileViewFileListView::allItem( const QString& item )const | ||
537 | { | ||
538 | return m_sel->allItem( item ); | ||
539 | } | ||
540 | |||
533 | void OFileViewFileListView::connectSlots() | 541 | void OFileViewFileListView::connectSlots() |
534 | { | 542 | { |
535 | connect(m_view, SIGNAL(clicked(QListViewItem*) ), | 543 | connect(m_view, SIGNAL(clicked(QListViewItem*) ), |
536 | this, SLOT(slotCurrentChanged(QListViewItem*) ) ); | 544 | this, SLOT(slotCurrentChanged(QListViewItem*) ) ); |
537 | connect(m_view, SIGNAL(mouseButtonClicked(int,QListViewItem*,const QPoint&,int) ), | 545 | connect(m_view, SIGNAL(mouseButtonClicked(int,QListViewItem*,const QPoint&,int) ), |
538 | this, SLOT(slotClicked(int,QListViewItem*,const QPoint&,int) ) ); | 546 | this, SLOT(slotClicked(int,QListViewItem*,const QPoint&,int) ) ); |
539 | } | 547 | } |
540 | 548 | ||
541 | void OFileViewFileListView::slotCurrentChanged( QListViewItem* item) | 549 | void OFileViewFileListView::slotCurrentChanged( QListViewItem* item) |
542 | { | 550 | { |
543 | if (!item) | 551 | if (!item) |
544 | return; | 552 | return; |
@@ -806,27 +814,27 @@ int OFileViewFileSystem::fileCount()const | |||
806 | return m_view->fileCount(); | 814 | return m_view->fileCount(); |
807 | } | 815 | } |
808 | 816 | ||
809 | QWidget* OFileViewFileSystem::widget( QWidget* parent ) | 817 | QWidget* OFileViewFileSystem::widget( QWidget* parent ) |
810 | { | 818 | { |
811 | if (!m_view ) | 819 | if (!m_view ) |
812 | { | 820 | { |
813 | m_view = new OFileViewFileListView( parent, startDirectory(), selector() ); | 821 | m_view = new OFileViewFileListView( parent, startDirectory(), selector() ); |
814 | } | 822 | } |
815 | return m_view; | 823 | return m_view; |
816 | } | 824 | } |
817 | 825 | ||
818 | void OFileViewFileSystem::activate( const QString& str) | 826 | void OFileViewFileSystem::activate( const QString& str ) |
819 | { | 827 | { |
820 | m_all = ( str.find( "All" ) != -1 ); | 828 | m_all = m_view->allItem( str ); |
821 | } | 829 | } |
822 | 830 | ||
823 | 831 | ||
824 | } | 832 | } |
825 | /* Selector */ | 833 | /* Selector */ |
826 | /** | 834 | /** |
827 | * @short new and complete c'tor | 835 | * @short new and complete c'tor |
828 | * | 836 | * |
829 | * Create a OFileSelector to let the user select a file. It can | 837 | * Create a OFileSelector to let the user select a file. It can |
830 | * either be used to open a file, select a save name in a dir or | 838 | * either be used to open a file, select a save name in a dir or |
831 | * as a dropin for the FileSelector. | 839 | * as a dropin for the FileSelector. |
832 | * | 840 | * |
@@ -858,24 +866,26 @@ OFileSelector::OFileSelector( QWidget* parent, int mode, int sel, | |||
858 | bool showNew, bool showClose) | 866 | bool showNew, bool showClose) |
859 | :QWidget( parent, "OFileSelector" ) | 867 | :QWidget( parent, "OFileSelector" ) |
860 | { | 868 | { |
861 | m_current = 0; | 869 | m_current = 0; |
862 | m_shNew = showNew; | 870 | m_shNew = showNew; |
863 | m_shClose = showClose; | 871 | m_shClose = showClose; |
864 | m_mimeType = mimetypes; | 872 | m_mimeType = mimetypes; |
865 | m_startDir = dirName; | 873 | m_startDir = dirName; |
866 | 874 | ||
867 | m_mode = mode; | 875 | m_mode = mode; |
868 | m_selector = sel; | 876 | m_selector = sel; |
869 | 877 | ||
878 | m_allList = new QStringList(); | ||
879 | |||
870 | initUI(); | 880 | initUI(); |
871 | m_lneEdit->setText( fileName ); | 881 | m_lneEdit->setText( fileName ); |
872 | initMime(); | 882 | initMime(); |
873 | initViews(); | 883 | initViews(); |
874 | 884 | ||
875 | QString str; | 885 | QString str; |
876 | switch ( m_selector ) | 886 | switch ( m_selector ) |
877 | { | 887 | { |
878 | default: | 888 | default: |
879 | case Normal: | 889 | case Normal: |
880 | if ( m_mode == DIRECTORYSELECTOR ) | 890 | if ( m_mode == DIRECTORYSELECTOR ) |
881 | str = QObject::tr("Directories"); | 891 | str = QObject::tr("Directories"); |
@@ -1014,28 +1024,30 @@ void OFileSelector::initViews() | |||
1014 | } | 1024 | } |
1015 | 1025 | ||
1016 | connect(m_cmbView, SIGNAL(activated(const QString&) ), | 1026 | connect(m_cmbView, SIGNAL(activated(const QString&) ), |
1017 | this, SLOT(slotViewChange(const QString&) ) ); | 1027 | this, SLOT(slotViewChange(const QString&) ) ); |
1018 | 1028 | ||
1019 | /* see above why add both */ | 1029 | /* see above why add both */ |
1020 | OFileViewInterface* in = new OFileViewFileSystem( this ); | 1030 | OFileViewInterface* in = new OFileViewFileSystem( this ); |
1021 | 1031 | ||
1022 | if ( m_mode == OFileSelector::DIRECTORYSELECTOR ) | 1032 | if ( m_mode == OFileSelector::DIRECTORYSELECTOR ) |
1023 | { | 1033 | { |
1024 | m_views.insert( QObject::tr("Directories"), in ); | 1034 | m_views.insert( QObject::tr("Directories"), in ); |
1025 | m_views.insert( QObject::tr("All Directories"), in ); | 1035 | m_views.insert( QObject::tr("All Directories"), in ); |
1036 | m_allList->append( QObject::tr("All Directories") ); | ||
1026 | } else { | 1037 | } else { |
1027 | m_views.insert( QObject::tr("Documents"), new ODocumentFileView(this) ); | 1038 | m_views.insert( QObject::tr("Documents"), new ODocumentFileView(this) ); |
1028 | m_views.insert( QObject::tr("Files"), in ); | 1039 | m_views.insert( QObject::tr("Files"), in ); |
1029 | m_views.insert( QObject::tr("All Files"), in ); | 1040 | m_views.insert( QObject::tr("All Files"), in ); |
1041 | m_allList->append( QObject::tr("All Files") ); | ||
1030 | } | 1042 | } |
1031 | } | 1043 | } |
1032 | 1044 | ||
1033 | void OFileSelector::registerView( const Internal::OFileViewInterface* iface ) { | 1045 | void OFileSelector::registerView( const Internal::OFileViewInterface* iface ) { |
1034 | m_viewsPtr.append( iface ); | 1046 | m_viewsPtr.append( iface ); |
1035 | } | 1047 | } |
1036 | 1048 | ||
1037 | 1049 | ||
1038 | /** | 1050 | /** |
1039 | * d'tor | 1051 | * d'tor |
1040 | */ | 1052 | */ |
1041 | OFileSelector::~OFileSelector() | 1053 | OFileSelector::~OFileSelector() |
@@ -1137,24 +1149,32 @@ int OFileSelector::mode()const | |||
1137 | return m_mode; | 1149 | return m_mode; |
1138 | } | 1150 | } |
1139 | 1151 | ||
1140 | 1152 | ||
1141 | /** | 1153 | /** |
1142 | * @return the Selector of the OFileSelector | 1154 | * @return the Selector of the OFileSelector |
1143 | */ | 1155 | */ |
1144 | int OFileSelector::selector()const | 1156 | int OFileSelector::selector()const |
1145 | { | 1157 | { |
1146 | return m_selector; | 1158 | return m_selector; |
1147 | } | 1159 | } |
1148 | 1160 | ||
1161 | /** | ||
1162 | * @return true if the item show all files or directories | ||
1163 | */ | ||
1164 | bool OFileSelector::allItem( const QString& item )const | ||
1165 | { | ||
1166 | return ( m_allList->findIndex( item ) != -1 ); | ||
1167 | } | ||
1168 | |||
1149 | QStringList OFileSelector::currentMimeType()const | 1169 | QStringList OFileSelector::currentMimeType()const |
1150 | { | 1170 | { |
1151 | return m_mimeType[m_cmbMime->currentText()]; | 1171 | return m_mimeType[m_cmbMime->currentText()]; |
1152 | } | 1172 | } |
1153 | 1173 | ||
1154 | void OFileSelector::slotMimeTypeChanged() | 1174 | void OFileSelector::slotMimeTypeChanged() |
1155 | { | 1175 | { |
1156 | reread(); | 1176 | reread(); |
1157 | } | 1177 | } |
1158 | 1178 | ||
1159 | void OFileSelector::slotDocLnkBridge( const DocLnk& lnk) | 1179 | void OFileSelector::slotDocLnkBridge( const DocLnk& lnk) |
1160 | { | 1180 | { |
@@ -1166,33 +1186,33 @@ void OFileSelector::slotDocLnkBridge( const DocLnk& lnk) | |||
1166 | void OFileSelector::slotFileBridge( const QString& str) | 1186 | void OFileSelector::slotFileBridge( const QString& str) |
1167 | { | 1187 | { |
1168 | DocLnk lnk( str ); | 1188 | DocLnk lnk( str ); |
1169 | emit fileSelected( lnk ); | 1189 | emit fileSelected( lnk ); |
1170 | } | 1190 | } |
1171 | 1191 | ||
1172 | void OFileSelector::slotViewChange( const QString& view ) | 1192 | void OFileSelector::slotViewChange( const QString& view ) |
1173 | { | 1193 | { |
1174 | OFileViewInterface* interface = m_views[view]; | 1194 | OFileViewInterface* interface = m_views[view]; |
1175 | if (!interface) | 1195 | if (!interface) |
1176 | return; | 1196 | return; |
1177 | 1197 | ||
1178 | interface->activate( view ); | ||
1179 | if (m_current) | 1198 | if (m_current) |
1180 | m_stack->removeWidget( m_current->widget( m_stack ) ); | 1199 | m_stack->removeWidget( m_current->widget( m_stack ) ); |
1181 | 1200 | ||
1182 | static int id = 1; | 1201 | static int id = 1; |
1183 | 1202 | ||
1184 | m_stack->addWidget( interface->widget(m_stack), id ); | 1203 | m_stack->addWidget( interface->widget(m_stack), id ); |
1185 | m_stack->raiseWidget( id ); | 1204 | m_stack->raiseWidget( id ); |
1186 | 1205 | ||
1206 | interface->activate( view ); | ||
1187 | interface->reread(); | 1207 | interface->reread(); |
1188 | m_current = interface; | 1208 | m_current = interface; |
1189 | 1209 | ||
1190 | id++; | 1210 | id++; |
1191 | } | 1211 | } |
1192 | 1212 | ||
1193 | void OFileSelector::setNewVisible( bool b ) | 1213 | void OFileSelector::setNewVisible( bool b ) |
1194 | { | 1214 | { |
1195 | m_shNew = b; | 1215 | m_shNew = b; |
1196 | currentView()->reread(); | 1216 | currentView()->reread(); |
1197 | } | 1217 | } |
1198 | 1218 | ||
diff --git a/libopie2/opieui/fileselector/ofileselector.h b/libopie2/opieui/fileselector/ofileselector.h index b1cd405..d96712a 100644 --- a/libopie2/opieui/fileselector/ofileselector.h +++ b/libopie2/opieui/fileselector/ofileselector.h | |||
@@ -112,24 +112,25 @@ public: | |||
112 | 112 | ||
113 | QString selectedName()const; | 113 | QString selectedName()const; |
114 | QString selectedPath()const; | 114 | QString selectedPath()const; |
115 | QString directory()const; | 115 | QString directory()const; |
116 | 116 | ||
117 | DocLnk selectedDocument()const; | 117 | DocLnk selectedDocument()const; |
118 | 118 | ||
119 | int fileCount()const; | 119 | int fileCount()const; |
120 | void reread(); | 120 | void reread(); |
121 | 121 | ||
122 | int mode()const; | 122 | int mode()const; |
123 | int selector()const; | 123 | int selector()const; |
124 | bool allItem( const QString& )const; | ||
124 | 125 | ||
125 | /** | 126 | /** |
126 | * Set the Icon visible | 127 | * Set the Icon visible |
127 | * @param b Show or Hide the New Button | 128 | * @param b Show or Hide the New Button |
128 | */ | 129 | */ |
129 | void setNewVisible( bool b ); | 130 | void setNewVisible( bool b ); |
130 | 131 | ||
131 | /** | 132 | /** |
132 | * Set the Icon visible | 133 | * Set the Icon visible |
133 | */ | 134 | */ |
134 | void setCloseVisible( bool b ); | 135 | void setCloseVisible( bool b ); |
135 | 136 | ||
@@ -203,24 +204,26 @@ private: | |||
203 | MimeTypes m_mimeType; // list of mimetypes | 204 | MimeTypes m_mimeType; // list of mimetypes |
204 | 205 | ||
205 | QMap<QString, Internal::OFileViewInterface*> m_views; // QString translated view name + ViewInterface Ptr | 206 | QMap<QString, Internal::OFileViewInterface*> m_views; // QString translated view name + ViewInterface Ptr |
206 | /* views register themselves automatically */ | 207 | /* views register themselves automatically */ |
207 | QList<Internal::OFileViewInterface> m_viewsPtr; | 208 | QList<Internal::OFileViewInterface> m_viewsPtr; |
208 | QHBox* m_nameBox; // the LineEdit + Label is hold here | 209 | QHBox* m_nameBox; // the LineEdit + Label is hold here |
209 | QHBox* m_cmbBox; // this holds the two combo boxes | 210 | QHBox* m_cmbBox; // this holds the two combo boxes |
210 | 211 | ||
211 | QString m_startDir; | 212 | QString m_startDir; |
212 | int m_mode; | 213 | int m_mode; |
213 | int m_selector; | 214 | int m_selector; |
214 | 215 | ||
216 | QStringList* m_allList; | ||
217 | |||
215 | struct Data; // used for future versions | 218 | struct Data; // used for future versions |
216 | Data *d; | 219 | Data *d; |
217 | 220 | ||
218 | private slots: | 221 | private slots: |
219 | void slotMimeTypeChanged(); | 222 | void slotMimeTypeChanged(); |
220 | 223 | ||
221 | /* will set the text of the lineedit and emit a fileChanged signal */ | 224 | /* will set the text of the lineedit and emit a fileChanged signal */ |
222 | void slotDocLnkBridge( const DocLnk& ); | 225 | void slotDocLnkBridge( const DocLnk& ); |
223 | void slotFileBridge( const QString& ); | 226 | void slotFileBridge( const QString& ); |
224 | void slotViewChange( const QString& ); | 227 | void slotViewChange( const QString& ); |
225 | 228 | ||
226 | bool eventFilter (QObject *o, QEvent *e); | 229 | bool eventFilter (QObject *o, QEvent *e); |
diff --git a/libopie2/opieui/fileselector/ofileselector_p.h b/libopie2/opieui/fileselector/ofileselector_p.h index a3ef8e2..252a7f5 100644 --- a/libopie2/opieui/fileselector/ofileselector_p.h +++ b/libopie2/opieui/fileselector/ofileselector_p.h | |||
@@ -143,24 +143,25 @@ private: | |||
143 | 143 | ||
144 | class OFileViewFileListView : public QWidget | 144 | class OFileViewFileListView : public QWidget |
145 | { | 145 | { |
146 | Q_OBJECT | 146 | Q_OBJECT |
147 | public: | 147 | public: |
148 | OFileViewFileListView( QWidget* parent, const QString& dir, OFileSelector* selector ); | 148 | OFileViewFileListView( QWidget* parent, const QString& dir, OFileSelector* selector ); |
149 | ~OFileViewFileListView(); | 149 | ~OFileViewFileListView(); |
150 | 150 | ||
151 | OFileSelectorItem* currentItem()const; | 151 | OFileSelectorItem* currentItem()const; |
152 | void reread( bool all = false ); | 152 | void reread( bool all = false ); |
153 | int fileCount()const; | 153 | int fileCount()const; |
154 | QString currentDir()const; | 154 | QString currentDir()const; |
155 | bool allItem( const QString& )const; | ||
155 | protected: | 156 | protected: |
156 | bool eventFilter (QObject *o, QEvent *e); | 157 | bool eventFilter (QObject *o, QEvent *e); |
157 | private slots: | 158 | private slots: |
158 | void slotNew(); // will emit newSelected | 159 | void slotNew(); // will emit newSelected |
159 | void cdUP(); | 160 | void cdUP(); |
160 | void cdHome(); | 161 | void cdHome(); |
161 | void cdDoc(); | 162 | void cdDoc(); |
162 | void changeDir( const QString& ); | 163 | void changeDir( const QString& ); |
163 | void slotCurrentChanged( QListViewItem* ); | 164 | void slotCurrentChanged( QListViewItem* ); |
164 | void slotClicked(int, QListViewItem*, const QPoint&, int ); | 165 | void slotClicked(int, QListViewItem*, const QPoint&, int ); |
165 | void slotFSActivated(int); | 166 | void slotFSActivated(int); |
166 | 167 | ||