summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/launcher.cpp31
-rw-r--r--core/launcher/launcher.h2
-rw-r--r--core/launcher/mediummountgui.cpp4
3 files changed, 32 insertions, 5 deletions
diff --git a/core/launcher/launcher.cpp b/core/launcher/launcher.cpp
index b26bd8b..dcc3ba1 100644
--- a/core/launcher/launcher.cpp
+++ b/core/launcher/launcher.cpp
@@ -52,48 +52,52 @@
#include <qpainter.h>
#include <qlabel.h>
#include <qtextstream.h>
#include "launcherview.h"
#include "launcher.h"
#include "syncdialog.h"
#include "desktop.h"
#include <qpe/lnkproperties.h>
#include "mrulist.h"
#include "qrsync.h"
#include <stdlib.h>
#include <unistd.h>
#if defined(_OS_LINUX_) || defined(Q_OS_LINUX)
#include <stdio.h>
#include <sys/vfs.h>
#include <mntent.h>
#endif
#include <qpe/storage.h>
#include "mediummountgui.h"
//#define SHOW_ALL
+// uidGen
+
+// uidGen
+
CategoryTabWidget::CategoryTabWidget( QWidget* parent ) :
QVBox( parent )
{
categoryBar = 0;
stack = 0;
}
void CategoryTabWidget::prevTab()
{
if ( categoryBar ) {
int n = categoryBar->count();
int tab = categoryBar->currentTab();
if ( tab >= 0 )
categoryBar->setCurrentTab( (tab - 1 + n)%n );
}
}
void CategoryTabWidget::nextTab()
{
if ( categoryBar ) {
int n = categoryBar->count();
int tab = categoryBar->currentTab();
categoryBar->setCurrentTab( (tab + 1)%n );
}
@@ -401,49 +405,51 @@ void CategoryTabBar::paintLabel( QPainter* p, const QRect&,
p->setPen( colorGroup().foreground() );
#endif
p->drawText( tr, AlignCenter | AlignVCenter | ShowPrefix, t->text() );
} else {
p->setPen( palette().disabled().foreground() );
p->drawText( tr, AlignCenter | AlignVCenter | ShowPrefix, t->text() );
}
}
//---------------------------------------------------------------------------
Launcher::Launcher( QWidget* parent, const char* name, WFlags fl )
: QMainWindow( parent, name, fl )
{
setCaption( tr("Launcher") );
syncDialog = 0;
// we have a pretty good idea how big we'll be
setGeometry( 0, 0, qApp->desktop()->width(), qApp->desktop()->height() );
tabs = 0;
rootFolder = 0;
docsFolder = 0;
- m_timeStamp = QDateTime::currentDateTime().toString();
+ int stamp = uidgen.generate();
+ uidgen.store( stamp );
+ m_timeStamp = QString::number( stamp );
tabs = new CategoryTabWidget( this );
tabs->setMaximumWidth( qApp->desktop()->width() );
setCentralWidget( tabs );
connect( tabs, SIGNAL(selected(const QString&)),
this, SLOT(viewSelected(const QString&)) );
connect( tabs, SIGNAL(clicked(const AppLnk*)),
this, SLOT(select(const AppLnk*)));
connect( tabs, SIGNAL(rightPressed(AppLnk*)),
this, SLOT(properties(AppLnk*)));
#if defined(Q_WS_QWS) && !defined(QT_NO_COP)
QCopChannel* sysChannel = new QCopChannel( "QPE/System", this );
connect( sysChannel, SIGNAL(received(const QCString &, const QByteArray &)),
this, SLOT(systemMessage( const QCString &, const QByteArray &)) );
#endif
storage = new StorageInfo( this );
connect( storage, SIGNAL( disksChanged() ), SLOT( storageChanged() ) );
updateTabs();
preloadApps();
@@ -479,80 +485,99 @@ void Launcher::doMaximize()
{
QMainWindow::showMaximized();
}
void Launcher::updateMimeTypes()
{
MimeType::clear();
updateMimeTypes(rootFolder);
}
void Launcher::updateMimeTypes(AppLnkSet* folder)
{
for ( QListIterator<AppLnk> it( folder->children() ); it.current(); ++it ) {
AppLnk *app = it.current();
if ( app->type() == "Folder" )
updateMimeTypes((AppLnkSet *)app);
else {
MimeType::registerApp(*app);
}
}
}
void Launcher::loadDocs() // ok here comes a hack belonging to Global::
{
+ qWarning("loading Documents" );
+ qWarning("The currentTimeStamp is: %s", m_timeStamp.latin1() );
delete docsFolder;
docsFolder = new DocLnkSet;
+ qWarning("new DocLnkSet" );
// find out wich filesystems are new in this round
// We will do this by having a timestamp inside each mountpoint
// if the current timestamp doesn't match this is a new file system and
// come up with our MediumMountGui :) let the hacking begin
- QString newStamp = QDateTime::currentDateTime().toString();
+ int stamp = uidgen.generate();
+
+ QString newStamp = QString::number( stamp );
+ qWarning("new time stamp is: %s", newStamp.latin1() );
StorageInfo storage;
const QList<FileSystem> &fileSystems = storage.fileSystems();
+ qWarning("QList<FileSystem>" );
QListIterator<FileSystem> it ( fileSystems );
+ qWarning("iterator initiliazed" );
for ( ; it.current(); ++it ) {
+ qWarning("inside for loop" );
+ qWarning("checking device %s", (*it)->path().latin1() );
if ( (*it)->isRemovable() ) { // let's find out if we should search on it
+ qWarning("%s is removeable", (*it)->path().latin1() );
OConfig cfg( (*it)->path() + "/.opiestorage.cf");
cfg.setGroup("main");
QString stamp = cfg.readEntry("timestamp", QDateTime::currentDateTime().toString() );
if( stamp == m_timeStamp ){ // ok we know this card
+ qWarning("time stamp match" );
cfg.writeEntry("timestamp", newStamp );
// we need to scan the list now. Hopefully the cache will be there
}else{ // come up with the gui
- MediumMountGui medium((*it)->path() + "/.opiestorage.cf" );
+ qWarning("time stamp doesn't match" );
+ MediumMountGui medium((*it)->path() );
+ qWarning("medium mount gui created" );
if( medium.check() ){
+ qWarning("need to check this device" );
if( medium.exec() ){ //ok
// speicher
+ qWarning("execed" );
cfg.writeEntry("timestamp", newStamp );
}
}else{
+ qWarning("wrong :(" );
// do something different see what we need to do
}
}
}
}
+ qWarning("findDocuments" );
Global::findDocuments(docsFolder); // get rid of this call later
+ qWarning("done" );
m_timeStamp = newStamp;
}
void Launcher::updateTabs()
{
MimeType::updateApplications(); // ### reads all applnks twice
delete rootFolder;
rootFolder = new AppLnkSet( MimeType::appsFolderName() );
loadDocs();
tabs->initializeCategories(rootFolder, docsFolder, storage->fileSystems());
}
void Launcher::updateDocs()
{
loadDocs();
tabs->updateDocs(docsFolder,storage->fileSystems());
}
void Launcher::viewSelected(const QString& s)
{
setCaption( s + tr(" - Launcher") );
diff --git a/core/launcher/launcher.h b/core/launcher/launcher.h
index 197bd19..d2efa58 100644
--- a/core/launcher/launcher.h
+++ b/core/launcher/launcher.h
@@ -4,48 +4,49 @@
** This file is part of Qtopia Environment.
**
** This file may be distributed and/or modified under the terms of the
** GNU General Public License version 2 as published by the Free Software
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file.
**
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
** See http://www.trolltech.com/gpl/ for GPL licensing information.
**
** Contact info@trolltech.com if any conditions of this licensing are
** not clear to you.
**
**********************************************************************/
#ifndef LAUNCHER_H
#define LAUNCHER_H
#include <qmainwindow.h>
#include <qtabbar.h>
#include <qstringlist.h>
#include <qvbox.h>
#include <qlist.h>
+#include <qpe/palmtopuidgen.h>
#include "launcherview.h"
class AppLnk;
class AppLnkSet;
class DocLnkSet;
class QWidgetStack;
class StorageInfo;
class SyncDialog;
class CategoryTabBar : public QTabBar
{
Q_OBJECT
public:
CategoryTabBar( QWidget *parent=0, const char *name=0 );
~CategoryTabBar();
protected slots:
virtual void layoutTabs();
protected:
void paint ( QPainter *p, QTab *t, bool f ) const;
void paintLabel( QPainter* p, const QRect& br, QTab* t, bool has_focus ) const;
};
@@ -111,28 +112,29 @@ private slots:
void doMaximize();
void systemMessage( const QCString &, const QByteArray &);
void storageChanged();
void cancelSync();
private:
void updateApps();
void loadDocs();
void updateDocs();
void updateTabs();
void updateMimeTypes();
void updateMimeTypes(AppLnkSet*);
void preloadApps();
AppLnkSet *rootFolder;
DocLnkSet *docsFolder;
CategoryTabWidget *tabs;
StorageInfo *storage;
SyncDialog *syncDialog;
void updateLink(const QString& link);
bool in_lnk_props;
bool got_lnk_change;
QString lnk_change;
QString m_timeStamp;
+ Qtopia::UidGen uidgen;
};
#endif // LAUNCHERVIEW_H
diff --git a/core/launcher/mediummountgui.cpp b/core/launcher/mediummountgui.cpp
index f193024..6ad97e1 100644
--- a/core/launcher/mediummountgui.cpp
+++ b/core/launcher/mediummountgui.cpp
@@ -1,66 +1,66 @@
#include "mediummountgui.h"
#include <qvariant.h>
#include <qcheckbox.h>
#include <qgroupbox.h>
#include <qlabel.h>
#include <qlineedit.h>
#include <qpushbutton.h>
#include <qlayout.h>
#include <qtooltip.h>
#include <qwhatsthis.h>
#include <qimage.h>
#include <qpixmap.h>
#include <qpe/resource.h>
#include <opie/oconfig.h>
#include <qapplication.h>
MediumMountGui::MediumMountGui( const QString &path ,QWidget* parent, const char* name, bool modal, WFlags fl )
- : QDialog( parent, name, modal, fl ) {
+ : QDialog( parent, name, true ) {
QWidget *d = QApplication::desktop();
int w=d->width();
int h=d->height();
resize( w , h );
setCaption( tr( "Medium inserted" ) );
mediumPath = path;
readConfig();
startGui();
}
void MediumMountGui::readConfig(){
OConfig cfg (mediumPath +"/.opiestorage.cf");
cfg.setGroup("main");
- checkagain = cfg.readBoolEntry("check", false);
+ checkagain = cfg.readBoolEntry("check", true);
cfg.setGroup("mimetypes");
checkmimeaudio = cfg.readBoolEntry("audio", true);
checkmimeimage = cfg.readBoolEntry("image", true);
checkmimetext = cfg.readBoolEntry("text", true);
checkmimevideo = cfg.readBoolEntry("video", true);
checkmimeall = cfg.readBoolEntry("all", true);
cfg.setGroup("dirs");
limittodirs = cfg.readEntry("dirs", "");
}
bool MediumMountGui::check() {
return checkagain;
}
QStringList MediumMountGui::dirs() {
QStringList list = QStringList::split(",", limittodirs );
return list;
}
void MediumMountGui::writeConfig(bool autocheck) {
OConfig cfg (mediumPath +"/.opiestorage.cf");