-rw-r--r-- | libopie/ofileselector.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/libopie/ofileselector.cc b/libopie/ofileselector.cc index bc7c6c2..c3a3514 100644 --- a/libopie/ofileselector.cc +++ b/libopie/ofileselector.cc @@ -1,273 +1,275 @@ /* =. This file is part of the OPIE Project .=l. Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> .>+-= _;:, .> :=|. This library is free software; you can .> <`_, > . <= redistribute it and/or modify it under :`=1 )Y*s>-.-- : the terms of the GNU Library General Public .="- .-=="i, .._ License as published by the Free Software - . .-<_> .<> Foundation; either version 2 of the License, ._= =} : or (at your option) any later version. .%`+i> _;_. .i_,=:_. -<s. This library is distributed in the hope that + . -:. = it will be useful, but WITHOUT ANY WARRANTY; : .. .:, . . . without even the implied warranty of =_ + =;=|` MERCHANTABILITY or FITNESS FOR A _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU ..}^=.= = ; Library General Public License for more ++= -. .` .: details. : = ...= . :.=- -. .:....=;==+<; You should have received a copy of the GNU -_. . . )=. = Library General Public License along with -- :-=` this library; see the file COPYING.LIB. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include <qnamespace.h> #include <qpushbutton.h> #include <qcombobox.h> #include <qhbox.h> #include <qvbox.h> #include <qlayout.h> #include <qwidgetstack.h> #include <qlineedit.h> #include <qcheckbox.h> #include <qlabel.h> #include <qheader.h> #include <qdir.h> #include <qpainter.h> #include <qaction.h> #include <qpopupmenu.h> #include <qcursor.h> #include <qpe/qpeapplication.h> #include <qpe/fileselector.h> #include <qpe/applnk.h> #include <qpe/global.h> #include <qpe/mimetype.h> #include <qpe/resource.h> #include <qpe/storage.h> #include <unistd.h> #include <stdlib.h> #include <sys/stat.h> #include "ofileselector.h" QMap<QString,QPixmap> *OFileSelector::m_pixmaps = 0; namespace { int indexByString( const QComboBox *box, const QString &str ){ int index= -1; for(int i= 0; i < box->count(); i++ ){ qWarning("str T%sT boxT%sT", str.latin1(), box->text(i).latin1() ); if( str == box->text(i ) ){ index= i; break; } } return index; } }; OFileSelector::OFileSelector(QWidget *wid, int mode, int selector, const QString &dirName, const QString &fileName, const QStringList &mimetypes ) : QWidget( wid ) { + + resize(wid->width(),wid->height()); m_selector = selector; m_currentDir = dirName; m_name = fileName; m_mimetypes = mimetypes; if( mimetypes.isEmpty() ) m_autoMime = true; m_mode = mode; m_shTool = true; m_shPerm = true; m_shLne = true; m_shChooser = true; m_shYesNo = true; // for FILESELECTOR only view is interesting m_location = 0; m_homeButton = 0; m_docButton = 0; m_hideButton = 0; m_ok = 0; m_cancel = 0; m_reread = 0; m_up = 0; m_View = 0; m_select = 0; m_stack = 0; m_select = 0; m_stack = 0; m_lay = 0; m_boxToolbar = 0; m_boxOk = 0; m_edit = 0; m_fnLabel = 0; m_checkPerm = 0; m_mimeCheck = 0; m_viewCheck = 0; m_pseudo = 0; m_pseudoLayout = 0; m_dir = true; m_files = true; m_custom = 0; m_showPopup = true; if(m_pixmaps == 0 ) // init the pixmaps initPics(); m_lay = new QVBoxLayout(this); init(); m_edit->setText( fileName ); } void OFileSelector::initPics() { qWarning("init pics" ); m_pixmaps = new QMap<QString,QPixmap>; QPixmap pm = Resource::loadPixmap( "folder" ); QPixmap lnk = Resource::loadPixmap( "symlink" ); QPainter painter( &pm ); painter.drawPixmap( pm.width()-lnk.width(), pm.height()-lnk.height(), lnk ); pm.setMask( pm.createHeuristicMask( FALSE ) ); m_pixmaps->insert("dirsymlink", pm ); QPixmap pm2 = Resource::loadPixmap( "lockedfolder" ); QPainter pen(&pm2 ); pen.drawPixmap(pm2.width()-lnk.width(), pm2.height()-lnk.height(), lnk ); pm2.setMask( pm2.createHeuristicMask( FALSE ) ); m_pixmaps->insert("symlinkedlocked", pm2 ); }; // let's initialize the gui /** -------------------- | cmbBox Button | -------------------- | FileSlector | | or | | OSelector | | | | | ____________________ | LineEdit | ____________________ | Permission Bar | ____________________ | ViewChoose | ____________________ | Save Cancel| ____________________ */ void OFileSelector::delItems() { QLayoutIterator it = m_lay->iterator(); while ( it.current() != 0 ){ it.deleteCurrent(); } } void OFileSelector::init() { m_stack = new QWidgetStack(this, "wstack" ); if( m_selector == NORMAL ){ QString currMime; if( m_mimeCheck != 0 ) currMime = m_mimeCheck->currentText(); updateMimes(); m_select = new FileSelector( currMime == "All" ? QString::null : currMime , m_stack, "fileselector", FALSE, FALSE ); m_stack->addWidget(m_select, NORMAL ); m_lay->addWidget(m_stack ); m_stack->raiseWidget(NORMAL ); connect(m_select, SIGNAL(fileSelected( const DocLnk &) ), this, SLOT(slotFileBridgeSelected(const DocLnk &) ) ); }else { initializeListView(); } if(m_shLne ){ initializeName(); } if(m_shPerm ){ m_checkPerm = new QCheckBox(tr("Set Permission"), this, "Permission" ); m_checkPerm->setChecked( false ); m_lay->addWidget(m_checkPerm ); } if( m_shChooser ) initializeChooser(); if(m_shYesNo ) initializeYes(); }; void OFileSelector::setYesCancelVisible( bool show ) { if ( show == m_shYesNo ) return; m_shYesNo = show; if( !show ){ delete m_ok; delete m_cancel; m_ok = 0; m_cancel = 0; // delete m_boxOk; all ready deleted in delItems } updateLay(); // recreate it and save the other states } void OFileSelector::setToolbarVisible( bool show ) { if ( m_shTool == show ) return; if(!m_shTool ){ delete m_boxToolbar; delete m_homeButton; delete m_docButton; delete m_location; delete m_up; m_boxToolbar = 0; m_homeButton = 0; m_docButton = 0; m_location = 0; m_up = 0; }; updateLay();// overkill fix it } void OFileSelector::setPermissionBarVisible( bool show ) { if( show == m_shPerm ) return; m_shPerm = show; updateLay(); } void OFileSelector::setLineEditVisible( bool show ) { if( show == m_shLne ) return; m_shLne = show; if( !show ){ delete m_edit; delete m_fnLabel; m_edit = 0; m_fnLabel = 0; //delete m_boxName; will be deleted } |