summaryrefslogtreecommitdiff
authoreilers <eilers>2004-08-29 12:42:03 (UTC)
committer eilers <eilers>2004-08-29 12:42:03 (UTC)
commitdd159675e6e3c361bc20eaa6994265e73b6599ef (patch) (side-by-side diff)
tree70cf91b669307ae39e020ce4257b60b2de9acd42
parent496157cb35b8f90e73770fc43c9a63534baebf33 (diff)
downloadopie-dd159675e6e3c361bc20eaa6994265e73b6599ef.zip
opie-dd159675e6e3c361bc20eaa6994265e73b6599ef.tar.gz
opie-dd159675e6e3c361bc20eaa6994265e73b6599ef.tar.bz2
Minor but important changes in API. Improved SQL performance: contactsbackend now
supports look-ahead caching to speed up access. Fixed and improved look-ahead cache in todo-backend. Datebook backend will follow, soon !
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--libopie2/opiecore/device/odevice.cpp4
-rw-r--r--libopie2/opiedb/osqlresult.cpp8
-rw-r--r--libopie2/opiedb/osqlresult.h4
-rw-r--r--libopie2/opiepim/TODO1
4 files changed, 11 insertions, 6 deletions
diff --git a/libopie2/opiecore/device/odevice.cpp b/libopie2/opiecore/device/odevice.cpp
index 26c6dca..129215b 100644
--- a/libopie2/opiecore/device/odevice.cpp
+++ b/libopie2/opiecore/device/odevice.cpp
@@ -726,60 +726,64 @@ void ODevice::sendSuspendmsg()
/**
* \brief Prepend the QWSServer::KeyboardFilter to the list of installed KeyFilters
*
* Prepend a QWSServer::KeyboardFilter to the List of Keyboard
* Filters. This function is the only way to prepend a KeyFilter.
*
* @param aFilter The KeyFilter to be prepended to the list of filters
*
* @see Opie::Core::OKeyFilter
* @see Opie::Core::OKeyFilter::inst()
*/
void ODevice::addPreHandler(QWSServer::KeyboardFilter*aFilter)
{
Opie::Core::OKeyFilter::inst()->addPreHandler(aFilter);
}
/**
* \brief Remove the QWSServer::KeyboardFilter in the param from the list
*
* Remove the QWSServer::KeyboardFilter \par aFilter from the List
* of Keyfilters. Call this when you delete the KeyFilter!
*
* @param aFilter The filter to be removed from the Opie::Core::OKeyFilter
* @see Opie::Core::ODevice::addPreHandler
*/
void ODevice::remPreHandler(QWSServer::KeyboardFilter*aFilter)
{
Opie::Core::OKeyFilter::inst()->remPreHandler(aFilter);
}
void ODevice::playingStopped() {
const_cast<QObject*>(sender())->disconnect( this );
+#ifndef QT_NO_SOUND
if ( d->m_sound >= 0 ) {
::ioctl ( d->m_sound, MIXER_WRITE( d->m_mixer ), &d->m_vol );
::close ( d->m_sound );
}
+#endif
}
void ODevice::changeMixerForAlarm( int mixer, const char* file, Sound *snd ) {
+#ifndef QT_NO_SOUND
if (( d->m_sound = ::open ( file, O_RDWR )) >= 0 ) {
if ( ::ioctl ( d->m_sound, MIXER_READ( mixer ), &d->m_vol ) >= 0 ) {
Config cfg ( "qpe" );
cfg. setGroup ( "Volume" );
int volalarm = cfg. readNumEntry ( "AlarmPercent", 50 );
if ( volalarm < 0 )
volalarm = 0;
else if ( volalarm > 100 )
volalarm = 100;
volalarm |= ( volalarm << 8 );
if ( ::ioctl ( d->m_sound, MIXER_WRITE( mixer ), &volalarm ) >= 0 )
register_qpe_sound_finished(snd, this, SLOT(playingStopped()));
}
d->m_mixer = mixer;
}
+#endif
}
}
}
diff --git a/libopie2/opiedb/osqlresult.cpp b/libopie2/opiedb/osqlresult.cpp
index bad7d8b..268ac8e 100644
--- a/libopie2/opiedb/osqlresult.cpp
+++ b/libopie2/opiedb/osqlresult.cpp
@@ -1,74 +1,74 @@
#include "osqlresult.h"
using namespace Opie::DB;
OSQLResultItem::OSQLResultItem( const TableString& string,
const TableInt& Int)
: m_string( string ), m_int( Int )
{
}
OSQLResultItem::~OSQLResultItem() {
}
OSQLResultItem::OSQLResultItem( const OSQLResultItem& item) {
*this = item;
}
OSQLResultItem &OSQLResultItem::operator=( const OSQLResultItem& other) {
m_string = other.m_string;
m_int = other.m_int;
return *this;
}
OSQLResultItem::TableString OSQLResultItem::tableString()const{
return m_string;
}
OSQLResultItem::TableInt OSQLResultItem::tableInt()const {
return m_int;
}
-QString OSQLResultItem::data( const QString& columnName, bool *ok ) {
- TableString::Iterator it = m_string.find( columnName );
+QString OSQLResultItem::data( const QString& columnName, bool *ok ) const {
+ TableString::ConstIterator it = m_string.find( columnName );
/* if found */
if ( it != m_string.end() ) {
if ( ok ) *ok = true;
return it.data();
}else{
if ( ok ) *ok = false;
return QString::null;
}
}
-QString OSQLResultItem::data( int column, bool *ok ) {
- TableInt::Iterator it = m_int.find( column );
+QString OSQLResultItem::data( int column, bool *ok ) const {
+ TableInt::ConstIterator it = m_int.find( column );
/* if found */
if ( it != m_int.end() ) {
if ( ok ) *ok = true;
return it.data();
}else{
if ( ok ) *ok = false;
return QString::null;
}
}
/*
* DateFormat is 'YYYY-MM-DD'
*/
QDate OSQLResultItem::dataToDate( const QString& column, bool *ok ) {
QDate date = QDate::currentDate();
QString str = data( column, ok );
if (!str.isEmpty() ) {
;// convert
}
return date;
}
QDate OSQLResultItem::dataToDate( int column, bool *ok ) {
QDate date = QDate::currentDate();
QString str = data( column, ok );
if (!str.isEmpty() ) {
;// convert
}
return date;
}
QDateTime OSQLResultItem::dataToDateTime( const QString& column, bool *ok ) {
QDateTime time = QDateTime::currentDateTime();
diff --git a/libopie2/opiedb/osqlresult.h b/libopie2/opiedb/osqlresult.h
index fc6f01a..92b65a0 100644
--- a/libopie2/opiedb/osqlresult.h
+++ b/libopie2/opiedb/osqlresult.h
@@ -22,70 +22,70 @@ public:
* between the column name and the real item
*/
typedef QMap<QString, QString> TableString;
/**
* TableInt is used to establish a relation between a
* position of a column and the row value
*/
typedef QMap<int, QString> TableInt;
/**
* Default c'tor. It has a TableString and a TableInt
*/
OSQLResultItem(const TableString& = TableString(),
const TableInt& = TableInt() );
OSQLResultItem( const OSQLResultItem& );
~OSQLResultItem();
OSQLResultItem &operator=( const OSQLResultItem& );
/**
* returns the TableString
*/
TableString tableString()const;
/**
* returns the TableInt
*/
TableInt tableInt() const;
/**
* retrieves the Data from columnName
*
*/
- QString data( const QString& columnName, bool *ok = 0);
+ QString data( const QString& columnName, bool *ok = 0) const;
/**
* QString for column number
*/
- QString data(int columnNumber, bool *ok = 0);
+ QString data(int columnNumber, bool *ok = 0) const;
/**
* Date conversion from columnName
*/
QDate dataToDate( const QString& columnName, bool *ok = 0 );
/**
* Date conversion from column-number
*/
QDate dataToDate( int columnNumber, bool *ok = 0 );
QDateTime dataToDateTime( const QString& columName, bool *ok = 0 );
QDateTime dataToDateTime( int columnNumber, bool *ok = 0 );
private:
TableString m_string;
TableInt m_int;
};
/**
* the OSQLResult
* either a SQL statement failed or succeeded
*/
class OSQLResult {
public:
/** The State of a Result */
enum State{ Success = 0, Failure,Undefined };
/**
* default c'tor
* @param state The State of the Result
* @param r ResultItems
* @prarm errors the Errors a OSQLResult created
diff --git a/libopie2/opiepim/TODO b/libopie2/opiepim/TODO
index c3420cf..b520370 100644
--- a/libopie2/opiepim/TODO
+++ b/libopie2/opiepim/TODO
@@ -1,39 +1,40 @@
As to popular request....
1.) fix up the core/backend mess.
The actual Backend Implementation + Interface should be there
The API frontend used by the developer should not be used
Rename ODateBookAccess* to OPimDateBookAccess*
+ Rename OContactAccess* to OpimContactAccess*
Fix filenames to OPim* ...
2.) Move sorting, Query By Example, Exposing of Attributes of a Record
available to the Ptr base class and have sane implementation
on the template level
3.) Have something like QProperty to expose attributes from OPimRecord.
This would include exporting,importing of data, and translated names.
This can be used for Cross Reference, Selector Widget, Generic Table
Shower
4.) Marshall/Demarshall all PIM Records correctly
5.) Add the Private Backend to the OPimRecord ( private ) make the base
access class friend and allow retrieving the backend. Make it virtual
so the template gets the right pointer. So it can only be accessed from
the inside
6.) Add signals for updating/adding/removing records to the access template
Internal connect method
7.) internal QCOP communication between the interfaces
8.) GUI:Better and Improved Recurrence Widget
9.) GUI:Improved Alarm Widget and handling classes
10.) GUI:Undo/Redo template look at KDE
11.) GUI: Generic X-Ref Selector using the factory and pointer interface
12.) GUI: Factory and also registration of foreign services. generate a records of type