kitchensync Library API Documentation

profiledialog.cpp

00001 /* 00002 This file is part of KitchenSync. 00003 00004 Copyright (c) 2002 Holger Freyther <zecke@handhelds.org> 00005     Copyright (c) 2002 Maximilian Reiß <harlekin@handhelds.org> 00006 Copyright (c) 2004 Cornelius Schumacher <schumacher@kde.org> 00007 00008 This library is free software; you can redistribute it and/or 00009 modify it under the terms of the GNU Library General Public 00010 License as published by the Free Software Foundation; either 00011 version 2 of the License, or (at your option) any later version. 00012 00013 This library is distributed in the hope that it will be useful, 00014 but WITHOUT ANY WARRANTY; without even the implied warranty of 00015 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00016 Library General Public License for more details. 00017 00018 You should have received a copy of the GNU Library General Public License 00019 along with this library; see the file COPYING.LIB. If not, write to 00020 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00021 Boston, MA 02111-1307, USA. 00022 */ 00023 00024 #include "profiledialog.h" 00025 00026 #include "profileitem.h" 00027 #include "profilewizard.h" 00028 00029 #include <klocale.h> 00030 #include <kpushbutton.h> 00031 #include <klistview.h> 00032 00033 #include <qlayout.h> 00034 #include <qlabel.h> 00035 #include <qpushbutton.h> 00036 00037 using namespace KSync; 00038 00039 ProfileDialog::ProfileDialog( const Profile::List &profiles, 00040 const ActionPartService::List &parts ) 00041 : KDialogBase( Plain, i18n("Configure Profiles"), Ok | Cancel, Ok, 0, 0, true, 00042 false ), 00043 mAvailableParts( parts ) 00044 { 00045 QWidget *topWidget = plainPage(); 00046 00047 QBoxLayout *topLayout = new QVBoxLayout( topWidget ); 00048 topLayout->setSpacing( spacingHint() ); 00049 00050 QLabel *label = new QLabel( "<qt><b>" + i18n("Setup Profiles") + "</b></qt>", topWidget ); 00051 topLayout->addWidget( label ); 00052 00053 label = new QLabel( 00054 i18n("A Profile contains information about which Parts\n" 00055 "should get loaded and used for the synchronization\n" 00056 "process." ), 00057 topWidget ); 00058 topLayout->addWidget( label ); 00059 00060 QBoxLayout *listLayout = new QHBoxLayout( topLayout ); 00061 00062 mProfileList = new KListView( topWidget ); 00063 mProfileList->addColumn( i18n( "Name" ) ); 00064 mProfileList->setAllColumnsShowFocus( true ); 00065 mProfileList->setFullWidth( true ); 00066 listLayout->addWidget( mProfileList ); 00067 connect( mProfileList, SIGNAL( selectionChanged( QListViewItem* ) ), 00068 SLOT( slotSelectionChanged() ) ); 00069 00070 QBoxLayout *buttonLayout = new QVBoxLayout( listLayout ); 00071 00072 QPushButton *button = new QPushButton( i18n("Add..."), topWidget ); 00073 buttonLayout->addWidget( button ); 00074 connect( button, SIGNAL( clicked() ), SLOT( slotAdd() ) ); 00075 00076 mEditButton = new QPushButton( i18n("Edit..."), topWidget ); 00077 buttonLayout->addWidget( mEditButton ); 00078 connect( mEditButton, SIGNAL( clicked() ), SLOT( slotEdit() ) ); 00079 00080 mRemoveButton = new QPushButton( i18n("Remove"), topWidget ); 00081 buttonLayout->addWidget( mRemoveButton ); 00082 connect( mRemoveButton, SIGNAL( clicked() ), SLOT( slotRemove() ) ); 00083 00084 buttonLayout->addStretch(); 00085 00086 initListView( profiles ); 00087 00088 slotSelectionChanged(); 00089 } 00090 00091 ProfileDialog::~ProfileDialog() 00092 { 00093 } 00094 00095 void ProfileDialog::initListView( const Profile::List& profiles ) 00096 { 00097 Profile::List::ConstIterator it; 00098 for ( it = profiles.begin(); it != profiles.end(); ++it ) { 00099 new ProfileItem( mProfileList, (*it) ); 00100 } 00101 } 00102 00103 Profile::List ProfileDialog::profiles() const 00104 { 00105 Profile::List profiles; 00106 00107 QListViewItemIterator it( mProfileList ); 00108 for ( ; it.current(); ++it ) { 00109 ProfileItem *item = static_cast<ProfileItem *>( it.current() ); 00110 profiles.append( item->profile() ); 00111 } 00112 00113 return profiles; 00114 } 00115 00116 void ProfileDialog::slotRemove() 00117 { 00118 delete mProfileList->selectedItem(); 00119 } 00120 00121 void ProfileDialog::slotAdd() 00122 { 00123 ProfileWizard wiz( mAvailableParts ); 00124 00125 if ( wiz.exec() ) { 00126 new ProfileItem( mProfileList, wiz.profile() ); 00127 } 00128 } 00129 00130 void ProfileDialog::slotEdit() 00131 { 00132 ProfileItem *item = 00133 static_cast<ProfileItem *>( mProfileList->selectedItem() ); 00134 if ( !item ) return; 00135 00136 ProfileWizard wiz( item->profile(), mAvailableParts ); 00137 if ( wiz.exec() ) { 00138 item->setProfile( wiz.profile() ); 00139 } 00140 } 00141 00142 void ProfileDialog::slotSelectionChanged() 00143 { 00144 bool state = (mProfileList->selectedItem() != 0); 00145 00146 mEditButton->setEnabled( state ); 00147 mRemoveButton->setEnabled( state ); 00148 } 00149 00150 #include "profiledialog.moc"
KDE Logo
This file is part of the documentation for kitchensync Library Version 3.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Fri Oct 1 15:18:59 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003