summaryrefslogtreecommitdiff
path: root/libopie2
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 /libopie2
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 (limited to 'libopie2') (more/less context) (ignore 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
@@ -710,76 +710,80 @@ void ODevice::virtual_hook(int, void* ){
}
/**
* Sends a QCOP message to channel QPE/System
* with the message "aboutToSuspend()" if this
* is the windowing server
*/
void ODevice::sendSuspendmsg()
{
if ( isQWS() )
return;
QCopEnvelope ( "QPE/System", "aboutToSuspend()" );
}
/**
* \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,90 +1,90 @@
#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();
return time;
}
QDateTime OSQLResultItem::dataToDateTime( int column, bool *ok ) {
QDateTime time = QDateTime::currentDateTime();
return time;
}
OSQLResult::OSQLResult( enum State state,
const OSQLResultItem::ValueList& list,
const OSQLError::ValueList& error )
: m_state( state ), m_list( list ), m_error( error )
{
}
OSQLResult::~OSQLResult() {
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
@@ -6,102 +6,102 @@
#include <qvaluelist.h>
#include "osqlerror.h"
namespace Opie {
namespace DB {
/**
* ResultItem represents one row of the resulting answer
*/
class OSQLResultItem {
public:
typedef QValueList<OSQLResultItem> ValueList;
/**
* TableString is used to establish the relations
* 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
*/
OSQLResult( enum State state = Undefined,
const OSQLResultItem::ValueList& r= OSQLResultItem::ValueList(),
const OSQLError::ValueList& errors = OSQLError::ValueList() );
~OSQLResult();
State state()const;
OSQLError::ValueList errors()const;
OSQLResultItem::ValueList results()const;
void setState( enum State state );
void setErrors( const OSQLError::ValueList& error );
void setResults( const OSQLResultItem::ValueList& result );
OSQLResultItem first();
OSQLResultItem next();
bool atEnd();
diff --git a/libopie2/opiepim/TODO b/libopie2/opiepim/TODO
index c3420cf..b520370 100644
--- a/libopie2/opiepim/TODO
+++ b/libopie2/opiepim/TODO
@@ -1,55 +1,56 @@
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
13.) Multiple Backends for an Access Template
14.) ReadOnly Access
15.) GUI: Generic Table Widget maybe even baed on Selector with
configuration of shown Attribute
16.) Multiple Categories with Sub Categories including popup selector
Widget. Fix Bug with changing visible. Both helper class + gui.
Also group PopupNames Like in Function Menu of XEmacs
17.) ListView for TodolIst At least introduce parents and child
And query for them
18.) Add querieng to Ptr Level for dates and date ranges.