summaryrefslogtreecommitdiff
authorllornkcor <llornkcor>2003-04-15 01:46:54 (UTC)
committer llornkcor <llornkcor>2003-04-15 01:46:54 (UTC)
commitd2f7c238e852eb60fdcfe3e4024823480713e50e (patch) (side-by-side diff)
tree0109f1fc75cd7477581cb2cfac1a349fcb44c6ef
parent79e83da7936995f247f7ad7ad0f768b6e2545cf1 (diff)
downloadopie-d2f7c238e852eb60fdcfe3e4024823480713e50e.zip
opie-d2f7c238e852eb60fdcfe3e4024823480713e50e.tar.gz
opie-d2f7c238e852eb60fdcfe3e4024823480713e50e.tar.bz2
fixed for bug 855, changed currentChanged(...) to clicked(...). also changed UnknownDocument-14 to scaled UnknownDocument
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--libopie/ofileselector.cc15
1 files changed, 11 insertions, 4 deletions
diff --git a/libopie/ofileselector.cc b/libopie/ofileselector.cc
index 7481360..6748bec 100644
--- a/libopie/ofileselector.cc
+++ b/libopie/ofileselector.cc
@@ -1,50 +1,51 @@
+#include <qwmatrix.h>
#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:
@@ -89,97 +90,96 @@ namespace {
}
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 QMap<QString,QStringList>& mimeTypes)
: QWidget( wid, "OFileSelector")
{
m_mimetypes = mimeTypes;
if (mode == SAVE )
m_name = fileName;
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,
bool closeVisible )
: QWidget( parent, name )
{
if (!mimeFilter.isEmpty() ) {
QStringList list = QStringList::split(";", mimeFilter );
m_mimetypes.insert(mimeFilter, list );
}
initVars();
m_currentDir = QPEApplication::documentDir();
m_mode = FILESELECTOR;
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 = currentMimeType();
m_select = new FileSelector( mime ,
m_stack, "fileselector",
m_shNew, m_shClose);
connect(m_select, SIGNAL(fileSelected( const DocLnk & ) ),
this, SLOT( slotFileBridgeSelected(const DocLnk & ) ) );
connect(m_select, SIGNAL(closeMe() ),
this, SIGNAL(closeMe() ) );
//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{
//;
}
}
@@ -651,98 +651,104 @@ void OFileSelector::initVars()
m_files = true;
m_showPopup = false;
if(m_pixmaps == 0 ) // init the pixmaps
initPics();
// pointers
m_location = 0;
m_mimeCheck = 0;
m_viewCheck = 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_checkPerm = 0;
m_pseudo = 0;
m_pseudoLayout = 0;
m_select = 0;
m_stack = 0;
m_lay = 0;
m_Oselector = 0;
m_boxToolbar = 0;
m_boxOk = 0;
m_boxName = 0;
m_boxView = 0;
m_custom = 0;
m_edit = 0;
m_fnLabel = 0;
m_new = 0;
m_close = 0;
}
void OFileSelector::addFile(const QString &/*mime*/, QFileInfo *info, bool symlink)
{
if(!m_files)
return;
// if( !compliesMime(info->absFilePath(), mime ) )
// return;
MimeType type( info->absFilePath() );
if (!compliesMime( type.id() ) )
return;
QPixmap pix = type.pixmap();
QString dir;
QString name;
bool locked;
- if( pix.isNull() )
- pix = Resource::loadPixmap( "UnknownDocument-14");
+ if( pix.isNull() ) {
+ //TODO make this scaled pixmap global, so we dont have to keep doing this
+ QWMatrix matrix;
+ QPixmap pixer(Resource::loadPixmap( "UnknownDocument" ));
+ matrix.scale( .4, .4);
+ pix = pixer.xForm(matrix);
+// pix = Resource::loadPixmap( "UnknownDocument-14");
+ }
dir = info->dirPath( true );
if( symlink )
name = info->fileName() + " -> " +info->dirPath() + "/" + info->readLink();
else {
name = info->fileName();
if( ( m_mode == OPEN && !info->isReadable() )||
( m_mode == SAVE && !info->isWritable() ) ){
locked = true; pix = Resource::loadPixmap("locked");
}
}
new OFileSelectorItem( m_View, pix, name,
info->lastModified().toString(),
QString::number( info->size() ),
dir, locked );
}
void OFileSelector::addDir(const QString &/*mime*/, QFileInfo *info, bool symlink )
{
if(!m_dir)
return;
if( m_selector == EXTENDED_ALL || m_selector == EXTENDED ){
bool locked = false;
QString name;
QPixmap pix;
if( ( m_mode == OPEN && !info->isReadable() ) || ( m_mode == SAVE && !info->isWritable() ) ){
locked = true;
if( symlink )
pix = (*m_pixmaps)["symlinkedlocked"];
else
pix = Resource::loadPixmap("lockedfolder");
}else { // readable
pix = symlink ? (*m_pixmaps)["dirsymlink"] : Resource::loadPixmap("folder") ;
}
name = symlink ? info->fileName() + "->" + info->dirPath(true) + "/" +info->readLink() : info->fileName() ;
new OFileSelectorItem( m_View, pix, name,
info->lastModified().toString(),
QString::number( info->size() ),
info->dirPath( true ), locked,
true );
}// else CUSTOM View
}
void OFileSelector::delItems()
{
}
void OFileSelector::initializeName()
{
@@ -877,97 +883,98 @@ void OFileSelector::initializeListView()
m_close->setFixedSize( 20, 20 );
m_boxToolbar->setFixedHeight( 20 );
m_pseudoLayout->addWidget(m_boxToolbar );
// let;s fill the Location ComboBox
StorageInfo storage;
const QList<FileSystem> &fs = storage.fileSystems();
QListIterator<FileSystem> it ( fs );
for( ; it.current(); ++it ){
const QString disk = (*it)->name();
const QString path = (*it)->path();
m_location->insertItem(path+ "<-"+disk );
}
int count = m_location->count();
m_location->insertItem( m_currentDir );
m_location->setCurrentItem( count );
// due to the New and Close button we can not simply hide m_boxToolBar to not show it
if( !m_shTool ){
m_location->hide( );
m_up->hide( );
m_homeButton->hide( );
m_docButton->hide( );
}
if(!m_shClose )
m_close->hide();
//if(!m_shNew)
//m_close->hide();
} // off toolbar
// the Main ListView
// make a QWidgetStack first so Views can share the Toolbar
m_View = new QListView( m_pseudo, "Extended view");
QPEApplication::setStylusOperation( m_View->viewport(),
QPEApplication::RightOnHold);
m_View->addColumn(" " );
m_View->addColumn(tr("Name"), 135 );
m_View->addColumn(tr("Size"), -1 );
m_View->addColumn(tr("Date"), 60 );
m_View->addColumn(tr("Mime Type"), -1 );
QHeader *header = m_View->header();
header->hide();
m_View->setSorting( 1 );
m_View->setAllColumnsShowFocus( TRUE );
connect(m_View, SIGNAL(selectionChanged() ),
this, SLOT(slotSelectionChanged() ) );
- connect(m_View, SIGNAL(currentChanged(QListViewItem *) ),
+ connect(m_View, SIGNAL(clicked(QListViewItem *) ),
+// connect(m_View, SIGNAL(currentChanged(QListViewItem *) ),
this, SLOT(slotCurrentChanged(QListViewItem * ) ) );
connect(m_View, SIGNAL(mouseButtonClicked(int, QListViewItem*, const QPoint &, int) ),
this, SLOT(slotClicked( int, QListViewItem *, const QPoint &, int) ) );
connect(m_View, SIGNAL(mouseButtonPressed(int, QListViewItem *, const QPoint &, int )),
this, SLOT(slotRightButton(int, QListViewItem *, const QPoint &, int ) ) );
m_pseudoLayout->addWidget( m_View, 288 );
m_stack->addWidget( m_pseudo, EXTENDED );
}
}
void OFileSelector::initializePerm()
{
if( m_checkPerm == 0 ){
m_checkPerm = new QCheckBox(tr("Ser Permission"), this, "perm");
m_checkPerm->setChecked( false );
m_lay->addWidget( m_checkPerm );
}
}
void OFileSelector::initPics()
{
m_pixmaps = new QMap<QString,QPixmap>;
QPixmap pm = Resource::loadPixmap( "folder" );
QPixmap lnk = Resource::loadPixmap( "opie/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 );
}
// if a mime complies with the m_mimeCheck->currentItem
bool OFileSelector::compliesMime( const QString &path, const QString &mime )
{
if( mime == "All" )
return true;
MimeType type( path );
if( type.id() == mime )
return true;
return false;
}
/* check if the mimetype in mime