author | zautrix <zautrix> | 2005-04-03 05:23:33 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2005-04-03 05:23:33 (UTC) |
commit | 4017b5fccc188c74e971c573dbb6154ce877807b (patch) (unidiff) | |
tree | 5a16af82fade8b5c3698f5d83a3248565ef8b3ff /kaddressbook/kabcore.h | |
parent | f6c8249db564c1276d4c7ed5ad88c6fbac361b8d (diff) | |
download | kdepimpi-4017b5fccc188c74e971c573dbb6154ce877807b.zip kdepimpi-4017b5fccc188c74e971c573dbb6154ce877807b.tar.gz kdepimpi-4017b5fccc188c74e971c573dbb6154ce877807b.tar.bz2 |
fixes
-rw-r--r-- | kaddressbook/kabcore.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kaddressbook/kabcore.h b/kaddressbook/kabcore.h index d89daee..4cef73a 100644 --- a/kaddressbook/kabcore.h +++ b/kaddressbook/kabcore.h | |||
@@ -201,325 +201,326 @@ class KABCore : public QWidget, public KSyncInterface | |||
201 | void deleteContacts(); | 201 | void deleteContacts(); |
202 | 202 | ||
203 | /** | 203 | /** |
204 | Deletes given contacts from the address book. | 204 | Deletes given contacts from the address book. |
205 | 205 | ||
206 | @param uids The uids of the contacts, which shall be deleted. | 206 | @param uids The uids of the contacts, which shall be deleted. |
207 | */ | 207 | */ |
208 | void deleteContacts( const QStringList &uids ); | 208 | void deleteContacts( const QStringList &uids ); |
209 | 209 | ||
210 | /** | 210 | /** |
211 | Copys the selected contacts into clipboard for later pasting. | 211 | Copys the selected contacts into clipboard for later pasting. |
212 | */ | 212 | */ |
213 | void copyContacts(); | 213 | void copyContacts(); |
214 | 214 | ||
215 | /** | 215 | /** |
216 | Cuts the selected contacts and stores them for later pasting. | 216 | Cuts the selected contacts and stores them for later pasting. |
217 | */ | 217 | */ |
218 | void cutContacts(); | 218 | void cutContacts(); |
219 | 219 | ||
220 | /** | 220 | /** |
221 | Paste contacts from clipboard into the address book. | 221 | Paste contacts from clipboard into the address book. |
222 | */ | 222 | */ |
223 | void pasteContacts(); | 223 | void pasteContacts(); |
224 | 224 | ||
225 | /** | 225 | /** |
226 | Paste given contacts into the address book. | 226 | Paste given contacts into the address book. |
227 | 227 | ||
228 | @param list The list of addressee, which shall be pasted. | 228 | @param list The list of addressee, which shall be pasted. |
229 | */ | 229 | */ |
230 | void pasteContacts( KABC::Addressee::List &list ); | 230 | void pasteContacts( KABC::Addressee::List &list ); |
231 | 231 | ||
232 | /** | 232 | /** |
233 | Sets the whoAmI contact, that is used by many other programs to | 233 | Sets the whoAmI contact, that is used by many other programs to |
234 | get personal information about the current user. | 234 | get personal information about the current user. |
235 | */ | 235 | */ |
236 | void setWhoAmI(); | 236 | void setWhoAmI(); |
237 | 237 | ||
238 | /** | 238 | /** |
239 | Displays the category dialog and applies the result to all | 239 | Displays the category dialog and applies the result to all |
240 | selected contacts. | 240 | selected contacts. |
241 | */ | 241 | */ |
242 | void setCategories(); | 242 | void setCategories(); |
243 | void manageCategories(); | 243 | void manageCategories(); |
244 | void editCategories(); | 244 | void editCategories(); |
245 | 245 | ||
246 | /** | 246 | /** |
247 | Sets the field list of the Incremental Search Widget. | 247 | Sets the field list of the Incremental Search Widget. |
248 | */ | 248 | */ |
249 | void setSearchFields( const KABC::Field::List &fields ); | 249 | void setSearchFields( const KABC::Field::List &fields ); |
250 | 250 | ||
251 | /** | 251 | /** |
252 | Search with the current search field for a contact, that matches | 252 | Search with the current search field for a contact, that matches |
253 | the given text, and selects it in the view. | 253 | the given text, and selects it in the view. |
254 | */ | 254 | */ |
255 | void incrementalSearch( const QString& text ); | 255 | void incrementalSearch( const QString& text ); |
256 | void incrementalSearchJump( const QString& text ); | 256 | void incrementalSearchJump( const QString& text ); |
257 | 257 | ||
258 | /** | 258 | /** |
259 | Marks the address book as modified. | 259 | Marks the address book as modified. |
260 | */ | 260 | */ |
261 | void setModified(); | 261 | void setModified(); |
262 | /** | 262 | /** |
263 | Marks the address book as modified without refreshing the view. | 263 | Marks the address book as modified without refreshing the view. |
264 | */ | 264 | */ |
265 | void setModifiedWOrefresh(); | 265 | void setModifiedWOrefresh(); |
266 | 266 | ||
267 | /** | 267 | /** |
268 | Marks the address book as modified concerning the argument. | 268 | Marks the address book as modified concerning the argument. |
269 | */ | 269 | */ |
270 | void setModified( bool modified ); | 270 | void setModified( bool modified ); |
271 | 271 | ||
272 | /** | 272 | /** |
273 | Returns whether the address book is modified. | 273 | Returns whether the address book is modified. |
274 | */ | 274 | */ |
275 | bool modified() const; | 275 | bool modified() const; |
276 | 276 | ||
277 | /** | 277 | /** |
278 | Called whenever an contact is modified in the contact editor | 278 | Called whenever an contact is modified in the contact editor |
279 | dialog or the quick edit. | 279 | dialog or the quick edit. |
280 | */ | 280 | */ |
281 | void contactModified( const KABC::Addressee &addr ); | 281 | void contactModified( const KABC::Addressee &addr ); |
282 | void addrModified( const KABC::Addressee &addr, bool updateDetails = true ); | 282 | void addrModified( const KABC::Addressee &addr, bool updateDetails = true ); |
283 | 283 | ||
284 | /** | 284 | /** |
285 | DCOP METHODS. | 285 | DCOP METHODS. |
286 | */ | 286 | */ |
287 | void addEmail( QString addr ); | 287 | void addEmail( QString addr ); |
288 | void importVCard( const KURL& url, bool showPreview ); | 288 | void importVCard( const KURL& url, bool showPreview ); |
289 | void importVCard( const QString& vCard, bool showPreview ); | 289 | void importVCard( const QString& vCard, bool showPreview ); |
290 | void newContact(); | 290 | void newContact(); |
291 | QString getNameByPhone( const QString& phone ); | 291 | QString getNameByPhone( const QString& phone ); |
292 | /** | 292 | /** |
293 | END DCOP METHODS | 293 | END DCOP METHODS |
294 | */ | 294 | */ |
295 | 295 | ||
296 | /** | 296 | /** |
297 | Saves the contents of the AddressBook back to disk. | 297 | Saves the contents of the AddressBook back to disk. |
298 | */ | 298 | */ |
299 | void save(); | 299 | void save(); |
300 | 300 | ||
301 | /** | 301 | /** |
302 | Undos the last command using the undo stack. | 302 | Undos the last command using the undo stack. |
303 | */ | 303 | */ |
304 | void undo(); | 304 | void undo(); |
305 | 305 | ||
306 | /** | 306 | /** |
307 | Redos the last command that was undone, using the redo stack. | 307 | Redos the last command that was undone, using the redo stack. |
308 | */ | 308 | */ |
309 | void redo(); | 309 | void redo(); |
310 | 310 | ||
311 | /** | 311 | /** |
312 | Shows the edit dialog for the given uid. If the uid is QString::null, | 312 | Shows the edit dialog for the given uid. If the uid is QString::null, |
313 | the method will try to find a selected addressee in the view. | 313 | the method will try to find a selected addressee in the view. |
314 | */ | 314 | */ |
315 | void editContact( const QString &uid /*US = QString::null*/ ); | 315 | void editContact( const QString &uid /*US = QString::null*/ ); |
316 | //US added a second method without defaultparameter | 316 | //US added a second method without defaultparameter |
317 | void editContact2(); | 317 | void editContact2(); |
318 | 318 | ||
319 | /** | 319 | /** |
320 | Shows or edits the detail view for the given uid. If the uid is QString::null, | 320 | Shows or edits the detail view for the given uid. If the uid is QString::null, |
321 | the method will try to find a selected addressee in the view. | 321 | the method will try to find a selected addressee in the view. |
322 | */ | 322 | */ |
323 | void executeContact( const QString &uid /*US = QString::null*/ ); | 323 | void executeContact( const QString &uid /*US = QString::null*/ ); |
324 | 324 | ||
325 | /** | 325 | /** |
326 | Launches the configuration dialog. | 326 | Launches the configuration dialog. |
327 | */ | 327 | */ |
328 | void openConfigDialog(); | 328 | void openConfigDialog(); |
329 | 329 | ||
330 | /** | 330 | /** |
331 | Launches the ldap search dialog. | 331 | Launches the ldap search dialog. |
332 | */ | 332 | */ |
333 | void openLDAPDialog(); | 333 | void openLDAPDialog(); |
334 | 334 | ||
335 | /** | 335 | /** |
336 | Creates a KAddressBookPrinter, which will display the print | 336 | Creates a KAddressBookPrinter, which will display the print |
337 | dialog and do the printing. | 337 | dialog and do the printing. |
338 | */ | 338 | */ |
339 | void print(); | 339 | void print(); |
340 | 340 | ||
341 | /** | 341 | /** |
342 | Registers a new GUI client, so plugins can register its actions. | 342 | Registers a new GUI client, so plugins can register its actions. |
343 | */ | 343 | */ |
344 | void addGUIClient( KXMLGUIClient *client ); | 344 | void addGUIClient( KXMLGUIClient *client ); |
345 | 345 | ||
346 | void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); | 346 | void requestForNameEmailUidList(const QString& sourceChannel, const QString& sessionuid); |
347 | void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); | 347 | void requestForDetails(const QString& sourceChannel, const QString& sessionuid, const QString& name, const QString& email, const QString& uid); |
348 | void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid); | 348 | void requestForBirthdayList(const QString& sourceChannel, const QString& sessionuid); |
349 | 349 | ||
350 | 350 | ||
351 | signals: | 351 | signals: |
352 | void contactSelected( const QString &name ); | 352 | void contactSelected( const QString &name ); |
353 | void contactSelected( const QPixmap &pixmap ); | 353 | void contactSelected( const QPixmap &pixmap ); |
354 | public slots: | 354 | public slots: |
355 | void recieve(QString cmsg ); | 355 | void recieve(QString cmsg ); |
356 | void getFile( bool success ); | 356 | void getFile( bool success ); |
357 | void syncFileRequest(); | 357 | void syncFileRequest(); |
358 | void setDetailsVisible( bool visible ); | 358 | void setDetailsVisible( bool visible ); |
359 | void setDetailsToState(); | 359 | void setDetailsToState(); |
360 | 360 | ||
361 | void saveSettings(); | 361 | void saveSettings(); |
362 | 362 | ||
363 | private slots: | 363 | private slots: |
364 | void updateToolBar(); | 364 | void updateToolBar(); |
365 | void updateMainWindow(); | 365 | void updateMainWindow(); |
366 | void receive( const QCString& cmsg, const QByteArray& data ); | 366 | void receive( const QCString& cmsg, const QByteArray& data ); |
367 | void toggleBeamReceive( ); | 367 | void toggleBeamReceive( ); |
368 | void disableBR(bool); | 368 | void disableBR(bool); |
369 | void setJumpButtonBarVisible( bool visible ); | 369 | void setJumpButtonBarVisible( bool visible ); |
370 | void setJumpButtonBar( bool visible ); | 370 | void setJumpButtonBar( bool visible ); |
371 | void setCaptionBack(); | 371 | void setCaptionBack(); |
372 | void resizeAndCallContactdialog(); | 372 | void resizeAndCallContactdialog(); |
373 | void callContactdialog(); | 373 | void callContactdialog(); |
374 | 374 | ||
375 | void importFromOL(); | 375 | void importFromOL(); |
376 | void extensionModified( const KABC::Addressee::List &list ); | 376 | void extensionModified( const KABC::Addressee::List &list ); |
377 | void extensionChanged( int id ); | 377 | void extensionChanged( int id ); |
378 | void clipboardDataChanged(); | 378 | void clipboardDataChanged(); |
379 | void updateActionMenu(); | 379 | void updateActionMenu(); |
380 | void configureKeyBindings(); | 380 | void configureKeyBindings(); |
381 | void removeVoice(); | 381 | void removeVoice(); |
382 | void setFormattedName(); | 382 | void setFormattedName(); |
383 | #ifdef KAB_EMBEDDED | 383 | #ifdef KAB_EMBEDDED |
384 | void configureResources(); | 384 | void configureResources(); |
385 | #endif //KAB_EMBEDDED | 385 | #endif //KAB_EMBEDDED |
386 | 386 | ||
387 | void slotEditorDestroyed( const QString &uid ); | 387 | void slotEditorDestroyed( const QString &uid ); |
388 | void configurationChanged(); | 388 | void configurationChanged(); |
389 | void addressBookChanged(); | 389 | void addressBookChanged(); |
390 | 390 | ||
391 | private: | 391 | private: |
392 | QString mEmailSourceChannel; | 392 | QString mEmailSourceChannel; |
393 | QString mEmailSourceUID; | ||
393 | void resizeEvent(QResizeEvent* e ); | 394 | void resizeEvent(QResizeEvent* e ); |
394 | bool mBRdisabled; | 395 | bool mBRdisabled; |
395 | #ifndef DESKTOP_VERSION | 396 | #ifndef DESKTOP_VERSION |
396 | QCopChannel* infrared; | 397 | QCopChannel* infrared; |
397 | #endif | 398 | #endif |
398 | QTimer *mMessageTimer; | 399 | QTimer *mMessageTimer; |
399 | void initGUI(); | 400 | void initGUI(); |
400 | void initActions(); | 401 | void initActions(); |
401 | QString getPhoneFile(); | 402 | QString getPhoneFile(); |
402 | 403 | ||
403 | AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, | 404 | AddresseeEditorDialog *createAddresseeEditorDialog( QWidget *parent, |
404 | const char *name = 0 ); | 405 | const char *name = 0 ); |
405 | 406 | ||
406 | KXMLGUIClient *mGUIClient; | 407 | KXMLGUIClient *mGUIClient; |
407 | 408 | ||
408 | KABC::AddressBook *mAddressBook; | 409 | KABC::AddressBook *mAddressBook; |
409 | 410 | ||
410 | ViewManager *mViewManager; | 411 | ViewManager *mViewManager; |
411 | // QSplitter *mDetailsSplitter; | 412 | // QSplitter *mDetailsSplitter; |
412 | KDGanttMinimizeSplitter *mExtensionBarSplitter; | 413 | KDGanttMinimizeSplitter *mExtensionBarSplitter; |
413 | ViewContainer *mDetails; | 414 | ViewContainer *mDetails; |
414 | KDGanttMinimizeSplitter* mMiniSplitter; | 415 | KDGanttMinimizeSplitter* mMiniSplitter; |
415 | XXPortManager *mXXPortManager; | 416 | XXPortManager *mXXPortManager; |
416 | JumpButtonBar *mJumpButtonBar; | 417 | JumpButtonBar *mJumpButtonBar; |
417 | IncSearchWidget *mIncSearchWidget; | 418 | IncSearchWidget *mIncSearchWidget; |
418 | ExtensionManager *mExtensionManager; | 419 | ExtensionManager *mExtensionManager; |
419 | 420 | ||
420 | KCMultiDialog *mConfigureDialog; | 421 | KCMultiDialog *mConfigureDialog; |
421 | 422 | ||
422 | #ifndef KAB_EMBEDDED | 423 | #ifndef KAB_EMBEDDED |
423 | LDAPSearchDialog *mLdapSearchDialog; | 424 | LDAPSearchDialog *mLdapSearchDialog; |
424 | #endif //KAB_EMBEDDED | 425 | #endif //KAB_EMBEDDED |
425 | // QDict<AddresseeEditorDialog> mEditorDict; | 426 | // QDict<AddresseeEditorDialog> mEditorDict; |
426 | AddresseeEditorDialog *mEditorDialog; | 427 | AddresseeEditorDialog *mEditorDialog; |
427 | bool mReadWrite; | 428 | bool mReadWrite; |
428 | bool mModified; | 429 | bool mModified; |
429 | bool mIsPart; | 430 | bool mIsPart; |
430 | bool mMultipleViewsAtOnce; | 431 | bool mMultipleViewsAtOnce; |
431 | 432 | ||
432 | 433 | ||
433 | //US file menu | 434 | //US file menu |
434 | KAction *mActionMail; | 435 | KAction *mActionMail; |
435 | KAction *mActionBeam; | 436 | KAction *mActionBeam; |
436 | KToggleAction *mActionBR; | 437 | KToggleAction *mActionBR; |
437 | KAction *mActionExport2phone; | 438 | KAction *mActionExport2phone; |
438 | KAction* mActionPrint; | 439 | KAction* mActionPrint; |
439 | KAction* mActionPrintDetails; | 440 | KAction* mActionPrintDetails; |
440 | KAction* mActionNewContact; | 441 | KAction* mActionNewContact; |
441 | KAction *mActionSave; | 442 | KAction *mActionSave; |
442 | KAction *mActionEditAddressee; | 443 | KAction *mActionEditAddressee; |
443 | KAction *mActionMailVCard; | 444 | KAction *mActionMailVCard; |
444 | KAction *mActionBeamVCard; | 445 | KAction *mActionBeamVCard; |
445 | 446 | ||
446 | KAction *mActionQuit; | 447 | KAction *mActionQuit; |
447 | 448 | ||
448 | //US edit menu | 449 | //US edit menu |
449 | KAction *mActionCopy; | 450 | KAction *mActionCopy; |
450 | KAction *mActionCut; | 451 | KAction *mActionCut; |
451 | KAction *mActionPaste; | 452 | KAction *mActionPaste; |
452 | KAction *mActionSelectAll; | 453 | KAction *mActionSelectAll; |
453 | KAction *mActionUndo; | 454 | KAction *mActionUndo; |
454 | KAction *mActionRedo; | 455 | KAction *mActionRedo; |
455 | KAction *mActionDelete; | 456 | KAction *mActionDelete; |
456 | 457 | ||
457 | //US settings menu | 458 | //US settings menu |
458 | KAction *mActionConfigResources; | 459 | KAction *mActionConfigResources; |
459 | KAction *mActionConfigKAddressbook; | 460 | KAction *mActionConfigKAddressbook; |
460 | KAction *mActionConfigShortcuts; | 461 | KAction *mActionConfigShortcuts; |
461 | KAction *mActionConfigureToolbars; | 462 | KAction *mActionConfigureToolbars; |
462 | KAction *mActionKeyBindings; | 463 | KAction *mActionKeyBindings; |
463 | KToggleAction *mActionJumpBar; | 464 | KToggleAction *mActionJumpBar; |
464 | KToggleAction *mActionDetails; | 465 | KToggleAction *mActionDetails; |
465 | KAction *mActionWhoAmI; | 466 | KAction *mActionWhoAmI; |
466 | KAction *mActionCategories; | 467 | KAction *mActionCategories; |
467 | KAction *mActionEditCategories; | 468 | KAction *mActionEditCategories; |
468 | KAction *mActionManageCategories; | 469 | KAction *mActionManageCategories; |
469 | KAction *mActionAboutKAddressbook; | 470 | KAction *mActionAboutKAddressbook; |
470 | KAction *mActionLicence; | 471 | KAction *mActionLicence; |
471 | KAction *mActionFaq; | 472 | KAction *mActionFaq; |
472 | KAction *mActionWN; | 473 | KAction *mActionWN; |
473 | KAction *mActionSyncHowto; | 474 | KAction *mActionSyncHowto; |
474 | KAction *mActionKdeSyncHowto; | 475 | KAction *mActionKdeSyncHowto; |
475 | KAction *mActionMultiSyncHowto; | 476 | KAction *mActionMultiSyncHowto; |
476 | 477 | ||
477 | KAction *mActionDeleteView; | 478 | KAction *mActionDeleteView; |
478 | 479 | ||
479 | QPopupMenu *viewMenu; | 480 | QPopupMenu *viewMenu; |
480 | QPopupMenu *filterMenu; | 481 | QPopupMenu *filterMenu; |
481 | QPopupMenu *settingsMenu; | 482 | QPopupMenu *settingsMenu; |
482 | QPopupMenu *changeMenu; | 483 | QPopupMenu *changeMenu; |
483 | QPopupMenu *beamMenu; | 484 | QPopupMenu *beamMenu; |
484 | //US QAction *mActionSave; | 485 | //US QAction *mActionSave; |
485 | QPopupMenu *ImportMenu; | 486 | QPopupMenu *ImportMenu; |
486 | QPopupMenu *ExportMenu; | 487 | QPopupMenu *ExportMenu; |
487 | //LR additional methods | 488 | //LR additional methods |
488 | KAction *mActionRemoveVoice; | 489 | KAction *mActionRemoveVoice; |
489 | KAction *mActionSetFormattedName; | 490 | KAction *mActionSetFormattedName; |
490 | KAction * mActionImportOL; | 491 | KAction * mActionImportOL; |
491 | 492 | ||
492 | #ifndef KAB_EMBEDDED | 493 | #ifndef KAB_EMBEDDED |
493 | KAddressBookService *mAddressBookService; | 494 | KAddressBookService *mAddressBookService; |
494 | #endif //KAB_EMBEDDED | 495 | #endif //KAB_EMBEDDED |
495 | 496 | ||
496 | class KABCorePrivate; | 497 | class KABCorePrivate; |
497 | KABCorePrivate *d; | 498 | KABCorePrivate *d; |
498 | //US bool mBlockSaveFlag; | 499 | //US bool mBlockSaveFlag; |
499 | 500 | ||
500 | #ifdef KAB_EMBEDDED | 501 | #ifdef KAB_EMBEDDED |
501 | KAddressBookMain *mMainWindow; // should be the same like mGUIClient | 502 | KAddressBookMain *mMainWindow; // should be the same like mGUIClient |
502 | #endif //KAB_EMBEDDED | 503 | #endif //KAB_EMBEDDED |
503 | 504 | ||
504 | //this are the overwritten callbackmethods from the syncinterface | 505 | //this are the overwritten callbackmethods from the syncinterface |
505 | virtual bool sync(KSyncManager* manager, QString filename, int mode); | 506 | virtual bool sync(KSyncManager* manager, QString filename, int mode); |
506 | virtual bool syncExternal(KSyncManager* manager, QString resource); | 507 | virtual bool syncExternal(KSyncManager* manager, QString resource); |
507 | virtual void removeSyncInfo( QString syncProfile); | 508 | virtual void removeSyncInfo( QString syncProfile); |
508 | bool syncPhone(); | 509 | bool syncPhone(); |
509 | void message( QString m , bool startTimer = true); | 510 | void message( QString m , bool startTimer = true); |
510 | 511 | ||
511 | // LR ******************************* | 512 | // LR ******************************* |
512 | // sync stuff! | 513 | // sync stuff! |
513 | QString sentSyncFile(); | 514 | QString sentSyncFile(); |
514 | QPopupMenu *syncMenu; | 515 | QPopupMenu *syncMenu; |
515 | KSyncManager* syncManager; | 516 | KSyncManager* syncManager; |
516 | int mGlobalSyncMode; | 517 | int mGlobalSyncMode; |
517 | bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode); | 518 | bool synchronizeAddressbooks( KABC::AddressBook* local, KABC::AddressBook* remote,int mode); |
518 | KABC::Addressee getLastSyncAddressee(); | 519 | KABC::Addressee getLastSyncAddressee(); |
519 | QDateTime mLastAddressbookSync; | 520 | QDateTime mLastAddressbookSync; |
520 | int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full ); | 521 | int takeAddressee( KABC::Addressee* local, KABC::Addressee* remote, int mode , bool full ); |
521 | // ********************* | 522 | // ********************* |
522 | 523 | ||
523 | }; | 524 | }; |
524 | 525 | ||
525 | #endif | 526 | #endif |