-rw-r--r-- | kaddressbook/kabcore.cpp | 57 | ||||
-rw-r--r-- | kmicromail/viewmail.cpp | 4 | ||||
-rw-r--r-- | korganizer/calendarview.cpp | 5 | ||||
-rw-r--r-- | korganizer/koprefs.cpp | 6 | ||||
-rw-r--r-- | korganizer/mainwindow.cpp | 4 | ||||
-rw-r--r-- | libkcal/phoneformat.cpp | 4 | ||||
-rw-r--r-- | version | 2 |
7 files changed, 22 insertions, 60 deletions
diff --git a/kaddressbook/kabcore.cpp b/kaddressbook/kabcore.cpp index 2e408b7..11eeabc 100644 --- a/kaddressbook/kabcore.cpp +++ b/kaddressbook/kabcore.cpp | |||
@@ -699,97 +699,58 @@ void KABCore::export2phone() | |||
699 | return; | 699 | return; |
700 | 700 | ||
701 | QString fileName = getPhoneFile(); | 701 | QString fileName = getPhoneFile(); |
702 | if ( ! mAddressBook->export2PhoneFormat( uids ,fileName ) ) | 702 | if ( ! mAddressBook->export2PhoneFormat( uids ,fileName ) ) |
703 | return; | 703 | return; |
704 | 704 | ||
705 | message(i18n("Exporting to phone...")); | 705 | message(i18n("Exporting to phone...")); |
706 | QTimer::singleShot( 1, this , SLOT ( writeToPhone())); | 706 | QTimer::singleShot( 1, this , SLOT ( writeToPhone())); |
707 | 707 | ||
708 | } | 708 | } |
709 | QString KABCore::getPhoneFile() | 709 | QString KABCore::getPhoneFile() |
710 | { | 710 | { |
711 | #ifdef _WIN32_ | 711 | #ifdef DESKTOP_VERSION |
712 | return locateLocal("tmp", "phonefile.vcf"); | 712 | return locateLocal("tmp", "phonefile.vcf"); |
713 | #else | 713 | #else |
714 | return "/tmp/phonefile.vcf"; | 714 | return "/tmp/phonefile.vcf"; |
715 | #endif | 715 | #endif |
716 | 716 | ||
717 | } | 717 | } |
718 | void KABCore::writeToPhone( ) | 718 | void KABCore::writeToPhone( ) |
719 | { | 719 | { |
720 | if ( PhoneAccess::writeToPhone( getPhoneFile() ) ) | 720 | if ( PhoneAccess::writeToPhone( getPhoneFile() ) ) |
721 | message(i18n("Export to phone finished!")); | 721 | message(i18n("Export to phone finished!")); |
722 | else | 722 | else |
723 | qDebug(i18n("Error exporting to phone")); | 723 | qDebug(i18n("Error exporting to phone")); |
724 | } | 724 | } |
725 | void KABCore::beamVCard() | 725 | void KABCore::beamVCard() |
726 | { | 726 | { |
727 | QStringList uids = mViewManager->selectedUids(); | 727 | QStringList uids = mViewManager->selectedUids(); |
728 | if ( !uids.isEmpty() ) | 728 | if ( !uids.isEmpty() ) |
729 | beamVCard( uids ); | 729 | beamVCard( uids ); |
730 | } | 730 | } |
731 | 731 | ||
732 | 732 | ||
733 | void KABCore::beamVCard(const QStringList& uids) | 733 | void KABCore::beamVCard(const QStringList& uids) |
734 | { | 734 | { |
735 | /*US | ||
736 | QString beamFilename; | ||
737 | Opie::OPimContact c; | ||
738 | if ( actionPersonal->isOn() ) { | ||
739 | beamFilename = addressbookPersonalVCardName(); | ||
740 | if ( !QFile::exists( beamFilename ) ) | ||
741 | return; // can't beam a non-existent file | ||
742 | Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null, | ||
743 | beamFilename ); | ||
744 | Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true ); | ||
745 | Opie::OPimContactAccess::List allList = access->allRecords(); | ||
746 | Opie::OPimContactAccess::List::Iterator it = allList.begin(); // Just take first | ||
747 | c = *it; | ||
748 | |||
749 | delete access; | ||
750 | } else { | ||
751 | unlink( beamfile ); // delete if exists | ||
752 | mkdir("/tmp/obex/", 0755); | ||
753 | c = m_abView -> currentEntry(); | ||
754 | Opie::OPimContactAccessBackend* vcard_backend = new Opie::OPimContactAccessBackend_VCard( QString::null, | ||
755 | beamfile ); | ||
756 | Opie::OPimContactAccess* access = new Opie::OPimContactAccess ( "addressbook", QString::null , vcard_backend, true ); | ||
757 | access->add( c ); | ||
758 | access->save(); | ||
759 | delete access; | ||
760 | |||
761 | beamFilename = beamfile; | ||
762 | } | ||
763 | |||
764 | owarn << "Beaming: " << beamFilename << oendl; | ||
765 | */ | ||
766 | |||
767 | #if 0 | ||
768 | QString tmpdir = locateLocal("tmp", KGlobal::getAppName()); | ||
769 | |||
770 | QString dirName = tmpdir + "/" + KApplication::randomString( 8 ); | ||
771 | |||
772 | QString name = "contact.vcf"; | ||
773 | 735 | ||
774 | QString fileName = dirName + "/" + name; | 736 | // LR: we should use the /tmp dir on the Zaurus, |
775 | #endif | 737 | // because: /tmp = RAM, (HOME)/kdepim = flash memory |
776 | // LR: we should use the /tmp dir, because: /tmp = RAM, (HOME)/kdepim = flash memory | 738 | |
777 | // | 739 | #ifdef DESKTOP_VERSION |
740 | QString fileName = locateLocal("tmp", "kapibeamfile.vcf"); | ||
741 | #else | ||
778 | QString fileName = "/tmp/kapibeamfile.vcf"; | 742 | QString fileName = "/tmp/kapibeamfile.vcf"; |
743 | #endif | ||
779 | 744 | ||
780 | |||
781 | //QDir().mkdir( dirName, true ); | ||
782 | |||
783 | |||
784 | KABC::VCardConverter converter; | 745 | KABC::VCardConverter converter; |
785 | QString description; | 746 | QString description; |
786 | QString datastream; | 747 | QString datastream; |
787 | for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { | 748 | for( QStringList::ConstIterator it = uids.begin(); it != uids.end(); ++it ) { |
788 | KABC::Addressee a = mAddressBook->findByUid( *it ); | 749 | KABC::Addressee a = mAddressBook->findByUid( *it ); |
789 | 750 | ||
790 | if ( a.isEmpty() ) | 751 | if ( a.isEmpty() ) |
791 | continue; | 752 | continue; |
792 | 753 | ||
793 | if (description.isEmpty()) | 754 | if (description.isEmpty()) |
794 | description = a.formattedName(); | 755 | description = a.formattedName(); |
795 | 756 | ||
@@ -2853,24 +2814,24 @@ void KABCore::getFile( bool success ) | |||
2853 | return; | 2814 | return; |
2854 | } | 2815 | } |
2855 | mAddressBook->importFromFile( sentSyncFile() , false, true ); | 2816 | mAddressBook->importFromFile( sentSyncFile() , false, true ); |
2856 | message( i18n("Pi-Sync successful!") ); | 2817 | message( i18n("Pi-Sync successful!") ); |
2857 | mViewManager->refreshView(); | 2818 | mViewManager->refreshView(); |
2858 | } | 2819 | } |
2859 | void KABCore::syncFileRequest() | 2820 | void KABCore::syncFileRequest() |
2860 | { | 2821 | { |
2861 | mAddressBook->export2File( sentSyncFile() ); | 2822 | mAddressBook->export2File( sentSyncFile() ); |
2862 | } | 2823 | } |
2863 | QString KABCore::sentSyncFile() | 2824 | QString KABCore::sentSyncFile() |
2864 | { | 2825 | { |
2865 | #ifdef _WIN32_ | 2826 | #ifdef DESKTOP_VERSION |
2866 | return locateLocal( "tmp", "copysyncab.vcf" ); | 2827 | return locateLocal( "tmp", "copysyncab.vcf" ); |
2867 | #else | 2828 | #else |
2868 | return QString( "/tmp/copysyncab.vcf" ); | 2829 | return QString( "/tmp/copysyncab.vcf" ); |
2869 | #endif | 2830 | #endif |
2870 | } | 2831 | } |
2871 | 2832 | ||
2872 | void KABCore::setCaptionBack() | 2833 | void KABCore::setCaptionBack() |
2873 | { | 2834 | { |
2874 | mMessageTimer->stop(); | 2835 | mMessageTimer->stop(); |
2875 | topLevelWidget()->setCaption( i18n("KAddressbook/Pi") ); | 2836 | topLevelWidget()->setCaption( i18n("KAddressbook/Pi") ); |
2876 | } | 2837 | } |
diff --git a/kmicromail/viewmail.cpp b/kmicromail/viewmail.cpp index 6e560d7..32a3b7c 100644 --- a/kmicromail/viewmail.cpp +++ b/kmicromail/viewmail.cpp | |||
@@ -244,25 +244,29 @@ void ViewMail::slotItemClicked( QListViewItem * item , const QPoint & point, int | |||
244 | QFile output(str); | 244 | QFile output(str); |
245 | output.open(IO_WriteOnly); | 245 | output.open(IO_WriteOnly); |
246 | output.writeBlock(content->Content(),content->Length()); | 246 | output.writeBlock(content->Content(),content->Length()); |
247 | output.close(); | 247 | output.close(); |
248 | delete content; | 248 | delete content; |
249 | } | 249 | } |
250 | } | 250 | } |
251 | } | 251 | } |
252 | break ; | 252 | break ; |
253 | 253 | ||
254 | case 2: | 254 | case 2: |
255 | { | 255 | { |
256 | #ifdef DESKTOP_VERSION | ||
257 | QString tmpfile = locateLocal( "tmp", "opiemail-image"); | ||
258 | #else | ||
256 | QString tmpfile = "/tmp/opiemail-image"; | 259 | QString tmpfile = "/tmp/opiemail-image"; |
260 | #endif | ||
257 | encodedString*content = m_recMail->Wrapper()->fetchDecodedPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] ); | 261 | encodedString*content = m_recMail->Wrapper()->fetchDecodedPart( m_recMail, m_body->Parts()[ ( ( AttachItem* )item )->Partnumber() ] ); |
258 | if (content) { | 262 | if (content) { |
259 | QFile output(tmpfile); | 263 | QFile output(tmpfile); |
260 | output.open(IO_WriteOnly); | 264 | output.open(IO_WriteOnly); |
261 | output.writeBlock(content->Content(),content->Length()); | 265 | output.writeBlock(content->Content(),content->Length()); |
262 | output.close(); | 266 | output.close(); |
263 | delete content; | 267 | delete content; |
264 | MailImageDlg iview(""); | 268 | MailImageDlg iview(""); |
265 | iview.setName(tmpfile); | 269 | iview.setName(tmpfile); |
266 | KApplication::execDialog(&iview); | 270 | KApplication::execDialog(&iview); |
267 | output.remove(); | 271 | output.remove(); |
268 | } | 272 | } |
diff --git a/korganizer/calendarview.cpp b/korganizer/calendarview.cpp index 290c0b9..884c61a 100644 --- a/korganizer/calendarview.cpp +++ b/korganizer/calendarview.cpp | |||
@@ -2294,26 +2294,29 @@ void CalendarView::beamCalendar() | |||
2294 | beamIncidenceList( delSel ); | 2294 | beamIncidenceList( delSel ); |
2295 | } | 2295 | } |
2296 | void CalendarView::beamFilteredCalendar() | 2296 | void CalendarView::beamFilteredCalendar() |
2297 | { | 2297 | { |
2298 | QPtrList<Incidence> delSel = mCalendar->incidences(); | 2298 | QPtrList<Incidence> delSel = mCalendar->incidences(); |
2299 | //qDebug("beamFilteredCalendar() "); | 2299 | //qDebug("beamFilteredCalendar() "); |
2300 | beamIncidenceList( delSel ); | 2300 | beamIncidenceList( delSel ); |
2301 | } | 2301 | } |
2302 | void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel ) | 2302 | void CalendarView::beamIncidenceList(QPtrList<Incidence> delSel ) |
2303 | { | 2303 | { |
2304 | if ( beamDialog->exec () == QDialog::Rejected ) | 2304 | if ( beamDialog->exec () == QDialog::Rejected ) |
2305 | return; | 2305 | return; |
2306 | 2306 | #ifdef DESKTOP_VERSION | |
2307 | QString fn = locateLocal( "tmp", "kopibeamfile" ); | ||
2308 | #else | ||
2307 | QString fn = "/tmp/kopibeamfile"; | 2309 | QString fn = "/tmp/kopibeamfile"; |
2310 | #endif | ||
2308 | QString mes; | 2311 | QString mes; |
2309 | bool createbup = true; | 2312 | bool createbup = true; |
2310 | if ( createbup ) { | 2313 | if ( createbup ) { |
2311 | QString description = "\n"; | 2314 | QString description = "\n"; |
2312 | CalendarLocal* cal = new CalendarLocal(); | 2315 | CalendarLocal* cal = new CalendarLocal(); |
2313 | if ( beamDialog->beamLocal() ) | 2316 | if ( beamDialog->beamLocal() ) |
2314 | cal->setLocalTime(); | 2317 | cal->setLocalTime(); |
2315 | else | 2318 | else |
2316 | cal->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); | 2319 | cal->setTimeZoneId(KOPrefs::instance()->mTimeZoneId); |
2317 | Incidence *incidence = delSel.first(); | 2320 | Incidence *incidence = delSel.first(); |
2318 | bool addText = false; | 2321 | bool addText = false; |
2319 | if ( delSel.count() < 10 ) | 2322 | if ( delSel.count() < 10 ) |
diff --git a/korganizer/koprefs.cpp b/korganizer/koprefs.cpp index 651442b..258f738 100644 --- a/korganizer/koprefs.cpp +++ b/korganizer/koprefs.cpp | |||
@@ -193,30 +193,24 @@ KOPrefs::KOPrefs() : | |||
193 | // addItemBool("AskForPreferences",&mAskForPreferences,true); | 193 | // addItemBool("AskForPreferences",&mAskForPreferences,true); |
194 | // addItemBool("ShowSyncSummary",&mShowSyncSummary,true); | 194 | // addItemBool("ShowSyncSummary",&mShowSyncSummary,true); |
195 | addItemString("ActiveSyncPort",&mActiveSyncPort,"9197" ); | 195 | addItemString("ActiveSyncPort",&mActiveSyncPort,"9197" ); |
196 | addItemString("ActiveSyncIP",&mActiveSyncIP,"192.168.0.40" ); | 196 | addItemString("ActiveSyncIP",&mActiveSyncIP,"192.168.0.40" ); |
197 | addItemBool("ShowSyncEvents",&mShowSyncEvents,false); | 197 | addItemBool("ShowSyncEvents",&mShowSyncEvents,false); |
198 | addItemInt("LastSyncTime",&mLastSyncTime,0); | 198 | addItemInt("LastSyncTime",&mLastSyncTime,0); |
199 | 199 | ||
200 | #ifdef _WIN32_ | 200 | #ifdef _WIN32_ |
201 | QString hdp= locateLocal("data","korganizer")+"\\\\"; | 201 | QString hdp= locateLocal("data","korganizer")+"\\\\"; |
202 | #else | 202 | #else |
203 | QString hdp= locateLocal("data","korganizer")+"/"; | 203 | QString hdp= locateLocal("data","korganizer")+"/"; |
204 | #endif | 204 | #endif |
205 | // addItemString("RemoteIP",&mRemoteIP, "192.168.0.65"); | ||
206 | // addItemString("RemoteUser",&mRemoteUser, "zaurus"); | ||
207 | // addItemString("RemotePassWd",&mRemotePassWd, ""); | ||
208 | // addItemString("RemoteFile", &mRemoteFile, hdp+"mycalendar.ics"); | ||
209 | // addItemString("LocalTempFile",&mLocalTempFile, "/tmp/tempsyncfile.ics" ); | ||
210 | |||
211 | 205 | ||
212 | KPrefs::setCurrentGroup("LoadSaveFileNames"); | 206 | KPrefs::setCurrentGroup("LoadSaveFileNames"); |
213 | 207 | ||
214 | addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" ); | 208 | addItemString("LastImportFile", &mLastImportFile ,hdp +"import.ics" ); |
215 | addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" ); | 209 | addItemString("LastVcalFile", &mLastVcalFile ,hdp +"export.vcs" ); |
216 | addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" ); | 210 | addItemString("LastSaveFile", &mLastSaveFile ,hdp +"mybackup.ics" ); |
217 | addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" ); | 211 | addItemString("LastLoadFile", &mLastLoadFile ,hdp +"mybackup.ics" ); |
218 | 212 | ||
219 | 213 | ||
220 | KPrefs::setCurrentGroup("Locale"); | 214 | KPrefs::setCurrentGroup("Locale"); |
221 | addItemInt("PreferredLanguage",&mPreferredLanguage,0); | 215 | addItemInt("PreferredLanguage",&mPreferredLanguage,0); |
222 | addItemInt("PreferredTime",&mPreferredTime,0); | 216 | addItemInt("PreferredTime",&mPreferredTime,0); |
diff --git a/korganizer/mainwindow.cpp b/korganizer/mainwindow.cpp index 06470b8..c3e9f75 100644 --- a/korganizer/mainwindow.cpp +++ b/korganizer/mainwindow.cpp | |||
@@ -1205,28 +1205,28 @@ void MainWindow::aboutKnownBugs() | |||
1205 | QMessageBox::NoButton); | 1205 | QMessageBox::NoButton); |
1206 | msg->exec(); | 1206 | msg->exec(); |
1207 | delete msg; | 1207 | delete msg; |
1208 | 1208 | ||
1209 | } | 1209 | } |
1210 | 1210 | ||
1211 | QString MainWindow::defaultFileName() | 1211 | QString MainWindow::defaultFileName() |
1212 | { | 1212 | { |
1213 | return locateLocal( "data", "korganizer/mycalendar.ics" ); | 1213 | return locateLocal( "data", "korganizer/mycalendar.ics" ); |
1214 | } | 1214 | } |
1215 | QString MainWindow::syncFileName() | 1215 | QString MainWindow::syncFileName() |
1216 | { | 1216 | { |
1217 | #ifdef _WIN32_ | 1217 | #ifdef DESKTOP_VERSION |
1218 | return locateLocal( "tmp", "synccalendar.ics" ); | 1218 | return locateLocal( "tmp", "synccalendar.ics" ); |
1219 | #else | 1219 | #else |
1220 | return QString( "/tmp/kopitempfile.ics" ); | 1220 | return QString( "/tmp/synccalendar.ics" ); |
1221 | #endif | 1221 | #endif |
1222 | } | 1222 | } |
1223 | 1223 | ||
1224 | void MainWindow::processIncidenceSelection( Incidence *incidence ) | 1224 | void MainWindow::processIncidenceSelection( Incidence *incidence ) |
1225 | { | 1225 | { |
1226 | if ( !incidence ) { | 1226 | if ( !incidence ) { |
1227 | enableIncidenceActions( false ); | 1227 | enableIncidenceActions( false ); |
1228 | 1228 | ||
1229 | mNewSubTodoAction->setEnabled( false ); | 1229 | mNewSubTodoAction->setEnabled( false ); |
1230 | setCaptionToDates(); | 1230 | setCaptionToDates(); |
1231 | return; | 1231 | return; |
1232 | 1232 | ||
diff --git a/libkcal/phoneformat.cpp b/libkcal/phoneformat.cpp index 101db57..900fc04 100644 --- a/libkcal/phoneformat.cpp +++ b/libkcal/phoneformat.cpp | |||
@@ -281,25 +281,25 @@ ulong PhoneFormat::getCsum( const QStringList & attList) | |||
281 | //qDebug("csum: %d %s", cSum,dump.latin1()); | 281 | //qDebug("csum: %d %s", cSum,dump.latin1()); |
282 | 282 | ||
283 | return cSum; | 283 | return cSum; |
284 | 284 | ||
285 | } | 285 | } |
286 | //extern "C" GSM_Error GSM_InitConnection(GSM_StateMachine *s, int ReplyNum); | 286 | //extern "C" GSM_Error GSM_InitConnection(GSM_StateMachine *s, int ReplyNum); |
287 | #include <stdlib.h> | 287 | #include <stdlib.h> |
288 | #define DEBUGMODE false | 288 | #define DEBUGMODE false |
289 | bool PhoneFormat::load( Calendar *calendar, Calendar *existingCal) | 289 | bool PhoneFormat::load( Calendar *calendar, Calendar *existingCal) |
290 | { | 290 | { |
291 | 291 | ||
292 | QString fileName; | 292 | QString fileName; |
293 | #ifdef _WIN32_ | 293 | #ifdef DESKTOP_VERSION |
294 | fileName = locateLocal("tmp", "phonefile.vcs"); | 294 | fileName = locateLocal("tmp", "phonefile.vcs"); |
295 | #else | 295 | #else |
296 | fileName = "/tmp/phonefile.vcs"; | 296 | fileName = "/tmp/phonefile.vcs"; |
297 | #endif | 297 | #endif |
298 | QString command; | 298 | QString command; |
299 | if ( ! PhoneAccess::readFromPhone( fileName )) { | 299 | if ( ! PhoneAccess::readFromPhone( fileName )) { |
300 | return false; | 300 | return false; |
301 | } | 301 | } |
302 | VCalFormat vfload; | 302 | VCalFormat vfload; |
303 | vfload.setLocalTime ( true ); | 303 | vfload.setLocalTime ( true ); |
304 | qDebug("loading file ..."); | 304 | qDebug("loading file ..."); |
305 | 305 | ||
@@ -468,25 +468,25 @@ void PhoneFormat::copyTodo( Todo* to, Todo* from ) | |||
468 | #include <qcstring.h> | 468 | #include <qcstring.h> |
469 | 469 | ||
470 | void PhoneFormat::afterSave( Incidence* inc,const QString& id ,const QString& csum) | 470 | void PhoneFormat::afterSave( Incidence* inc,const QString& id ,const QString& csum) |
471 | { | 471 | { |
472 | inc->setID( mProfileName, id ); | 472 | inc->setID( mProfileName, id ); |
473 | inc->setCsum( mProfileName, csum); | 473 | inc->setCsum( mProfileName, csum); |
474 | inc->setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); | 474 | inc->setTempSyncStat( SYNC_TEMPSTATE_NEW_ID ); |
475 | 475 | ||
476 | } | 476 | } |
477 | 477 | ||
478 | bool PhoneFormat::writeToPhone( Calendar * calendar) | 478 | bool PhoneFormat::writeToPhone( Calendar * calendar) |
479 | { | 479 | { |
480 | #ifdef _WIN32_ | 480 | #ifdef DESKTOP_VERSION |
481 | QString fileName = locateLocal("tmp", "phonefile.vcs"); | 481 | QString fileName = locateLocal("tmp", "phonefile.vcs"); |
482 | #else | 482 | #else |
483 | QString fileName = "/tmp/phonefile.vcs"; | 483 | QString fileName = "/tmp/phonefile.vcs"; |
484 | #endif | 484 | #endif |
485 | 485 | ||
486 | VCalFormat vfsave; | 486 | VCalFormat vfsave; |
487 | vfsave.setLocalTime ( true ); | 487 | vfsave.setLocalTime ( true ); |
488 | QString id = calendar->timeZoneId(); | 488 | QString id = calendar->timeZoneId(); |
489 | calendar->setLocalTime(); | 489 | calendar->setLocalTime(); |
490 | if ( ! vfsave.save( calendar, fileName ) ) | 490 | if ( ! vfsave.save( calendar, fileName ) ) |
491 | return false; | 491 | return false; |
492 | calendar->setTimeZoneId( id ); | 492 | calendar->setTimeZoneId( id ); |
@@ -1 +1 @@ | |||
version = "1.9.8"; | version = "1.9.9"; | ||