summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--bin/kdepim/WhatsNew.txt6
-rw-r--r--desktop/rpm/kdepim_rpm2
-rw-r--r--kabc/addresseedialog.cpp38
-rw-r--r--korganizer/koeventviewerdialog.cpp6
-rw-r--r--korganizer/kolistview.cpp2
-rw-r--r--korganizer/searchdialog.cpp9
-rw-r--r--korganizer/searchdialog.h4
-rw-r--r--microkde/kdialogbase.cpp6
-rw-r--r--version2
9 files changed, 57 insertions, 18 deletions
diff --git a/bin/kdepim/WhatsNew.txt b/bin/kdepim/WhatsNew.txt
index 86ac9b5..dc22fc6 100644
--- a/bin/kdepim/WhatsNew.txt
+++ b/bin/kdepim/WhatsNew.txt
@@ -1,14 +1,20 @@
Info about the changes in new versions of KDE-Pim/Pi
+********** VERSION 2.0.13 ************
+
+Fixed a problem in the addressee select dialog and made it more user friendly by adding a minimize splitter.
+
+In the search dialog you can switch now the focus from search line edit to the list view by pressing key "arrow down".
+
********** VERSION 2.0.12 ************
KO/Pi:
Fixed a bug in todo start/due date handling for non recurring todos with a start and due date.
Fixed some layout problems in the KO/Pi agenda view when there were many conflicting itmes.
Fixed several problems of the keyboard focus in the desktop versions when opening the search dialog/event viewer.
Fixed problem in pi-sync mode when wrong password was sent.
OM/Pi:
Fixed a crash when displaying mails with "Show mail as html" was checked in the config.
Added a check before displaying the mail if the mail is in html format, if "Show mail as html" is enabled.
diff --git a/desktop/rpm/kdepim_rpm b/desktop/rpm/kdepim_rpm
index 0d4c9d6..ff9f2dc 100644
--- a/desktop/rpm/kdepim_rpm
+++ b/desktop/rpm/kdepim_rpm
@@ -1,15 +1,15 @@
Summary: A collection of PIM programs
Name: KDE-Pim-Pi
-Version: 2.0.12
+Version: 2.0.13
Release: SuSE_9.2
Copyright:GPL
Group: Productivity/Pim
Source:http://sourceforge.net/projects/kdepimpi/
URL:http://sourceforge.net/projects/kdepimpi/
Packager: zautrix
%description
This package contains the platform-independent PIM programs from
www.pi-sync.net, compiled for SuSE 9.2:
KTimeTacker/Pi
KPhone/Pi
diff --git a/kabc/addresseedialog.cpp b/kabc/addresseedialog.cpp
index 34f4160..b3429e3 100644
--- a/kabc/addresseedialog.cpp
+++ b/kabc/addresseedialog.cpp
@@ -14,32 +14,35 @@
You should have received a copy of the GNU Library General Public License
along with this library; see the file COPYING.LIB. If not, write to
the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA.
*/
#include <qlayout.h>
#include <qpushbutton.h>
#include <qgroupbox.h>
#include <qapplication.h>
#include <qregexp.h>
+#include <qvbox.h>
+#include <qlabel.h>
#include <klocale.h>
#include <kdebug.h>
#include <kglobalsettings.h>
#include "stdaddressbook.h"
#include "addresseedialog.h"
+#include "KDGanttMinimizeSplitter.h"
//#include "addresseedialog.moc"
using namespace KABC;
AddresseeItem::AddresseeItem( QListView *parent, const Addressee &addressee ) :
QListViewItem( parent ),
mAddressee( addressee )
{
QString name = addressee.familyName()+", "+ addressee.givenName();
if ( name.length() == 2 )
name = addressee.organization();
setText( Name,name);
@@ -50,56 +53,65 @@ QString AddresseeItem::key( int column, bool ) const
{
if (column == Email) {
QString value = text(Email);
int val = value.findRev("@");
return value.mid( val) + value.left( val );
}
return text(column).lower();
}
AddresseeDialog::AddresseeDialog( QWidget *parent, bool multiple ) :
KDialogBase( KDialogBase::Plain, i18n("Select Addressee"),
- Ok|Cancel, Ok, parent ), mMultiple( multiple )
+ Ok|Cancel, No, parent ), mMultiple( multiple )
{
QWidget *topWidget = plainPage();
QBoxLayout *topLayout = new QHBoxLayout( topWidget );
- QBoxLayout *listLayout = new QVBoxLayout;
- topLayout->addLayout( listLayout );
- mAddresseeList = new KListView( topWidget );
+
+ KDGanttMinimizeSplitter* mMiniSplitter = new KDGanttMinimizeSplitter( Qt::Horizontal, topWidget);
+ mMiniSplitter->setMinimizeDirection ( KDGanttMinimizeSplitter::Right );
+
+ topLayout->addWidget(mMiniSplitter );
+
+ QWidget *listWidget = new QWidget( mMiniSplitter );
+
+ QBoxLayout *listLayout = new QVBoxLayout (listWidget) ;
+ //topLayout->addLayout( listLayout );
+
+ mAddresseeList = new KListView( listWidget );
mAddresseeList->addColumn( i18n("Name") );
mAddresseeList->addColumn( i18n("Email") );
mAddresseeList->setAllColumnsShowFocus( true );
mAddresseeList->setFullWidth( true );
listLayout->addWidget( mAddresseeList );
connect( mAddresseeList, SIGNAL( doubleClicked( QListViewItem * ) ),
SLOT( slotOk() ) );
- mAddresseeEdit = new QLineEdit( topWidget );
+ mAddresseeEdit = new QLineEdit( listWidget );
connect( mAddresseeEdit, SIGNAL( returnPressed() ),
SLOT( loadAddressBook() ) );
mAddresseeEdit->setFocus();
listLayout->addWidget( mAddresseeEdit );
if ( mMultiple ) {
- QBoxLayout *selectedLayout = new QVBoxLayout;
- topLayout->addLayout( selectedLayout );
- topLayout->setSpacing( spacingHint() );
+ //QBoxLayout *selectedLayout = new QVBoxLayout;
+ //topLayout->addLayout( selectedLayout );
+ //topLayout->setSpacing( spacingHint() );
- QGroupBox *selectedGroup = new QGroupBox( 1, Horizontal, i18n("Selected"),
- topWidget );
- selectedLayout->addWidget( selectedGroup );
+ QVBox *selectedGroup = new QVBox( mMiniSplitter );
+ new QLabel ( i18n("Selected:"), selectedGroup );
+ //selectedLayout->addWidget( selectedGroup );
mSelectedList = new KListView( selectedGroup );
mSelectedList->addColumn( i18n("Name") );
mSelectedList->addColumn( i18n("Email") );
mSelectedList->setAllColumnsShowFocus( true );
mSelectedList->setFullWidth( true );
connect( mSelectedList, SIGNAL( doubleClicked( QListViewItem * ) ),
SLOT( removeSelected() ) );
QPushButton *unselectButton = new QPushButton( i18n("Unselect"), selectedGroup );
connect ( unselectButton, SIGNAL( clicked() ), SLOT( removeSelected() ) );
@@ -108,24 +120,28 @@ AddresseeDialog::AddresseeDialog( QWidget *parent, bool multiple ) :
connect( mAddresseeList, SIGNAL( returnPressed( QListViewItem * ) ),
SLOT( selectNextItem( QListViewItem * ) ) );
}
mAddressBook = StdAddressBook::self( true );
connect( mAddressBook, SIGNAL( addressBookChanged( AddressBook* ) ),
SLOT( addressBookChanged() ) );
connect( mAddressBook, SIGNAL( loadingFinished( Resource* ) ),
SLOT( addressBookChanged() ) );
loadAddressBook();
+ QValueList<int> splitterSize;
+ splitterSize.append( ( width() / 5 ) * 3 );
+ splitterSize.append( ( width() / 5 ) *2 );
+ mMiniSplitter->setSizes( splitterSize );
}
AddresseeDialog::~AddresseeDialog()
{
}
void AddresseeDialog::loadAddressBook()
{
mAddresseeList->clear();
mItemDict.clear();
if ( mAddresseeEdit->text().isEmpty() ) {
AddressBook::Iterator it;
diff --git a/korganizer/koeventviewerdialog.cpp b/korganizer/koeventviewerdialog.cpp
index e2c8e6e..f606124 100644
--- a/korganizer/koeventviewerdialog.cpp
+++ b/korganizer/koeventviewerdialog.cpp
@@ -253,30 +253,36 @@ void KOEventViewerDialog::keyPressEvent ( QKeyEvent * e )
switch ( e->key() ) {
case Qt::Key_A :
case Qt::Key_L :
showIncidence();
break;
case Qt::Key_E :
case Qt::Key_R :
editIncidence();
break;
case Qt::Key_C:
case Qt::Key_Escape:
+ sendSignalViewerClosed = true;
close();
break;
case Qt::Key_I:
+#ifndef DESKTOP_VERSION
+ sendSignalViewerClosed = true;
+ close();
+#else
sendSignalViewerClosed = true;
slotViewerClosed();
//accept();
+#endif
break;
default:
KDialogBase::keyPressEvent ( e );
break;
}
}
void KOEventViewerDialog::hideEvent ( QHideEvent * e )
{
KDialogBase::hideEvent ( e );
QTimer::singleShot( 1, this, SLOT (slotViewerClosed() ) );
}
diff --git a/korganizer/kolistview.cpp b/korganizer/kolistview.cpp
index 6acee75..710a9f9 100644
--- a/korganizer/kolistview.cpp
+++ b/korganizer/kolistview.cpp
@@ -1074,26 +1074,26 @@ void KOListViewListView::keyPressEvent ( QKeyEvent *e)
break;
case Qt::Key_I: {
QListViewItem* cn;
cn = currentItem();
if ( cn ) {
KOListViewItem* ci = (KOListViewItem*)( cn );
if ( ci ){
//emit showIncidence( ci->data());
cn = cn->nextSibling();
if ( cn ) {
setCurrentItem ( cn );
ensureItemVisible ( cn );
- emit showIncidence( ci->data());
}
+ emit showIncidence( ci->data());
}
}
e->accept();
}
break;
case Qt::Key_Return:
case Qt::Key_Enter:
{
QListViewItem* cn;
cn = currentItem();
if ( cn ) {
KOListViewItem* ci = (KOListViewItem*)( cn );
diff --git a/korganizer/searchdialog.cpp b/korganizer/searchdialog.cpp
index cef59a2..678e1bd 100644
--- a/korganizer/searchdialog.cpp
+++ b/korganizer/searchdialog.cpp
@@ -17,56 +17,58 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
As a special exception, permission is given to link this program
with any edition of Qt, and distribute the resulting executable,
without including the source code for Qt in the source distribution.
*/
#include <qlayout.h>
#include <qcheckbox.h>
#include <qgroupbox.h>
#include <qlabel.h>
+#include <qlistview.h>
#include <qwhatsthis.h>
#include <qlineedit.h>
#include <qpushbutton.h>
#include <klocale.h>
#include <kmessagebox.h>
#include <libkdepim/kdateedit.h>
#include "koglobals.h"
#include "koprefs.h"
+#include "klineedit.h"
#include "calendarview.h"
#include "koviewmanager.h"
#include "searchdialog.h"
SearchDialog::SearchDialog(Calendar *calendar,CalendarView *parent)
: QVBox( 0 )
{
mCalendar = calendar;
QFrame *topFrame = new QFrame( this ) ;//plainPage();
QVBoxLayout *layout = new QVBoxLayout(topFrame,KDialog::marginHint(),KDialog::spacingHint());
// Search expression
QHBoxLayout *subLayout = new QHBoxLayout();
layout->addLayout(subLayout);
searchLabel = new QLabel(topFrame);
searchLabel->setText(i18n("Search for:"));
subLayout->addWidget(searchLabel);
- searchEdit = new QLineEdit(topFrame);
+ searchEdit = new KLineEdit(topFrame);
subLayout->addWidget(searchEdit);
QPushButton *OkButton = new QPushButton( i18n("&Find"), topFrame );
//OkButton->setDefault( true );
connect(OkButton,SIGNAL(clicked()),SLOT(doSearch()));
subLayout->addWidget(OkButton);
searchEdit->setText("*"); // Find all events by default
searchEdit->setFocus();
connect(searchEdit, SIGNAL(textChanged ( const QString & )),this,SLOT(searchTextChanged( const QString & )));
connect(searchEdit, SIGNAL( returnPressed () ),this,SLOT(doSearch()));
// Subjects to search
// QGroupBox *subjectGroup = new QGroupBox(1,Vertical,i18n("Search In"),
// topFrame);
@@ -105,36 +107,41 @@ SearchDialog::SearchDialog(Calendar *calendar,CalendarView *parent)
rangeLayout->addWidget(new QLabel(i18n("To:"),rangeWidget));
mEndDate = new KDateEdit(rangeWidget);
mEndDate->setDate(QDate::currentDate().addDays(365));
rangeLayout->addWidget(mEndDate);
QToolButton *wt = QWhatsThis::whatsThisButton ( rangeWidget );
rangeLayout->addWidget( (QWidget*)wt );
layout->addWidget(rangeWidget);
// Results list view
listView = new KOListView(mCalendar,topFrame);
layout->addWidget(listView);
listView->readSettings(KOGlobals::config(),"SearchListView Layout");
+ connect(searchEdit,SIGNAL(scrollDOWN()),SLOT(setFocusToList()));
setCaption( i18n("KO/Pi Find: "));
#ifdef DESKTOP_VERSION
OkButton = new QPushButton( i18n("Close"), this );
connect(OkButton,SIGNAL(clicked()),SLOT(hide()));
#endif
}
SearchDialog::~SearchDialog()
{
}
+void SearchDialog::setFocusToList()
+{
+ listView->resetFocus();
+}
void SearchDialog::accept()
{
doSearch();
}
void SearchDialog::updateList()
{
//listView->updateList();
if ( isVisible() ) {
updateView();
//qDebug("SearchDialog::updated ");
}
else {
diff --git a/korganizer/searchdialog.h b/korganizer/searchdialog.h
index f4aad9e..b730ed5 100644
--- a/korganizer/searchdialog.h
+++ b/korganizer/searchdialog.h
@@ -27,62 +27,64 @@
#include <qregexp.h>
#include <kdialogbase.h>
#include <qvbox.h>
#include <libkcal/calendar.h>
#include "kolistview.h"
class KDateEdit;
class QCheckBox;
class QLineEdit;
+class KLineEdit;
class QLabel;
class CalendarView;
using namespace KCal;
class SearchDialog : public QVBox
{
Q_OBJECT
public:
SearchDialog(Calendar *calendar,CalendarView *parent=0);
virtual ~SearchDialog();
KOListView *listview(){ return listView;}
void updateView();
public slots:
void changeEventDisplay(Event *, int) { updateView(); }
void updateConfig();
void updateList();
protected slots:
+ void setFocusToList();
void accept();
void doSearch();
void searchTextChanged( const QString &_text );
signals:
void showEventSignal(Event *);
void editEventSignal(Event *);
void deleteEventSignal(Event *);
private:
void search(const QRegExp &);
Calendar *mCalendar;
QPtrList<Event> mMatchedEvents;
QPtrList<Todo> mMatchedTodos;
QPtrList<Journal> mMatchedJournals;
QLabel *searchLabel;
- QLineEdit *searchEdit;
+ KLineEdit *searchEdit;
KOListView *listView;
KDateEdit *mStartDate;
KDateEdit *mEndDate;
QCheckBox *mSummaryCheck;
QCheckBox *mDescriptionCheck;
QCheckBox *mCategoryCheck;
QCheckBox *mSearchEvent;
QCheckBox *mSearchTodo;
QCheckBox *mSearchJournal;
QCheckBox *mSearchAName;
QCheckBox *mSearchAEmail;
diff --git a/microkde/kdialogbase.cpp b/microkde/kdialogbase.cpp
index 801094a..f453331 100644
--- a/microkde/kdialogbase.cpp
+++ b/microkde/kdialogbase.cpp
@@ -31,26 +31,28 @@ KDialogBase::KDialogBase( QWidget *parent, const char *name, bool modal,
}
KDialogBase::KDialogBase( int dialogFace, const QString &caption,
int buttonMask, ButtonCode defaultButton,
QWidget *parent, const char *name, bool modal,
bool separator,
const QString &user1,
const QString &user2,
const QString &user3) :
KDialog( parent, name, modal )
{
init( caption, buttonMask, user1, user2 );
- if (findButton( defaultButton ) )
+ if (findButton( defaultButton ) ) {
(findButton( defaultButton ) )->setFocus();
+ (findButton( defaultButton ) )->setDefault( true );
+ }
}
KDialogBase::~KDialogBase()
{
}
void KDialogBase::init( const QString &caption, int buttonMask,
const QString &user1 ,const QString &user2 )
{
mMainWidget = 0;
mTabWidget = 0;
@@ -67,25 +69,25 @@ void KDialogBase::init( const QString &caption, int buttonMask,
mUser1Button = 0;
}
if ( buttonMask & User2 ) {
mUser2Button = new QPushButton( user2, this );
connect( mUser2Button, SIGNAL( clicked() ), SLOT( slotUser2() ) );
} else {
mUser2Button = 0;
}
if ( buttonMask & Ok ) {
mOkButton = new QPushButton( i18n("Ok"), this );
connect( mOkButton, SIGNAL( clicked() ), SLOT( slotOk() ) );
- mOkButton->setDefault( true );
+ //mOkButton->setDefault( true );
} else {
mOkButton = 0;
}
if ( buttonMask & Default ) {
mDefaultButton = new QPushButton( i18n("Default"), this );
connect( mDefaultButton, SIGNAL( clicked() ), SIGNAL( defaultClicked() ) );
} else {
mDefaultButton = 0;
}
if ( buttonMask & Apply ) {
mApplyButton = new QPushButton( i18n("Apply"), this );
diff --git a/version b/version
index e90e80d..0ec83d8 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-version = "2.0.12";
+version = "2.0.13";