summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie/ofileselector.cc1
1 files changed, 1 insertions, 0 deletions
diff --git a/libopie/ofileselector.cc b/libopie/ofileselector.cc
index d780da9..8299b3d 100644
--- a/libopie/ofileselector.cc
+++ b/libopie/ofileselector.cc
@@ -1,395 +1,396 @@
#include <qcheckbox.h>
#include <qcombobox.h>
#include <qheader.h>
#include <qlabel.h>
#include <qabstractlayout.h>
#include <qlayout.h>
#include <qlineedit.h>
#include <qlistview.h>
#include <qmessagebox.h>
+#include <qpainter.h>
#include <qpushbutton.h>
#include <qwidgetstack.h>
#include <qpopupmenu.h>
#include <qdir.h>
#include <qfile.h>
#include <qfileinfo.h>
#include <qtimer.h>
#include <qpe/qpeapplication.h>
#include <qpe/applnk.h>
#include <qpe/fileselector.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= 0;
for(int i= 0; i < box->count(); i++ ){
if( str == box->text(i ) ){
index= i;
break;
}
}
return index;
}
class OFileSelectorItem : public QListViewItem {
public:
OFileSelectorItem(QListView *view, const QPixmap &pixmap, const QString &path,
const QString &date, const QString &size, const QString &mDir,
bool isLocked=false, bool isDir=false ): QListViewItem(view) {
setPixmap(0, pixmap );
setText(1, path );
setText(2, size );
setText(3, date );
//setText(4, mDir );
m_dir = mDir;
dir = isDir;
mLocked = isLocked;
}
bool isLocked() const{
return mLocked;
}
QString directory()const{
return m_dir;
}
bool isDir()const{
return dir;
}
QString path()const{
return text(1 );
}
QString key(int id, bool )const {
QString ke;
if( id == 0 || id == 1 ){ // name
if( dir ){
ke.append("0" );
ke.append( text(1) );
}else{
ke.append("1" );
ke.append( text(1) );
}
}else if( id == 2 ){ // size
return text(2);
}else if( id == 3 ){ // date
return text(3);
}
return ke;
};
private:
bool mLocked:1;
bool dir:1;
QString m_dir;
};
};
OFileSelector::OFileSelector( QWidget *wid, int mode, int selector,
const QString &dirName,
const QString &fileName,
const QStringList &mimeTypes )
: QWidget( wid, "OFileSelector")
{
m_mimetypes = mimeTypes;
initVars();
m_mode = mode;
m_selector = selector;
m_currentDir = dirName;
init();
QTimer::singleShot(6*1000, this, SLOT( slotTest() ) );
}
OFileSelector::OFileSelector(const QString &mimeFilter, QWidget *parent,
const char *name, bool newVisible = TRUE,
bool closeVisible = FALSE )
: QWidget( parent, name )
{
m_mimetypes = QStringList::split(";", mimeFilter );
initVars();
m_currentDir = QPEApplication::documentDir();
m_mode = OPEN;
m_selector = NORMAL;
m_shClose = closeVisible;
m_shNew = newVisible;
m_shLne = false;
m_shPerm = false;
m_shYesNo = false;
init();
}
OFileSelector::~OFileSelector()
{
}
void OFileSelector::setNewVisible( bool visible )
{
m_shNew = visible;
if( m_selector == NORMAL ){
delete m_select;
// we need to initialize but keep the selected mimetype
QString mime = m_mimeCheck == 0 ? QString::null : m_mimeCheck->currentText() ;
m_select = new FileSelector( m_autoMime ? mime : m_mimetypes.join(";") ,
m_stack, "fileselector",
m_shNew, m_shClose);
connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ),
this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) );
//connect to close me and other signals as well
m_stack->addWidget( m_select, NORMAL );
}else{
m_new->show();
}
}
void OFileSelector::setCloseVisible( bool visible )
{
m_shClose = visible;
if( m_selector == NORMAL ){
setNewVisible( m_shNew ); // yeah baby
}else{
m_close->show();
}
}
void OFileSelector::reread()
{
if( m_selector == NORMAL ){
setNewVisible( m_shNew ); // make it a initializeSelector
}else if ( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){
reparse();
//}else{
//;
}
}
const DocLnk *OFileSelector::selected()
{
if( m_selector == NORMAL ){
return m_select->selected();
}else{
DocLnk *lnk = new DocLnk(selectedDocument() );
return lnk;
}
}
void OFileSelector::setYesCancelVisible( bool show )
{
initializeYes(); // FIXME if YesCancel is not shown we will initialize it to hide it :(
m_shYesNo = show;
if( m_shYesNo )
m_boxOk->show();
else
m_boxOk->hide();
}
void OFileSelector::setToolbarVisible( bool show )
{
m_shTool = show;
initializeListView(); // FIXME see above waste of memory
if(!m_shTool ){
m_location->hide();
m_up->hide();
m_homeButton->hide();
m_docButton->hide();
}else{
m_location->show();
m_up->show();
m_homeButton->show();
m_docButton->show();
}
}
void OFileSelector::setPermissionBarVisible( bool show )
{
m_shPerm = show;
initializePerm();
if( m_shPerm )
m_checkPerm->show();
else
m_checkPerm->hide();
}
void OFileSelector::setLineEditVisible( bool show )
{
if( show ){
initializeName();
m_boxName->show();
}else{
if( m_shLne && m_boxName != 0 ){ // check if we showed before this is the way to go
m_boxName->hide();
}
}
m_shLne = show;
}
void OFileSelector::setChooserVisible( bool show )
{
m_shChooser = show;
initializeChooser();
if( m_shChooser ){
m_boxView->hide();
}else{
m_boxView->show();
}
}
QCheckBox* OFileSelector::permissionCheckbox()
{
if( m_selector == NORMAL )
return 0l;
else
return m_checkPerm;
}
bool OFileSelector::setPermission()const
{
return m_checkPerm == 0 ? false : m_checkPerm->isChecked();
}
void OFileSelector::setPermissionChecked( bool check )
{
if( m_checkPerm )
m_checkPerm->setChecked( check );
}
void OFileSelector::setMode(int mode) // FIXME do direct raising
{
m_mode = mode;
if( m_selector == NORMAL )
return;
}
void OFileSelector::setShowDirs(bool )
{
m_dir = true;
reparse();
}
void OFileSelector::setCaseSensetive(bool caSe )
{
m_case = caSe;
reparse();
}
void OFileSelector::setShowFiles(bool show )
{
m_files = show;
reparse();
}
///
bool OFileSelector::cd(const QString &path )
{
m_currentDir = path;
reparse();
return true;
}
void OFileSelector::setSelector(int mode )
{
QString text;
switch( mode ){
case NORMAL:
text = tr("Documents");
break;
case EXTENDED:
text = tr("Files");
break;
case EXTENDED_ALL:
text = tr("All Files");
break;
}
slotViewCheck( text );
}
void OFileSelector::setPopupMenu(QPopupMenu *popup )
{
m_custom = popup;
m_showPopup = true;
}
//void OFileSelector::updateL
QString OFileSelector::selectedName() const
{
QString name;
if( m_selector == NORMAL ){
const DocLnk *lnk = m_select->selected();
name = lnk->file();
delete lnk;
}else if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){
QListViewItem *item = m_View->currentItem();
if( item != 0 )
name = m_currentDir + "/" + item->text( 1 );
}else { // installed view
;
}
return name;
}
QStringList OFileSelector::selectedNames()const
{
QStringList list;
if( m_selector == NORMAL ){
list << selectedName();
}else if ( m_selector == EXTENDED || m_selector == EXTENDED_ALL ) {
list << selectedName(); // FIXME implement multiple Selections
}
return list;
}
/** If mode is set to the Dir selection this will return the selected path.
*
*
*/
QString OFileSelector::selectedPath()const
{
QString path;
if( m_selector == NORMAL ){
path = QPEApplication::documentDir();
}else if( m_selector == EXTENDED || m_selector == EXTENDED_ALL ){
;
}
return path;
}
QStringList OFileSelector::selectedPaths() const
{
QStringList list;
list << selectedPath();
return list;
}
QString OFileSelector::directory()const
{
if( m_selector == NORMAL )
return QPEApplication::documentDir();
return QDir(m_currentDir).absPath();
}
int OFileSelector::fileCount()
{
int count;
switch( m_selector ){
case NORMAL:
count = m_select->fileCount();
break;
//case CUSTOM:
case EXTENDED:
case EXTENDED_ALL:
default:
count = m_View->childCount();
break;
}
return count;
}
DocLnk OFileSelector::selectedDocument() const
{
DocLnk lnk;
switch( m_selector ){
case NORMAL:{
const DocLnk *lnk2 = m_select->selected();
lnk = DocLnk(*lnk2 ); // copy
delete lnk2;
break;
}