summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/pim/addressbook/TODO7
-rw-r--r--core/pim/addressbook/abtable.cpp76
-rw-r--r--core/pim/addressbook/addressbook.cpp47
-rw-r--r--core/pim/addressbook/addressbook.h3
-rw-r--r--core/pim/addressbook/configdlg.cpp16
-rw-r--r--core/pim/addressbook/configdlg.h4
-rw-r--r--core/pim/addressbook/configdlg_base.ui105
-rw-r--r--core/pim/addressbook/opie-addressbook.control2
-rw-r--r--core/pim/addressbook/picker.cpp12
9 files changed, 227 insertions, 45 deletions
diff --git a/core/pim/addressbook/TODO b/core/pim/addressbook/TODO
index 796dc49..80ec2d9 100644
--- a/core/pim/addressbook/TODO
+++ b/core/pim/addressbook/TODO
@@ -1,19 +1,20 @@
Stuff todo until OPIE 1.0 :
+Pending bugfixes from previous work:
+
Urgent:
- Font menu is invisible using german translation
Important:
+- Overview window cleanup needed..
- Cursor keys should work in detail-view (ablabel)
- "What's this" should be added
- Store last settings of combo-boxes
-- Mail-Icon is missing
-- Overview window cleanup needed..
- Finishing of new View functions (List, Phonebook...)
- The names of the countries are sorted by there english names, only..
Even if they are translated.. :S
- Reload if contacts were changed externally
Less important:
@@ -31,6 +32,8 @@ Fixed:
- Syncing: abtable not reloaded after sync.
- Find widget should be replaced by something like
qpdf has.
- Adding a configuration dialog
- Picker: Activated letter schould be more visible
- Advanced handling of cursor keys (search..)
+- Mail-Icon is missing
+- Use opie-mail insted of qt-mail if possible.
diff --git a/core/pim/addressbook/abtable.cpp b/core/pim/addressbook/abtable.cpp
index 97b26db..4feadeb 100644
--- a/core/pim/addressbook/abtable.cpp
+++ b/core/pim/addressbook/abtable.cpp
@@ -683,47 +683,59 @@ void AbTable::slotDoFind( const QString &findString, bool caseSensitive, bool us
AbTableItem *ati;
QRegExp r( findString );
r.setCaseSensitive( caseSensitive );
r.setWildcard( !useRegExp );
rows = numRows();
static bool wrapAround = true;
+ bool try_again = false;
- if ( !backwards ) {
- for ( row = currFindRow + 1; row < rows; row++ ) {
- ati = static_cast<AbTableItem*>( item(row, 0) );
- if ( contactCompare( contactList[ati], r, category ) )
- break;
+ // We will loop until we found an entry or found nothing.
+ do {
+ if ( !backwards ) {
+ for ( row = currFindRow + 1; row < rows; row++ ) {
+ ati = static_cast<AbTableItem*>( item(row, 0) );
+ if ( contactCompare( contactList[ati], r, category ) ){
+ try_again = false;
+ break;
+ }
+ }
+ } else {
+ for ( row = currFindRow - 1; row > -1; row-- ) {
+ ati = static_cast<AbTableItem*>( item(row, 0) );
+ if ( contactCompare( contactList[ati], r, category ) ){
+ try_again = false;
+ break;
+ }
+ }
}
- } else {
- for ( row = currFindRow - 1; row > -1; row-- ) {
- ati = static_cast<AbTableItem*>( item(row, 0) );
- if ( contactCompare( contactList[ati], r, category ) )
- break;
+ if ( row >= rows || row < 0 ) {
+ if ( row < 0 )
+ currFindRow = rows;
+ else
+ currFindRow = -1;
+
+ if ( wrapAround ){
+ emit signalWrapAround();
+ try_again = true;
+ }else{
+ emit signalNotFound();
+ try_again = false;
+ }
+
+ wrapAround = !wrapAround;
+ } else {
+ currFindRow = row;
+ QTableSelection foundSelection;
+ foundSelection.init( currFindRow, 0 );
+ foundSelection.expandTo( currFindRow, numCols() - 1 );
+ addSelection( foundSelection );
+ setCurrentCell( currFindRow, 0 /* numCols() - 1 */ );
+ wrapAround = true;
+ try_again = false;
}
- }
- if ( row >= rows || row < 0 ) {
- if ( row < 0 )
- currFindRow = rows;
- else
- currFindRow = -1;
-
- if ( wrapAround )
- emit signalWrapAround();
- else
- emit signalNotFound();
-
- wrapAround = !wrapAround;
- } else {
- currFindRow = row;
- QTableSelection foundSelection;
- foundSelection.init( currFindRow, 0 );
- foundSelection.expandTo( currFindRow, numCols() - 1 );
- addSelection( foundSelection );
- setCurrentCell( currFindRow, 0 /* numCols() - 1 */ );
- wrapAround = true;
- }
+ } while ( try_again );
}
static bool contactCompare( const OContact &cnt, const QRegExp &r, int category )
{
bool returnMe;
QArray<int> cats;
diff --git a/core/pim/addressbook/addressbook.cpp b/core/pim/addressbook/addressbook.cpp
index 3466801..39d8321 100644
--- a/core/pim/addressbook/addressbook.cpp
+++ b/core/pim/addressbook/addressbook.cpp
@@ -77,23 +77,29 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
WFlags f )
: QMainWindow( parent, name, f ),
abEditor(0),
useRegExp(false),
doNotifyWrapAround(true),
caseSensitive(false),
+ m_useQtMail(true),
+ m_useOpieMail(false),
bAbEditFirstTime(TRUE),
syncing(FALSE)
{
isLoading = true;
// Read Config settings
Config cfg("AddressBook");
cfg.setGroup("Search");
useRegExp = cfg.readBoolEntry( "useRegExp" );
caseSensitive = cfg.readBoolEntry( "caseSensitive" );
doNotifyWrapAround = cfg.readBoolEntry( "doNotifyWrapAround" );
+ cfg.setGroup("Mail");
+ m_useQtMail = cfg.readBoolEntry( "useQtMail" );
+ m_useOpieMail=cfg.readBoolEntry( "useOpieMail" );
+
initFields();
setCaption( tr("Contacts") );
setIcon( Resource::loadPixmap( "AddressBook" ) );
@@ -166,13 +172,13 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
a->addTo( searchBar );
a = new QAction( tr( "Close Find" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
connect( a, SIGNAL( activated() ), this, SLOT( slotFindClose() ) );
a->addTo( searchBar );
- a = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "qtmail/reply" ),
+ a = new QAction( tr( "Write Mail To" ), Resource::loadPixmap( "mail/sendmail" ),
QString::null, 0, this, 0 );
//a->setEnabled( FALSE ); we got support for it now :) zecke
actionMail = a;
connect( a, SIGNAL( activated() ), this, SLOT( writeMail() ) );
a->addTo( edit );
a->addTo( listTools );
@@ -279,18 +285,22 @@ AddressbookWindow::AddressbookWindow( QWidget *parent, const char *name,
void AddressbookWindow::slotConfig()
{
ConfigDlg* dlg = new ConfigDlg( this, "Config" );
dlg -> setUseRegExp ( useRegExp );
dlg -> setBeCaseSensitive( caseSensitive );
dlg -> setSignalWrapAround( doNotifyWrapAround );
+ dlg -> setQtMail ( m_useQtMail );
+ dlg -> setOpieMail ( m_useOpieMail );
dlg -> showMaximized();
if ( dlg -> exec() ) {
qWarning ("Config Dialog accepted !");
useRegExp = dlg -> useRegExp();
caseSensitive = dlg -> beCaseSensitive();
doNotifyWrapAround = dlg -> signalWrapAround();
+ m_useQtMail = dlg -> useQtMail();
+ m_useOpieMail= dlg -> useOpieMail();
}
delete dlg;
}
@@ -377,12 +387,15 @@ AddressbookWindow::~AddressbookWindow()
cfg.writeEntry("fontSize", startFontSize);
cfg.setGroup("Search");
cfg.writeEntry("useRegExp", useRegExp);
cfg.writeEntry("caseSensitive", caseSensitive);
cfg.writeEntry("doNotifyWrapAround", doNotifyWrapAround);
+ cfg.setGroup("Mail");
+ cfg.writeEntry( "useQtMail", m_useQtMail );
+ cfg.writeEntry( "useOpieMail", m_useOpieMail);
}
void AddressbookWindow::slotUpdateToolbar()
{
OContact ce = abList->currentEntry();
actionMail->setEnabled( !ce.defaultEmail().isEmpty() );
@@ -491,14 +504,42 @@ void AddressbookWindow::slotViewEdit()
void AddressbookWindow::writeMail()
{
OContact c = abList->currentEntry();
QString name = c.fileAs();
QString email = c.defaultEmail();
- QCopEnvelope e("QPE/Application/qtmail", "writeMail(QString,QString)");
- e << name << email;
+
+ // I prefer the OPIE-Environment variable before the
+ // QPE-one..
+ QString basepath = QString::fromLatin1( getenv("OPIEDIR") );
+ if ( basepath.isEmpty() )
+ basepath = QString::fromLatin1( getenv("QPEDIR") );
+
+ // Try to access the preferred. If not possible, try to
+ // switch to the other one..
+ if ( m_useQtMail ){
+ qWarning ("Accessing: %s", (basepath + "/bin/qtmail").latin1());
+ if ( QFile::exists( basepath + "/bin/qtmail" ) ){
+ qWarning ("QCop");
+ QCopEnvelope e("QPE/Application/qtmail", "writeMail(QString,QString)");
+ e << name << email;
+ return;
+ } else
+ m_useOpieMail = true;
+ }
+ if ( m_useOpieMail ){
+ qWarning ("Accessing: %s", (basepath + "/bin/mail").latin1());
+ if ( QFile::exists( basepath + "/bin/mail" ) ){
+ qWarning ("QCop");
+ QCopEnvelope e("QPE/Application/mail", "writeMail(QString,QString)");
+ e << name << email;
+ return;
+ } else
+ m_useQtMail = true;
+ }
+
}
static const char * beamfile = "/tmp/obex/contact.vcf";
void AddressbookWindow::slotBeam()
{
diff --git a/core/pim/addressbook/addressbook.h b/core/pim/addressbook/addressbook.h
index 299ed70..8027ccf 100644
--- a/core/pim/addressbook/addressbook.h
+++ b/core/pim/addressbook/addressbook.h
@@ -115,12 +115,15 @@ private:
OFloatBar* searchBar;
QLineEdit* searchEdit;
bool useRegExp;
bool doNotifyWrapAround;
bool caseSensitive;
+ bool m_useQtMail;
+ bool m_useOpieMail;
+
QAction *actionNew, *actionEdit, *actionTrash, *actionFind, *actionBeam, *actionPersonal, *actionMail;
bool bAbEditFirstTime;
int viewMargin;
bool syncing;
diff --git a/core/pim/addressbook/configdlg.cpp b/core/pim/addressbook/configdlg.cpp
index b7c3b77..c0195d1 100644
--- a/core/pim/addressbook/configdlg.cpp
+++ b/core/pim/addressbook/configdlg.cpp
@@ -12,12 +12,20 @@ bool ConfigDlg::useRegExp() const
return m_useRegExp->isOn();
}
bool ConfigDlg::useWildCards() const
{
return m_useWildCard->isOn();
}
+bool ConfigDlg::useQtMail() const
+{
+ return m_useQtMail->isOn();
+}
+bool ConfigDlg::useOpieMail() const
+{
+ return m_useOpieMail->isOn();
+}
bool ConfigDlg::beCaseSensitive() const
{
return m_useCaseSensitive->isChecked();
}
bool ConfigDlg::signalWrapAround() const
{
@@ -36,10 +44,18 @@ void ConfigDlg::setBeCaseSensitive( bool v )
m_useCaseSensitive->setChecked( v );
}
void ConfigDlg::setSignalWrapAround( bool v )
{
m_signalWrapAround->setChecked( v );
}
+void ConfigDlg::setQtMail( bool v )
+{
+ m_useQtMail->setChecked( v );
+}
+void ConfigDlg::setOpieMail( bool v )
+{
+ m_useOpieMail->setChecked( v );
+}
diff --git a/core/pim/addressbook/configdlg.h b/core/pim/addressbook/configdlg.h
index 8be469b..34e9718 100644
--- a/core/pim/addressbook/configdlg.h
+++ b/core/pim/addressbook/configdlg.h
@@ -11,15 +11,19 @@ public:
// Search Settings
bool useRegExp() const;
bool useWildCards() const;
bool beCaseSensitive() const;
bool signalWrapAround() const;
+ bool useQtMail() const;
+ bool useOpieMail() const;
void setUseRegExp( bool v );
void setUseWildCards( bool v );
void setBeCaseSensitive( bool v );
void setSignalWrapAround( bool v );
+ void setQtMail( bool v );
+ void setOpieMail( bool v );
};
#endif
diff --git a/core/pim/addressbook/configdlg_base.ui b/core/pim/addressbook/configdlg_base.ui
index e082702..d3ea12e 100644
--- a/core/pim/addressbook/configdlg_base.ui
+++ b/core/pim/addressbook/configdlg_base.ui
@@ -9,13 +9,13 @@
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>227</width>
+ <width>217</width>
<height>287</height>
</rect>
</property>
<property stdset="1">
<name>caption</name>
<string>MyDialog1</string>
@@ -150,12 +150,115 @@
<height>20</height>
</size>
</property>
</spacer>
</vbox>
</widget>
+ <widget>
+ <class>QWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>tab</cstring>
+ </property>
+ <attribute>
+ <name>title</name>
+ <string>Mail</string>
+ </attribute>
+ <vbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>5</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QButtonGroup</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>ButtonGroup2</cstring>
+ </property>
+ <property stdset="1">
+ <name>title</name>
+ <string>Mail</string>
+ </property>
+ <vbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>11</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QRadioButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>m_useQtMail</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Prefer QT-Mail </string>
+ </property>
+ <property stdset="1">
+ <name>checked</name>
+ <bool>true</bool>
+ </property>
+ </widget>
+ <widget>
+ <class>QRadioButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>m_useOpieMail</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Prefer Opie-Mail</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Notice: QT-Mail is just
+provided in the SHARP
+default ROM. Opie-Mail
+is provided free !</string>
+ </property>
+ </widget>
+ </vbox>
+ </widget>
+ <spacer>
+ <property>
+ <name>name</name>
+ <cstring>Spacer2</cstring>
+ </property>
+ <property stdset="1">
+ <name>orientation</name>
+ <enum>Vertical</enum>
+ </property>
+ <property stdset="1">
+ <name>sizeType</name>
+ <enum>Expanding</enum>
+ </property>
+ <property>
+ <name>sizeHint</name>
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
+ </vbox>
+ </widget>
</widget>
<widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout1</cstring>
diff --git a/core/pim/addressbook/opie-addressbook.control b/core/pim/addressbook/opie-addressbook.control
index 14b0770..0a04ee6 100644
--- a/core/pim/addressbook/opie-addressbook.control
+++ b/core/pim/addressbook/opie-addressbook.control
@@ -1,9 +1,9 @@
Files: bin/addressbook apps/1Pim/addressbook.desktop
Priority: optional
Section: opie/applications
-Maintainer: Warwick Allison <warwick@trolltech.com>
+Maintainer: Stefan Eilers <eilers.stefan@epost.de>
Architecture: arm
Version: $QPE_VERSION-$SUB_VERSION
Depends: opie-base ($QPE_VERSION) libopie
Description: Contacts
A simple addressbook for the Opie environment.
diff --git a/core/pim/addressbook/picker.cpp b/core/pim/addressbook/picker.cpp
index 7f4acb0..2c7dd71 100644
--- a/core/pim/addressbook/picker.cpp
+++ b/core/pim/addressbook/picker.cpp
@@ -90,15 +90,15 @@ void PickerLabel::mouseReleaseEvent( QMouseEvent* /* e */ )
if (lastLetter != letter1 && lastLetter != letter2 && lastLetter != letter3 && lastLetter != '\0')
QTimer::singleShot( 0, this, SLOT(emitClearSignal()) );
switch (currentLetter) {
case 0:
- tmpStr = "<qt><u><font color=\"#7F0000\">";
+ tmpStr = "<qt><u><b><font color=\"#FF00FF\">";
tmpStr += letter1;
- tmpStr += "</font></u>";
+ tmpStr += "</font></b></u>";
tmpStr += letter2;
tmpStr += letter3;
tmpStr += "</qt>";
setText(tmpStr);
@@ -107,15 +107,15 @@ void PickerLabel::mouseReleaseEvent( QMouseEvent* /* e */ )
emit selectedLetter( letter1 );
break;
case 1:
tmpStr = "<qt>";
tmpStr += letter1;
- tmpStr += "<u><font color=\"#7F0000\">";
+ tmpStr += "<u><b><font color=\"#FF00FF\">";
tmpStr += letter2;
- tmpStr += "</font></u>";
+ tmpStr += "</font></b></u>";
tmpStr += letter3;
tmpStr += "</qt>";
setText(tmpStr);
currentLetter++;
@@ -124,15 +124,15 @@ void PickerLabel::mouseReleaseEvent( QMouseEvent* /* e */ )
break;
case 2:
tmpStr = "<qt>";
tmpStr += letter1;
tmpStr += letter2;
- tmpStr += "<u><font color=\"#7F0000\">";
+ tmpStr += "<u><b><font color=\"#FF00FF\">";
tmpStr += letter3;
- tmpStr += "</font></u></qt>";
+ tmpStr += "</font></b></u></qt>";
setText(tmpStr);
currentLetter++;
lastLetter = letter3;
emit selectedLetter( letter3 );