summaryrefslogtreecommitdiff
authorzecke <zecke>2002-04-27 22:49:18 (UTC)
committer zecke <zecke>2002-04-27 22:49:18 (UTC)
commitdb95cde435e507833f58111237f86cb9f9ac927a (patch) (unidiff)
treeffc8883ee58398e99d47e5209affd5a451d579ed
parent8e3c0aa915801b862f97ba7a7598ef5f3bd350aa (diff)
downloadopie-db95cde435e507833f58111237f86cb9f9ac927a.zip
opie-db95cde435e507833f58111237f86cb9f9ac927a.tar.gz
opie-db95cde435e507833f58111237f86cb9f9ac927a.tar.bz2
View Interface
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/libopie.pro2
-rw-r--r--libopie/ofileselector.cc1
-rw-r--r--libopie/ofileview.h79
3 files changed, 81 insertions, 1 deletions
diff --git a/libopie/libopie.pro b/libopie/libopie.pro
index b2ecd07..ba64bda 100644
--- a/libopie/libopie.pro
+++ b/libopie/libopie.pro
@@ -1,8 +1,8 @@
1TEMPLATE = lib 1TEMPLATE = lib
2CONFIG += qte warn_on release 2CONFIG += qte warn_on release
3 HEADERS = ofontmenu.h ofileselector.h ofiledialog.h tododb.h todoevent.h todoresource.h todovcalresource.h xmltree.h colordialog.h colorpopupmenu.h 3 HEADERS = ofontmenu.h ofileselector.h ofiledialog.h ofileview.h tododb.h todoevent.h todoresource.h todovcalresource.h xmltree.h colordialog.h colorpopupmenu.h
4 SOURCES = ofontmenu.cc ofileselector.cc ofiledialog.cc xmltree.cc tododb.cpp todoevent.cpp todovcalresource.cpp colordialog.cpp colorpopupmenu.cpp 4 SOURCES = ofontmenu.cc ofileselector.cc ofiledialog.cc xmltree.cc tododb.cpp todoevent.cpp todovcalresource.cpp colordialog.cpp colorpopupmenu.cpp
5 TARGET = opie 5 TARGET = opie
6INCLUDEPATH += $(OPIEDIR)/include 6INCLUDEPATH += $(OPIEDIR)/include
7DESTDIR = $(QTDIR)/lib$(PROJMAK) 7DESTDIR = $(QTDIR)/lib$(PROJMAK)
8#VERSION = 1.0.0 8#VERSION = 1.0.0
diff --git a/libopie/ofileselector.cc b/libopie/ofileselector.cc
index 0a6e595..0e508af 100644
--- a/libopie/ofileselector.cc
+++ b/libopie/ofileselector.cc
@@ -1,252 +1,253 @@
1/* 1/*
2               =. This file is part of the OPIE Project 2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 3             .=l. Copyright (c) 2002 Holger Freyther <zecke@handhelds.org>
4           .>+-= 4           .>+-=
5 _;:,     .>    :=|. This library is free software; you can 5 _;:,     .>    :=|. This library is free software; you can
6.> <`_,   >  .   <= redistribute it and/or modify it under 6.> <`_,   >  .   <= redistribute it and/or modify it under
7:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 7:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
8.="- .-=="i,     .._ License as published by the Free Software 8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License, 9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version. 10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_. 11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This library is distributed in the hope that 12    .i_,=:_.      -<s. This library is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of 14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more 17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details. 18++=   -.     .`     .: details.
19 :     =  ...= . :.=- 19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU 20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = Library General Public License along with 21  -_. . .   )=.  = Library General Public License along with
22    --        :-=` this library; see the file COPYING.LIB. 22    --        :-=` this library; see the file COPYING.LIB.
23 If not, write to the Free Software Foundation, 23 If not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330, 24 Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA. 25 Boston, MA 02111-1307, USA.
26 26
27*/ 27*/
28 28
29#include <qnamespace.h> 29#include <qnamespace.h>
30#include <qpushbutton.h> 30#include <qpushbutton.h>
31#include <qcombobox.h> 31#include <qcombobox.h>
32#include <qhbox.h> 32#include <qhbox.h>
33#include <qvbox.h> 33#include <qvbox.h>
34#include <qlayout.h> 34#include <qlayout.h>
35#include <qwidgetstack.h> 35#include <qwidgetstack.h>
36#include <qlineedit.h> 36#include <qlineedit.h>
37#include <qcheckbox.h> 37#include <qcheckbox.h>
38#include <qlabel.h> 38#include <qlabel.h>
39#include <qheader.h> 39#include <qheader.h>
40#include <qdir.h> 40#include <qdir.h>
41#include <qpainter.h> 41#include <qpainter.h>
42#include <qaction.h> 42#include <qaction.h>
43#include <qpopupmenu.h> 43#include <qpopupmenu.h>
44#include <qcursor.h> 44#include <qcursor.h>
45#include <qstringlist.h> 45#include <qstringlist.h>
46#include <qmessagebox.h> 46#include <qmessagebox.h>
47 47
48#include <qpe/qpeapplication.h> 48#include <qpe/qpeapplication.h>
49#include <qpe/fileselector.h> 49#include <qpe/fileselector.h>
50#include <qpe/applnk.h> 50#include <qpe/applnk.h>
51#include <qpe/global.h> 51#include <qpe/global.h>
52#include <qpe/mimetype.h> 52#include <qpe/mimetype.h>
53#include <qpe/resource.h> 53#include <qpe/resource.h>
54#include <qpe/storage.h> 54#include <qpe/storage.h>
55 55
56#include <unistd.h> 56#include <unistd.h>
57#include <stdlib.h> 57#include <stdlib.h>
58#include <sys/stat.h> 58#include <sys/stat.h>
59 59
60#include "ofileselector.h" 60#include "ofileselector.h"
61//#include "ofileview.h"
61 62
62QMap<QString,QPixmap> *OFileSelector::m_pixmaps = 0; 63QMap<QString,QPixmap> *OFileSelector::m_pixmaps = 0;
63 64
64namespace { 65namespace {
65 66
66 int indexByString( const QComboBox *box, const QString &str ){ 67 int indexByString( const QComboBox *box, const QString &str ){
67 int index= -1; 68 int index= -1;
68 for(int i= 0; i < box->count(); i++ ){ 69 for(int i= 0; i < box->count(); i++ ){
69 if( str == box->text(i ) ){ 70 if( str == box->text(i ) ){
70 index= i; 71 index= i;
71 break; 72 break;
72 } 73 }
73 } 74 }
74 return index; 75 return index;
75 } 76 }
76 class OFileSelectorItem : public QListViewItem { 77 class OFileSelectorItem : public QListViewItem {
77 public: 78 public:
78 OFileSelectorItem(QListView *view, const QPixmap &pixmap, const QString &path, 79 OFileSelectorItem(QListView *view, const QPixmap &pixmap, const QString &path,
79 const QString &date, const QString &size, const QString &mDir, 80 const QString &date, const QString &size, const QString &mDir,
80 bool isLocked=false, bool isDir=false ): QListViewItem(view) { 81 bool isLocked=false, bool isDir=false ): QListViewItem(view) {
81 setPixmap(0, pixmap ); 82 setPixmap(0, pixmap );
82 setText(1, path ); 83 setText(1, path );
83 setText(2, size ); 84 setText(2, size );
84 setText(3, date ); 85 setText(3, date );
85 //setText(4, mDir ); 86 //setText(4, mDir );
86 m_dir = mDir; 87 m_dir = mDir;
87 dir = isDir; 88 dir = isDir;
88 mLocked = isLocked; 89 mLocked = isLocked;
89 } 90 }
90 bool isLocked() const{ 91 bool isLocked() const{
91 return mLocked; 92 return mLocked;
92 } 93 }
93 QString directory()const{ 94 QString directory()const{
94 return m_dir; 95 return m_dir;
95 } 96 }
96 bool isDir()const{ 97 bool isDir()const{
97 return dir; 98 return dir;
98 } 99 }
99 QString path()const{ 100 QString path()const{
100 return text(1 ); 101 return text(1 );
101 } 102 }
102 QString key(int id, bool )const { 103 QString key(int id, bool )const {
103 QString ke; 104 QString ke;
104 if( id == 0 || id == 1 ){ // name 105 if( id == 0 || id == 1 ){ // name
105 if( dir ){ 106 if( dir ){
106 ke.append("0" ); 107 ke.append("0" );
107 ke.append( text(1) ); 108 ke.append( text(1) );
108 }else{ 109 }else{
109 ke.append("1" ); 110 ke.append("1" );
110 ke.append( text(1) ); 111 ke.append( text(1) );
111 } 112 }
112 }else if( id == 2 ){ // size 113 }else if( id == 2 ){ // size
113 return text(2); 114 return text(2);
114 }else if( id == 3 ){ // date 115 }else if( id == 3 ){ // date
115 return text(3); 116 return text(3);
116 } 117 }
117 return ke; 118 return ke;
118 }; 119 };
119 private: 120 private:
120 bool mLocked:1; 121 bool mLocked:1;
121 bool dir:1; 122 bool dir:1;
122 QString m_dir; 123 QString m_dir;
123 }; 124 };
124}; 125};
125 126
126 127
127OFileSelector::OFileSelector(QWidget *wid, int mode, int selector, const QString &dirName, 128OFileSelector::OFileSelector(QWidget *wid, int mode, int selector, const QString &dirName,
128 const QString &fileName, const QStringList &mimetypes ) : QWidget( wid ) 129 const QString &fileName, const QStringList &mimetypes ) : QWidget( wid )
129{ 130{
130 if(wid!=0) 131 if(wid!=0)
131 resize(wid->width(),wid->height()); 132 resize(wid->width(),wid->height());
132 m_selector = selector; 133 m_selector = selector;
133 m_currentDir = dirName; 134 m_currentDir = dirName;
134 m_name = fileName; 135 m_name = fileName;
135 m_mimetypes = mimetypes; 136 m_mimetypes = mimetypes;
136 137
137 if( mimetypes.isEmpty() ) 138 if( mimetypes.isEmpty() )
138 m_autoMime = true; 139 m_autoMime = true;
139 140
140 qWarning("OFileSelector mimetypes %s", mimetypes.join(" ").latin1() ); 141 qWarning("OFileSelector mimetypes %s", mimetypes.join(" ").latin1() );
141 m_mode = mode; 142 m_mode = mode;
142 m_shTool = true; 143 m_shTool = true;
143 m_shPerm = true; 144 m_shPerm = true;
144 m_shLne = true; 145 m_shLne = true;
145 m_shChooser = true; 146 m_shChooser = true;
146 m_shYesNo = true; 147 m_shYesNo = true;
147 148
148 // for FILESELECTOR only view is interesting 149 // for FILESELECTOR only view is interesting
149 m_location = 0; 150 m_location = 0;
150 m_homeButton = 0; 151 m_homeButton = 0;
151 m_docButton = 0; 152 m_docButton = 0;
152 m_hideButton = 0; 153 m_hideButton = 0;
153 m_ok = 0; 154 m_ok = 0;
154 m_cancel = 0; 155 m_cancel = 0;
155 m_reread = 0; 156 m_reread = 0;
156 m_up = 0; 157 m_up = 0;
157 m_View = 0; 158 m_View = 0;
158 m_select = 0; 159 m_select = 0;
159 m_stack = 0; 160 m_stack = 0;
160 161
161 m_select = 0; 162 m_select = 0;
162 m_stack = 0; 163 m_stack = 0;
163 m_lay = 0; 164 m_lay = 0;
164 m_boxToolbar = 0; 165 m_boxToolbar = 0;
165 m_boxOk = 0; 166 m_boxOk = 0;
166 m_edit = 0; 167 m_edit = 0;
167 168
168 m_fnLabel = 0; 169 m_fnLabel = 0;
169 m_checkPerm = 0; 170 m_checkPerm = 0;
170 m_mimeCheck = 0; 171 m_mimeCheck = 0;
171 m_viewCheck = 0; 172 m_viewCheck = 0;
172 173
173 m_pseudo = 0; 174 m_pseudo = 0;
174 m_pseudoLayout = 0; 175 m_pseudoLayout = 0;
175 176
176 m_dir = true; 177 m_dir = true;
177 m_files = true; 178 m_files = true;
178 m_custom = 0; 179 m_custom = 0;
179 m_showPopup = true; 180 m_showPopup = true;
180 181
181 if(m_pixmaps == 0 ) // init the pixmaps 182 if(m_pixmaps == 0 ) // init the pixmaps
182 initPics(); 183 initPics();
183 184
184 m_lay = new QVBoxLayout(this); 185 m_lay = new QVBoxLayout(this);
185 init(); 186 init();
186 m_edit->setText( fileName ); 187 m_edit->setText( fileName );
187} 188}
188 189
189void OFileSelector::initPics() 190void OFileSelector::initPics()
190{ 191{
191 qWarning("init pics" ); 192 qWarning("init pics" );
192 m_pixmaps = new QMap<QString,QPixmap>; 193 m_pixmaps = new QMap<QString,QPixmap>;
193 QPixmap pm = Resource::loadPixmap( "folder" ); 194 QPixmap pm = Resource::loadPixmap( "folder" );
194 QPixmap lnk = Resource::loadPixmap( "opie/symlink" ); 195 QPixmap lnk = Resource::loadPixmap( "opie/symlink" );
195 QPainter painter( &pm ); 196 QPainter painter( &pm );
196 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); 197 painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk );
197 pm.setMask( pm.createHeuristicMask( FALSE ) ); 198 pm.setMask( pm.createHeuristicMask( FALSE ) );
198 m_pixmaps->insert("dirsymlink", pm ); 199 m_pixmaps->insert("dirsymlink", pm );
199 200
200 QPixmap pm2 = Resource::loadPixmap( "lockedfolder" ); 201 QPixmap pm2 = Resource::loadPixmap( "lockedfolder" );
201 QPainter pen(&pm2 ); 202 QPainter pen(&pm2 );
202 pen.drawPixmap(pm2.width()-lnk.width(), pm2.height()-lnk.height(), lnk ); 203 pen.drawPixmap(pm2.width()-lnk.width(), pm2.height()-lnk.height(), lnk );
203 pm2.setMask( pm2.createHeuristicMask( FALSE ) ); 204 pm2.setMask( pm2.createHeuristicMask( FALSE ) );
204 m_pixmaps->insert("symlinkedlocked", pm2 ); 205 m_pixmaps->insert("symlinkedlocked", pm2 );
205 206
206} 207}
207 208
208// let's initialize the gui 209// let's initialize the gui
209/** 210/**
210 -------------------- 211 --------------------
211 | cmbBox Button | 212 | cmbBox Button |
212 -------------------- 213 --------------------
213 | FileSlector | 214 | FileSlector |
214 | or | 215 | or |
215 | OSelector | 216 | OSelector |
216 | | 217 | |
217 | | 218 | |
218 ____________________ 219 ____________________
219 | LineEdit | 220 | LineEdit |
220 ____________________ 221 ____________________
221 | Permission Bar | 222 | Permission Bar |
222 ____________________ 223 ____________________
223 | ViewChoose | 224 | ViewChoose |
224 ____________________ 225 ____________________
225 | Save Cancel| 226 | Save Cancel|
226 ____________________ 227 ____________________
227 */ 228 */
228void OFileSelector::delItems() 229void OFileSelector::delItems()
229{ 230{
230 QLayoutIterator it = m_lay->iterator(); 231 QLayoutIterator it = m_lay->iterator();
231 while ( it.current() != 0 ){ 232 while ( it.current() != 0 ){
232 it.deleteCurrent(); 233 it.deleteCurrent();
233 } 234 }
234} 235}
235 236
236void OFileSelector::init() 237void OFileSelector::init()
237{ 238{
238// qDebug("init"); 239// qDebug("init");
239 m_stack = new QWidgetStack(this, "wstack" ); 240 m_stack = new QWidgetStack(this, "wstack" );
240 if( m_selector == NORMAL ){ 241 if( m_selector == NORMAL ){
241 QString currMime; 242 QString currMime;
242 if( m_mimeCheck != 0 ) 243 if( m_mimeCheck != 0 )
243 currMime = m_mimeCheck->currentText(); 244 currMime = m_mimeCheck->currentText();
244 updateMimes(); 245 updateMimes();
245 m_select = new FileSelector( currMime == "All" ? QString::null : currMime , 246 m_select = new FileSelector( currMime == "All" ? QString::null : currMime ,
246 m_stack, "fileselector", FALSE, FALSE ); 247 m_stack, "fileselector", FALSE, FALSE );
247 m_stack->addWidget(m_select, NORMAL ); 248 m_stack->addWidget(m_select, NORMAL );
248 m_lay->addWidget(m_stack ); 249 m_lay->addWidget(m_stack );
249 m_stack->raiseWidget(NORMAL ); 250 m_stack->raiseWidget(NORMAL );
250 connect(m_select, SIGNAL(fileSelected( const DocLnk &) ), 251 connect(m_select, SIGNAL(fileSelected( const DocLnk &) ),
251 this, SLOT(slotFileBridgeSelected(const DocLnk &) ) ); 252 this, SLOT(slotFileBridgeSelected(const DocLnk &) ) );
252 m_pseudoLayout = 0l; 253 m_pseudoLayout = 0l;
diff --git a/libopie/ofileview.h b/libopie/ofileview.h
new file mode 100644
index 0000000..48a71ca
--- a/dev/null
+++ b/libopie/ofileview.h
@@ -0,0 +1,79 @@
1/*
2               =. This file is part of the OPIE Project
3             .=l. Copyright (c) 2002 zecke <zecke@handhelds.org>
4           .>+-=
5 _;:,     .>    :=|. This library is free software; you can
6.> <`_,   >  .   <= redistribute it and/or modify it under
7:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
8.="- .-=="i,     .._ License as published by the Free Software
9 - .   .-<_>     .<> Foundation; either version 2 of the License,
10     ._= =}       : or (at your option) any later version.
11    .%`+i>       _;_.
12    .i_,=:_.      -<s. This library is distributed in the hope that
13     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
14    : ..    .:,     . . . without even the implied warranty of
15    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
16  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
17..}^=.=       =       ; Library General Public License for more
18++=   -.     .`     .: details.
19 :     =  ...= . :.=-
20 -.   .:....=;==+<; You should have received a copy of the GNU
21  -_. . .   )=.  = Library General Public License along with
22    --        :-=` this library; see the file COPYING.LIB.
23 If not, write to the Free Software Foundation,
24 Inc., 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA.
26
27*/
28
29#ifndef ofileview_h
30#define ofileview_h
31
32#include <qobject.h>
33#include <qwidget.h>
34
35class QFileInfo;
36class QDir;
37class DocLnk;
38class OFileSelectorView : public QWidget {
39 Q_OBJECT
40 public:
41 OFileSelectorView(QWidget *widget,
42 const char *name )
43 : QWidget(widget, name )
44{ };
45 virtual ~OFileSelectorView();
46
47 virtual void addFile(const QString &mine,
48 QFileInfo *info,
49 bool isSymlink = FALSE ) = 0;
50
51 virtual void addDir (const QString &mine,
52 QFileInfo *info,
53 bool isSymlink = FALSE ) = 0;
54
55 virtual void addSymlink(const QString &mime,
56 QFileInfo *info,
57 bool isSymlink = FALSE ) = 0;
58
59 virtual void cd(const QString &path );
60 signals:
61 void fileSelected(const QString &);
62 void fileSelected(const DocLnk & );
63 void contextMenu();
64 void changedDir(const QString &);
65 void changedDir(const QDir & );
66};
67
68class OFileViewFactory {
69 // Q_OBJECT
70 public:
71 OFileViewFactory() {} ;
72 virtual ~OFileViewFactory();
73
74 OFileSelectorView* newView(QWidget *parent, const char *name );
75 QString name()const;
76};
77
78
79#endif