Files
libreoffice/sw/source/ui/uiview/viewsrch.cxx
Ivo Hinkelmann f09110237a CWS-TOOLING: integrate CWS layoutdialogs2
2009-04-09 10:11:14 +0200 mba  r270680 : defective merge sets seem to have brought config_office back
2009-04-02 18:00:52 +0200 mba  r270429 : #i100503#: make tralay work without LD_LIBRARY_PATH
2009-04-01 13:27:58 +0200 mba  r270320 : warning on Solaris fixed
2009-03-31 22:15:03 +0200 mba  r270293 : CWS-TOOLING: rebase CWS layoutdialogs2 to trunk@270033 (milestone: DEV300:m45)
2009-03-16 13:05:08 +0100 mba  r269526 : fixed some compiler warnings of the Sun compiler
2009-03-11 15:32:42 +0100 mba  r269337 : some problems for ENABLE_LAYOUT fixed
2009-03-09 16:05:32 +0100 mba  r269197 : merge conflict solved
2009-03-09 15:09:55 +0100 mba  r269194 : merge conflict solved
2009-03-09 15:09:35 +0100 mba  r269193 : merge conflict solved
2009-03-06 22:12:47 +0100 mba  r269052 : compilation error fixed
2009-03-06 17:36:37 +0100 mba  r269033 : integer warning fixed
2009-03-06 10:31:19 +0100 mba  r268983 : CWS-TOOLING: rebase CWS layoutdialogs2 to trunk@268395 (milestone: DEV300:m42)
2009-03-03 20:03:59 +0100 jcn  r268777 : Add Notes checkbox to find-and-replace dialog in anticipation of m40 resync.
2009-03-03 15:56:20 +0100 jcn  r268737 : Apply layout-find-dialog-crash-fix.diff -- fixes crasher.
From http://svn.gnome.org/viewvc/ooo-build?view=revision&revision=15378
2009-02-06 17:41:24 +0100 mba  r267479 : arrrrgh - svx headers must be included behind the magic define
2009-02-05 19:44:42 +0100 mba  r267439 : seems that msvc preprocessor is thick as a brick
2009-02-05 15:15:16 +0100 mba  r267425 : pch added
2009-02-05 08:14:01 +0100 mba  r267409 : double defined symbols fixed
2009-02-05 08:13:14 +0100 mba  r267408 : compile Languagebox and FontListbox with ENABLE_LAYOUT
2009-02-05 08:07:35 +0100 mba  r267406 : warning fixed
2009-02-05 08:06:42 +0100 mba  r267405 : warnings and errors fixed
2009-01-30 15:51:52 +0100 mba  r267206 : export Container class to compile code in sfx2
2009-01-30 15:51:14 +0100 mba  r267205 : remove LAYOUT_EXPERIMENTAL from sfx2, everything now compiles with ENABLE_LAYOUT
2009-01-28 17:01:27 +0100 mba  r267069 : fixed namespace problems in sfx2
2009-01-28 16:59:48 +0100 mba  r267068 : fixed namespace problems
2009-01-24 13:57:06 +0100 mba  r266877 : move svx stuff to experimental
2009-01-24 13:56:11 +0100 mba  r266876 : move svx stuff to experimental
2009-01-24 13:52:09 +0100 mba  r266875 : put sfx stuff into experimental
2009-01-24 13:28:08 +0100 mba  r266874 : put sfx stuff into experimental
2009-01-24 13:26:38 +0100 mba  r266873 : help msvc++ compiler a bit
2009-01-24 13:24:43 +0100 mba  r266872 : warning removed
2009-01-24 13:23:21 +0100 mba  r266871 : moved svx stuff to svx; put sfx stuff into experimental
2009-01-24 13:22:04 +0100 mba  r266870 : moved svx stuff to svx
2009-01-05 16:35:34 +0100 jcn  r265879 : config_office/configure: Regenerate.  Fixes naive builds.
2008-12-17 16:06:25 +0100 jcn  r265638 : Wordcount: minor HIG tweaks.
2008-12-17 16:06:21 +0100 jcn  r265637 : Zoom: minor HIG spacing tweaks.
2008-12-17 16:06:16 +0100 jcn  r265636 : Zoom: fix align-test and update zoom.xml.
2008-12-17 16:06:12 +0100 jcn  r265635 : Zoom: add align-test.xml to illustrate zoom alignment bug.
2008-12-17 16:06:07 +0100 jcn  r265634 : Find-and-Replace: request font-style-name="Bold", does not seem to work.
2008-12-17 16:06:03 +0100 jcn  r265633 : Find-and-Replace: Add alignment for combobox labels.
2008-12-17 16:05:59 +0100 jcn  r265632 : Find-and-Replace: Replace pairs of <flow> with <align>. Fixes ugly non-emptiness of more-<hbox>.
2008-12-17 16:05:56 +0100 jcn  r265631 : Find-and-Replace: add nice 12pt border.
2008-12-17 16:05:51 +0100 jcn  r265630 : Find-and-Replace: also add rowsep at lower fixedline.
2008-12-17 16:05:47 +0100 jcn  r265629 : Find-and-Replace: Add poor man's colsep and rowsep substitute spaces.
2008-12-17 16:05:43 +0100 jcn  r265628 : Find-and-Replace: use <vbox cnt:x-expand="false"> for buttons.
2008-12-17 16:05:40 +0100 jcn  r265627 : Find-and-Replace: add <vbox>s and use cnt:expand="false" to stop vertical button expansion.
2008-12-17 16:05:36 +0100 jcn  r265626 : Find-and-Replace: use sc icon. Fixes FIND button height.
2008-12-17 16:05:31 +0100 jcn  r265625 : Bugfix have empty/invisible containers not take up space.
2008-12-17 16:05:27 +0100 jcn  r265624 : Find-and-replace: Fix/remove most property errors.
2008-12-17 16:05:23 +0100 jcn  r265623 : Table: make x, y expand default.
2008-12-17 16:05:18 +0100 jcn  r265622 : Use OSL_TRACE rather than printf. Fixes warning visibility.
2008-12-17 16:05:14 +0100 jcn  r265621 : Boxtest: add <vbox><table x-expand="true"> pair to trigger property errors.
2008-12-17 16:05:10 +0100 jcn  r265620 : Junk extra <table> from boxtest. Fixes visual output.
2008-12-17 16:05:05 +0100 jcn  r265619 : Eradicate PROPHELPER_SET_INFO: junk static caching.
2008-12-17 16:05:01 +0100 jcn  r265618 : Update awk+sed localize generation rules. Fixes multiple (wrong) titles in Find & Replace.
2008-12-17 16:04:56 +0100 jcn  r265617 : Use dash (-) instead of underscore (_) to separate language modifiers. Fixes en_GB etc.
2008-12-17 16:04:51 +0100 jcn  r265616 : Add "defbutton=true" to dialogs. Fixes ENTER doing default action: n#439222.
2008-12-17 16:04:45 +0100 jcn  r265615 : Michael's new table-based find and replace.
2008-12-17 16:04:40 +0100 jcn  r265614 : Apply Michael's boxtest patch.
2008-12-17 16:04:36 +0100 jcn  r265613 : Make sort-options experimental. Part II. Fixes crasher n-44.patch. Fixes crasher: n#442036.
2008-12-17 16:04:31 +0100 jcn  r265612 : Make sort-options experimental. Part I.
2008-12-17 16:04:26 +0100 jcn  r265611 : Add --enable-layout-experimental configure switch. Part II. Typo in configure.in, add set_soenv entry.
2008-12-17 16:04:21 +0100 jcn  r265610 : Add --enable-layout-experimental configure switch. Default off.
2008-11-26 16:25:18 +0100 mba  r264417 : fixed compiler warnings
2008-11-26 15:52:02 +0100 mba  r264407 : fixed compiler warnings
2008-11-26 15:40:44 +0100 mba  r264402 : fixed compiler warnings
2008-11-26 14:50:47 +0100 mba  r264395 : fixed compiler warnings
2008-11-26 14:39:12 +0100 mba  r264393 : fixed compiler warnings
2008-11-26 14:38:49 +0100 mba  r264392 : fixed compiler warnings
2008-11-26 14:38:31 +0100 mba  r264391 : fixed compiler warnings
2008-11-26 14:38:13 +0100 mba  r264390 : fixed compiler warnings
2008-11-26 14:37:38 +0100 mba  r264389 : fixed compiler warnings
2008-11-26 10:11:17 +0100 mba  r264352 : fixed compiler warnings
2008-11-26 10:06:12 +0100 mba  r264351 : fixed compiler warnings
2008-11-26 09:58:28 +0100 mba  r264347 : fixed compiler warnings
2008-11-26 09:50:41 +0100 mba  r264345 : fixed compiler warnings
2008-11-26 09:46:10 +0100 mba  r264343 : fixed compiler warnings
2008-10-22 10:57:09 +0200 mba  r262584 : fixed small error resulting from resolved merged conflicts
2008-10-22 10:56:21 +0200 mba  r262583 : fixed some small errors resulting from resolved merged conflicts
2008-10-20 19:29:27 +0200 jcn  r262557 : layoutdialogs2: Remove stray patches.
2008-10-20 19:29:22 +0200 jcn  r262556 : layoutdialogs2: Force resize also on second show after hiding.
2008-10-20 19:29:17 +0200 jcn  r262555 : layoutdialogs2: Do not trigger handlers for api calls.
2008-10-20 19:29:13 +0200 jcn  r262554 : layoutdialogs2: Use disable/enable instead of hide/show for currency box. Fixes monster lisbox.
2008-10-20 19:29:09 +0200 jcn  r262553 : layoutdialogs2: Use line-count instead of linecount. Fixes sizing of listboxes.
2008-10-20 19:29:04 +0200 jcn  r262552 : layoutdialogs2: vcl: respect line-count also for non-dropdown listbox.
2008-10-20 19:28:59 +0200 jcn  r262551 : layoutdialogs2: Update to svn:r14142 patched.
2008-10-20 19:28:51 +0200 jcn  r262550 : layoutdialogs2: Manual tweaks in number-format.xml.
2008-10-20 19:28:45 +0200 jcn  r262549 : layoutdialogs2: Integrate Number Format tabpage into Format Cell dialog.
2008-10-20 19:28:36 +0200 jcn  r262548 : layoutdialogs2: Windows build fixes. Thanks Noel.
2008-10-20 19:28:31 +0200 jcn  r262547 : layoutdialogs2: Layout Format Cells/Number Format tabpage.
2008-10-20 19:28:24 +0200 jcn  r262546 : layoutdialogs2: Remove sc/uiconfig/layout/localize.sdf.
2008-10-20 19:28:20 +0200 jcn  r262545 : layoutdialogs2: --enable-debug link fix
2008-10-20 19:28:16 +0200 jcn  r262544 : layoutdialogs2: Add missing localize.sdf dependency. Thanks, Petr.
2008-10-20 19:28:12 +0200 jcn  r262543 : layoutdialogs2: svx linx fixlet.
2008-10-20 19:28:06 +0200 jcn  r262542 : layoutdialogs2: Move layout/* to layout/core, vclcompat to layout/vcl. Distribute layout headers. Fixes sfx2 layout core includes.
2008-10-20 19:27:58 +0200 jcn  r262541 : layoutdialogs2: Build fix for --enable-layout.
2008-10-20 19:27:54 +0200 jcn  r262540 : layoutdialogs2: Generate localize.sdf files in uiconfig.
2008-10-20 19:27:47 +0200 jcn  r262539 : layoutdialogs2: Minimalize deprecated String use further by using OUString.
2008-10-20 19:27:42 +0200 jcn  r262538 : layoutdialogs2: Implement LocalizedString.GetToken and use it for aCalcBtn. Fixes empty label.
2008-10-20 19:27:36 +0200 jcn  r262537 : layoutdialogs2: Add layout::Sfx*Dialog wrapper.
2008-10-20 19:27:29 +0200 jcn  r262536 : layoutdialogs2: Introduce Closing*Dialog wrappers fixing closing with ESC.
2008-10-20 19:27:24 +0200 jcn  r262535 : layoutdialogs2: Support <sfxmodelessdialog> from sfx2.
2008-10-20 19:27:17 +0200 jcn  r262534 : layoutdialogs2: Rename find-&-replace.xml to find-and-replace.xml. Fixes split build with failing solenv patch.
2008-10-20 19:27:12 +0200 jcn  r262533 : layoutdialogs2: Do not build sfx2 when --disable-layout.
2008-10-20 19:27:08 +0200 jcn  r262532 : layoutdialogs2: Ignore ja/ too.
2008-10-20 19:27:04 +0200 jcn  r262531 : layoutdialogs2: Add destructors for VCLXButton, VCLXComboBox.
2008-10-20 19:26:58 +0200 jcn  r262530 : layoutdialogs2: Make dialogs closable with ESC: wordcount, zoom, message-box, move-copy-sheet, insert-sheet.
2008-10-20 19:26:52 +0200 jcn  r262529 : layoutdialogs2: Move some implementations to .cxx.
2008-10-20 19:26:47 +0200 jcn  r262528 : layoutdialogs2: Fix simple editor crasher.
2008-10-20 19:26:43 +0200 jcn  r262527 : layoutdialogs2: Further cleanup: remove clean & delete from wrapperGone.
2008-10-20 19:26:38 +0200 jcn  r262526 : layoutdialogs2: Add reset logic to ~WindowImpl, plugs ComboBox and Dialog leaks.
2008-10-20 19:26:34 +0200 jcn  r262525 : layoutdialogs2: Interesting hack: only leaks ::ComboBox and ::Dialog.
2008-10-20 19:26:29 +0200 jcn  r262524 : layoutdialogs2: Build fix.
2008-10-20 19:26:24 +0200 jcn  r262523 : layoutdialogs2: Find&Replace duplicate disposal workaround inside layout.
2008-10-20 19:26:19 +0200 jcn  r262522 : layoutdialogs2: Revert "Terrible crasher-fix hack. Do not dispose Dialog or any FocusHandler owners."
This reverts commit 5222b5b123a2e6c88494983bd875de574f365bae.
2008-10-20 19:26:14 +0200 jcn  r262521 : layoutdialogs2: Terrible crasher-fix hack. Do not dispose Dialog or any FocusHandler owners.
2008-10-20 19:26:08 +0200 jcn  r262520 : layoutdialogs2: Revert "ComboBox: crash down to (Dialog's) VCLXWindowImpl::DestroyOutputDevice();"
This reverts commit b423129aca295e84ef5986149b6ee71eb7ba0aa3.
2008-10-20 19:26:03 +0200 jcn  r262519 : layoutdialogs2: ComboBox: crash down to (Dialog's) VCLXWindowImpl::DestroyOutputDevice();
2008-10-20 19:25:57 +0200 jcn  r262518 : layoutdialogs2: Handler and debug cleanup.
2008-10-20 19:25:52 +0200 jcn  r262517 : layoutdialogs2: Minimally remove FixedText workaround.
2008-10-20 19:25:47 +0200 jcn  r262516 : layoutdialogs2: Preparations for FocusHdl fix.
2008-10-20 19:25:42 +0200 jcn  r262515 : layoutdialogs2: Remove vclxwindows patch by using handler hackery.
2008-10-20 19:25:38 +0200 jcn  r262514 : layoutdialogs2: Don't call deleted dialog. Hdler reset tweaks. Fixes Find&Replace.
2008-10-20 19:25:34 +0200 jcn  r262513 : layoutdialogs2: Hdler and disposing cleanups.
2008-10-20 19:25:29 +0200 jcn  r262512 : layoutdialogs2: Prevent Find&Replace window from being deleted twice.
2008-10-20 19:25:24 +0200 jcn  r262511 : layoutdialogs2: Add destructor to SvxSearchDialogWrapper. Fixes second invocation crasher.
2008-10-20 19:25:19 +0200 jcn  r262510 : layoutdialogs2: Make Find&Replace work (once) with minimal client code changes.
2008-10-20 19:25:13 +0200 jcn  r262509 : layoutdialogs2: Add ComboBox/FixedText debug switching.
2008-10-20 19:25:08 +0200 jcn  r262508 : layoutdialogs2: Add destructors resetting handlers.
2008-10-20 19:25:03 +0200 jcn  r262507 : layoutdialogs2: Static cast fixes.
2008-10-20 19:24:59 +0200 jcn  r262506 : layoutdialogs2: Always set button handler. Fixes pushbuttons.
2008-10-20 19:24:55 +0200 jcn  r262505 : layoutdialogs2: Revert "Move FocusHandlers from Control down to ListBox, ComboBox, FixedText."
This reverts commit 8bc4b991539a74373bfb1ef8792276ada8c958e4.
2008-10-20 19:24:50 +0200 jcn  r262504 : layoutdialogs2: Disable Timer for ENABLE_LAYOUT.
2008-10-20 19:24:45 +0200 jcn  r262503 : layoutdialogs2: Move FocusHandlers from Control down to ListBox, ComboBox, FixedText.
2008-10-20 19:24:40 +0200 jcn  r262502 : layoutdialogs2: Wider small symbol.
2008-10-20 19:24:36 +0200 jcn  r262501 : layoutdialogs2: Listener and SetHandler cleanup.
2008-10-20 19:24:31 +0200 jcn  r262500 : layoutdialogs2: Clear mxWindow upon deletion. Fixes Find&Replace crasher.
2008-10-20 19:24:27 +0200 jcn  r262499 : layoutdialogs2: Typo, fixes build.
2008-10-20 19:24:22 +0200 jcn  r262498 : layoutdialogs2: Ignore .log files too.
2008-10-20 19:24:19 +0200 jcn  r262497 : layoutdialogs2: By default, work around #define protected public Resource hack.
2008-10-20 19:24:15 +0200 jcn  r262496 : layoutdialogs2: Sw:Find&Replace: Remove wrong static cast. Fixes crasher.
2008-10-20 19:24:10 +0200 jcn  r262495 : layoutdialogs2: Find&Replace: do not vertically expand buttons, add title.
2008-10-20 19:24:06 +0200 jcn  r262494 : layoutdialogs2: Find&Replace: Remove need for ResId, set help id.
2008-10-20 19:24:01 +0200 jcn  r262493 : layoutdialogs2: MoreButton: redraw upon resize, fix labels, use small symbol.
2008-10-20 19:23:57 +0200 jcn  r262492 : layoutdialogs2: Support setting and querying small symbol on vcl:button.
2008-10-20 19:23:52 +0200 jcn  r262491 : layoutdialogs2: Support redrawing of only this, make parent optional.
2008-10-20 19:23:48 +0200 jcn  r262490 : layoutdialogs2: Add Kohei's wfield patch https://bugzilla.novell.com/attachment.cgi?id=235398. Fixes n#417840.
2008-10-20 19:23:44 +0200 jcn  r262489 : layoutdialogs2: Redraw [parent] upon first time visibility.
Fixes weird listbox dropdown sizing in Find & Replace.
2008-10-20 19:23:39 +0200 jcn  r262488 : layoutdialogs2: Add manual layouting for Find & Replace.
2008-10-20 19:23:35 +0200 jcn  r262487 : layoutdialogs2: src2xml: use label instead of text for buttons.
Run on Find & Replace; fixes button texts.
2008-10-20 19:23:31 +0200 jcn  r262486 : layoutdialogs2: Add initial auto-translated find-&-replace-.xml.
2008-10-20 19:23:26 +0200 jcn  r262485 : layoutdialogs2: layout importer: handle ModelessDialog.
Fixes Find & Replace parsing error.
2008-10-20 19:23:22 +0200 jcn  r262484 : layoutdialogs2: src2xml: Handle multiple widgets at same x,y.
Fixes silent removal of widgets in Find & Replace dialog.
2008-10-20 19:23:18 +0200 jcn  r262483 : layoutdialogs2: src2xml: Handle hide= attribute, translate to show=.
2008-10-20 19:23:14 +0200 jcn  r262482 : layoutdialogs2: Only use __PRETTY_FUNCTION__ on gcc. Fixes Windows build. Thanks Tor!
2008-10-20 19:23:10 +0200 jcn  r262481 : layoutdialogs2: Add two missing SAL_CALL decorations. Fixes Windows build. Thanks Tor!
2008-10-20 19:23:05 +0200 jcn  r262480 : layoutdialogs2: Build fixes for layout'ed Find & Replace dialog.
2008-10-20 19:22:54 +0200 jcn  r262479 : layoutdialogs2: Do not use layout::SfxTabDialog for now.
2008-10-20 19:22:47 +0200 jcn  r262478 : layoutdialogs2: Crufty sizing tweaks.
2008-10-20 19:22:42 +0200 jcn  r262477 : layoutdialogs2: More debugging cleanups.
2008-10-20 19:22:37 +0200 jcn  r262476 : layoutdialogs2: More cleanups that result in constant manual resizing...
2008-10-20 19:22:33 +0200 jcn  r262475 : layoutdialogs2: Tabdlg cleanups.
2008-10-20 19:22:28 +0200 jcn  r262474 : layoutdialogs2: Add GetOptimalSize () to InPlug. Fixes auto-sizing of tabcontrol.
2008-10-20 19:22:21 +0200 jcn  r262473 : layoutdialogs2: Get VCLXTabControl to resize automatically (too tall), not mousable.
2008-10-20 19:22:13 +0200 jcn  r262472 : layoutdialogs2: Respect show=false property; do not show everything.
2008-10-20 19:22:09 +0200 jcn  r262471 : layoutdialogs2: Add show=false on buttons. Fixes displaying everything.
2008-10-20 19:22:05 +0200 jcn  r262470 : layoutdialogs2: Move some code to reduce namespace and #if hacking.
2008-10-20 19:22:00 +0200 jcn  r262469 : layoutdialogs2: Cleanup, remove unneeded #defines.
2008-10-20 19:21:56 +0200 jcn  r262468 : layoutdialogs2: Replace static casts with dynamic_cast, fixes layout::SfxTabDialog.
Explicitly add 2 tabpages while adding tabpages, instead of relying on ResId.
2008-10-20 19:21:51 +0200 jcn  r262467 : layoutdialogs2: Use cpp hacking to remove layout-tabdialog.hxx duplication.
2008-10-20 19:21:45 +0200 jcn  r262466 : layoutdialogs2: Minimize diff between layout-tabdialog.hxx and tabdlg.hxx.
2008-10-20 19:21:41 +0200 jcn  r262465 : layoutdialogs2: Remove copy of SfxTabDialog; use cpp logic to create both flavours.
2008-10-20 19:21:36 +0200 jcn  r262464 : layoutdialogs2: Minimize diff between layout/sfxtabdialog.cxx and source/tabdlg.cxx.
This enables the next step: use cpp logic instead of code duplication.
2008-10-20 19:21:31 +0200 jcn  r262463 : layoutdialogs2: Hello world on layout::SfxTabDialog.
2008-10-20 19:21:24 +0200 jcn  r262462 : layoutdialogs2: Nice `Compiling:' message that shows the file being compiled.
2008-10-20 19:21:20 +0200 jcn  r262461 : layoutdialogs2: Use layout::SfxTabDialog for sort options.
2008-10-20 19:21:15 +0200 jcn  r262460 : layoutdialogs2: Update sort options tab.
2008-10-20 19:21:10 +0200 jcn  r262459 : layoutdialogs2: Add layout::SfxTabDialog.
2008-10-20 19:21:04 +0200 jcn  r262458 : layoutdialogs2: Cleanup previous attempt using layout::SfxTabPage == layout::TabPage.
2008-10-20 19:20:57 +0200 jcn  r262457 : layoutdialogs2: Windows 2003 compile fixes, i#92397.
2008-10-20 19:20:52 +0200 jcn  r262456 : layoutdialogs2: Set default radiogroup when none provided.
2008-10-20 19:20:48 +0200 jcn  r262455 : layoutdialogs2: Add radiogroup to sort-options. Fixes crasher.
2008-10-20 19:20:43 +0200 jcn  r262454 : layoutdialogs2: Cleanup ParentSet fix.
2008-10-20 19:20:36 +0200 jcn  r262453 : layoutdialogs2: Add debugging in ParentSet. Works standalone, not integrated.
2008-10-20 19:20:31 +0200 jcn  r262452 : layoutdialogs2: Revert "Have InPlug not derive from Window, but have as member."
This reverts commit 50ea26eec3fe14943f24900081ad923e72550345.
2008-10-20 19:20:25 +0200 jcn  r262451 : layoutdialogs2: Have InPlug not derive from Window, but have as member.
2008-10-20 19:20:20 +0200 jcn  r262450 : layoutdialogs2: Move layout plugin implementation from layout::SfxTabPage to InPlug.
2008-10-20 19:20:14 +0200 jcn  r262449 : layoutdialogs2: Get all widgets to display in sfxtabpage plugin with Window::SetParent hack.
2008-10-20 19:20:09 +0200 jcn  r262448 : layoutdialogs2: Two-button manual hello world with sfxtabpage plugin.
2008-10-20 19:20:03 +0200 jcn  r262447 : layoutdialogs2: WIP: layout::SfxTabPage derived from SfxTabPage.
2008-10-20 19:19:55 +0200 jcn  r262446 : layoutdialogs2: Always set parent after construction, fixes listbox dropdown.
2008-10-20 19:19:51 +0200 jcn  r262445 : layoutdialogs2: Fix radio button crasher.
2008-10-20 19:19:47 +0200 jcn  r262444 : layoutdialogs2: Implement ListBox method wrappers. Fixes filling of listbox.
2008-10-20 19:19:42 +0200 jcn  r262443 : layoutdialogs2: Convert Move/Copy sheet to layout engine.
2008-10-20 19:19:35 +0200 jcn  r262442 : layoutdialogs2: Also hide yes/no buttons if not used.
2008-10-20 19:19:31 +0200 jcn  r262441 : layoutdialogs2: Elaborate on changing client code.
2008-10-20 19:19:26 +0200 jcn  r262440 : layoutdialogs2: Implement winbits client-code compatibility for Message Boxes.
2008-10-20 19:19:21 +0200 jcn  r262439 : layoutdialogs2: Add localize.sdf to toolkit uiconfig. Fixes build.
2008-10-20 19:19:17 +0200 jcn  r262438 : layoutdialogs2: Do not use ti_layout twice in toolkit build.lst. Fixes build.
2008-10-20 19:19:13 +0200 jcn  r262437 : layoutdialogs2: Oops, also dist toolkit-layout.zip.
2008-10-20 19:19:09 +0200 jcn  r262436 : layoutdialogs2: Move layout.mk to solenv.
2008-10-20 19:19:03 +0200 jcn  r262435 : layoutdialogs2: Add handy TEST file.
2008-10-20 19:18:58 +0200 jcn  r262434 : layoutdialogs2: Implement MessageBox and wrappers ErrorBox, InfoBox, QueryBox, WarningBox.
2008-10-20 19:18:52 +0200 jcn  r262433 : layoutdialogs2: QueryBox without image used for Delete Sheet dialog.
2008-10-20 19:18:46 +0200 jcn  r262432 : layoutdialogs2: WIP QueryBox.
2008-10-20 19:18:39 +0200 jcn  r262431 : layoutdialogs2: Add insert-sheet localization.
2008-10-20 19:18:34 +0200 jcn  r262430 : layoutdialogs2: Run indent-region on zoom.xml, distribute it.
2008-10-20 19:18:30 +0200 jcn  r262429 : layoutdialogs2: Dist xml files too.
2008-10-20 19:18:26 +0200 jcn  r262428 : layoutdialogs2: Add insert-sheet.xml to workben.
2008-10-20 19:18:22 +0200 jcn  r262427 : layoutdialogs2: Update layout TODO.
2008-10-20 19:18:18 +0200 jcn  r262426 : layoutdialogs2: Cleanups and add comments.
2008-10-20 19:18:13 +0200 jcn  r262425 : layoutdialogs2: Keep RadioButtons::RadioButton callback at HEAD of list.
Fixes radiobutton grouping.
2008-10-20 19:18:07 +0200 jcn  r262424 : layoutdialogs2: Remove IMPORT_RADIOGROUP cruft.
2008-10-20 19:18:02 +0200 jcn  r262423 : layoutdialogs2: Have code check fire event for radio button.
Fixes radio button grouping.
2008-10-20 19:17:58 +0200 jcn  r262422 : layoutdialogs2: Enable IMPORT_RADIOGROUP flag.
2008-10-20 19:17:54 +0200 jcn  r262421 : layoutdialogs2: Add radio groups to zoom.xml.
2008-10-20 19:17:50 +0200 jcn  r262420 : layoutdialogs2: Move RadioGroup implementation to cxx file.
2008-10-20 19:17:45 +0200 jcn  r262419 : layoutdialogs2: Manually set help id for insert table.
2008-10-20 19:17:41 +0200 jcn  r262418 : layoutdialogs2: Cosmetic fixes for insert-sheet.
2008-10-20 19:17:37 +0200 jcn  r262417 : layoutdialogs2: FindAndRemove now also skips translation prefix.
Fixes setting of title etc. from nontranslated xml.
2008-10-20 19:17:32 +0200 jcn  r262416 : layoutdialogs2: Manually set help id for zoom and wordcount dialogs.
2008-10-20 19:17:27 +0200 jcn  r262415 : layoutdialogs2: Set help-id from xml.
2008-10-20 19:17:21 +0200 jcn  r262414 : layoutdialogs2: Move -DENABLE_LAYOUT from stray makefiles to settings.mk.
2008-10-20 19:17:13 +0200 jcn  r262413 : layoutdialogs2: Initial conversion of insert-sheet dialog.
2008-10-20 19:17:08 +0200 jcn  r262412 : layoutdialogs2: Add wrappers for {Get,Set}{Pointer,Text}.
2008-10-20 19:17:04 +0200 jcn  r262411 : layoutdialogs2: Toolkit layout dialog copy updates.
2008-10-20 19:16:59 +0200 jcn  r262410 : layoutdialogs2: Cleanup #include <layout*> disaster.
Fixes multiple inclusions of layout-pre, layout-post.
2008-10-20 19:16:53 +0200 jcn  r262409 : layoutdialogs2: Implement Get,Set{,Smart}HelpId ().
2008-10-20 19:16:49 +0200 jcn  r262408 : layoutdialogs2: Make some getters const.
2008-10-20 19:16:45 +0200 jcn  r262407 : layoutdialogs2: Manual tweaks for string-input.xml.
2008-10-20 19:16:40 +0200 jcn  r262406 : layoutdialogs2: Add string-input.xml.
2008-10-20 19:16:36 +0200 jcn  r262405 : layoutdialogs2: Add dummy implementation for SetHelpId etc.
2008-10-20 19:16:32 +0200 jcn  r262404 : layoutdialogs2: Actually say *what* file cannot be copied *where*. Sigh.
2008-10-20 19:16:27 +0200 jcn  r262403 : layoutdialogs2: Thinko in macro name. Fixes compilation of strindlg.cxx.
2008-10-20 19:16:22 +0200 jcn  r262402 : layoutdialogs2: Add layout includes to stringdlg and makefile.
2008-10-20 19:16:17 +0200 jcn  r262401 : layoutdialogs2: Add sc/uiconfig/layout/localize.sdf
2008-10-20 19:16:13 +0200 jcn  r262400 : layoutdialogs2: Oops, build sc/uiconfig/layout.
2008-10-20 19:16:09 +0200 jcn  r262399 : layoutdialogs2: Have virtual destructor on Context, delete TabPage when deleting TabDialog.
2008-10-20 19:16:04 +0200 jcn  r262398 : layoutdialogs2: Actually delete layout::TabPage objects when deleting SfxTabdialog.
2008-10-20 19:16:00 +0200 jcn  r262397 : layoutdialogs2: Workaround for second invocation crash of sort dialog options tab.
2008-10-20 19:15:56 +0200 jcn  r262396 : layoutdialogs2: Handle Reset button.
2008-10-20 19:15:51 +0200 jcn  r262395 : layoutdialogs2: Also install sc xml zip file.
2008-10-20 19:15:46 +0200 jcn  r262394 : layoutdialogs2: Integrate sort-options into sc.
2008-10-20 19:15:41 +0200 jcn  r262393 : layoutdialogs2: Revert "Fix sfx2 compile warnings."
This reverts commit 8b55d402af7bd217db35f67b02dc92f93f3ada5d.
2008-10-20 19:15:34 +0200 jcn  r262392 : layoutdialogs2: Remove debuging.
2008-10-20 19:15:30 +0200 jcn  r262391 : layoutdialogs2: Pass set argument to layout::TabPage. Fixes OO.o integration crasher.
2008-10-20 19:15:24 +0200 jcn  r262390 : layoutdialogs2: Ignore more.
2008-10-20 19:15:20 +0200 jcn  r262389 : layoutdialogs2: Oops, make just one (1) sort-options tab.
2008-10-20 19:15:15 +0200 jcn  r262388 : layoutdialogs2: Revert macroconf compile warnings.
2008-10-20 19:15:09 +0200 jcn  r262387 : layoutdialogs2: Fix sfx2 compile warnings.
2008-10-20 19:15:01 +0200 jcn  r262386 : layoutdialogs2: Collapsed tabpage and sort-options development.
2008-10-20 19:14:51 +0200 jcn  r262385 : layoutdialogs2: Make dev300/src680 install layout switchable at compile time.
2008-10-20 19:14:47 +0200 jcn  r262384 : layoutdialogs2: Update README, add README.
2008-10-20 19:14:43 +0200 jcn  r262383 : layoutdialogs2: Repainting, hiding stuff.
2008-10-20 19:14:38 +0200 jcn  r262382 : layoutdialogs2: Add allocateArea to VCLXTabPage.
2008-10-20 19:14:34 +0200 jcn  r262381 : layoutdialogs2: Revert "Use VCLXContainer as base for VCLXTabPage."
This reverts commit 06a984434d0d2c356fd0cdaf96d6d613d5147b7c.
2008-10-20 19:14:30 +0200 jcn  r262380 : layoutdialogs2: Use VCLXContainer as base for VCLXTabPage.
2008-10-20 19:14:26 +0200 jcn  r262379 : layoutdialogs2: Revert "Derive VCLXTabPage from VBox."
This reverts commit 8ab66364bdc08151ce2c982c1aa03f7881d86b84.
2008-10-20 19:14:22 +0200 jcn  r262378 : layoutdialogs2: Derive VCLXTabPage from VBox.
2008-10-20 19:14:17 +0200 jcn  r262377 : layoutdialogs2: More cleanups and testing.
2008-10-20 19:14:12 +0200 jcn  r262376 : layoutdialogs2: Get layout tabpage to nicely select. No content visible, though.
2008-10-20 19:14:07 +0200 jcn  r262375 : layoutdialogs2: Support ScTabPageSortOptions in standalone test.
2008-10-20 19:14:02 +0200 jcn  r262374 : layoutdialogs2: Support tabpage creation from xml.
2008-10-20 19:13:56 +0200 jcn  r262373 : layoutdialogs2: Remove most TEST_LAYOUT conditionals.
2008-10-20 19:13:52 +0200 jcn  r262372 : layoutdialogs2: Remove Args effort.
2008-10-20 19:13:48 +0200 jcn  r262371 : layoutdialogs2: Attempt to create ArgSet.
2008-10-20 19:13:44 +0200 jcn  r262370 : layoutdialogs2: Compile more.
2008-10-20 19:13:39 +0200 jcn  r262369 : layoutdialogs2: Add sortdlg.
2008-10-20 19:13:35 +0200 jcn  r262368 : layoutdialogs2: Oops, ID fix.
2008-10-20 19:13:30 +0200 jcn  r262367 : layoutdialogs2: Build fix.
2008-10-20 19:13:26 +0200 jcn  r262366 : layoutdialogs2: Revert "Use ::Window for plugin base iso ::Control."
This reverts commit 919ddaf2f52ad5e4df877a094cd1e336888d6210.
2008-10-20 19:13:21 +0200 jcn  r262365 : layoutdialogs2: Plugin dialog cleanups.
2008-10-20 19:13:17 +0200 jcn  r262364 : layoutdialogs2: Use ::Window for plugin base iso ::Control.
2008-10-20 19:13:12 +0200 jcn  r262363 : layoutdialogs2: Use cstdio, remove cruft.
2008-10-20 19:13:07 +0200 jcn  r262362 : layoutdialogs2: Remove cruft.
2008-10-20 19:13:02 +0200 jcn  r262361 : layoutdialogs2: Remove sizing mess.
2008-10-20 19:12:57 +0200 jcn  r262360 : layoutdialogs2: Trigger [re]draw of DialControl.
2008-10-20 19:12:53 +0200 jcn  r262359 : layoutdialogs2: DialControl window behaves nicely and invisible.
2008-10-20 19:12:48 +0200 jcn  r262358 : layoutdialogs2: Revert adding of setparent.
2008-10-20 19:12:43 +0200 jcn  r262357 : layoutdialogs2: Add dialog::setparent to plugin.
2008-10-20 19:12:39 +0200 jcn  r262356 : layoutdialogs2: Add a setProperty for VCLXPlugin.
2008-10-20 19:12:34 +0200 jcn  r262355 : layoutdialogs2: Unhide plugin.
2008-10-20 19:12:30 +0200 jcn  r262354 : layoutdialogs2: Revert.
2008-10-20 19:12:25 +0200 jcn  r262353 : layoutdialogs2: Use window instead of control.
2008-10-20 19:12:20 +0200 jcn  r262352 : layoutdialogs2: Lots of plugin settings.
2008-10-20 19:12:16 +0200 jcn  r262351 : layoutdialogs2: More hacks.
2008-10-20 19:12:11 +0200 jcn  r262350 : layoutdialogs2: Compile fixes.
2008-10-20 19:12:05 +0200 jcn  r262349 : layoutdialogs2: Use c++ includes.
2008-10-20 19:12:00 +0200 jcn  r262348 : layoutdialogs2: Junk UnoTunnel nonsense.
2008-10-20 19:11:55 +0200 jcn  r262347 : layoutdialogs2: Remove more cruft.
2008-10-20 19:11:50 +0200 jcn  r262346 : layoutdialogs2: Remove cruft.
2008-10-20 19:11:44 +0200 jcn  r262345 : layoutdialogs2: Rename wrap to plugin.
2008-10-20 19:11:39 +0200 jcn  r262344 : layoutdialogs2: All sorry tries.
2008-10-20 19:11:33 +0200 jcn  r262343 : layoutdialogs2: Rename plugin to wrap.
2008-10-20 19:11:28 +0200 jcn  r262342 : layoutdialogs2: Add ifdefs, no UNOTUNNEL, no crash on exit.
2008-10-20 19:11:23 +0200 jcn  r262341 : layoutdialogs2: Redo all kind of Uno and XIface weirdness.
2008-10-20 19:11:17 +0200 jcn  r262340 : layoutdialogs2: Remove extra UnoTunnel.
2008-10-20 19:11:12 +0200 jcn  r262339 : layoutdialogs2: Plugin hello world. TODO: parenting/owning/sizing, ... etc.
2008-10-20 19:11:06 +0200 jcn  r262338 : layoutdialogs2: Zoom updates.
2008-10-20 19:11:01 +0200 jcn  r262337 : layoutdialogs2: Add missing controls.
2008-10-20 19:10:56 +0200 jcn  r262336 : layoutdialogs2: Add .gitignore.
2009-04-21 16:06:18 +00:00

825 lines
26 KiB
C++

/*************************************************************************
*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* Copyright 2008 by Sun Microsystems, Inc.
*
* OpenOffice.org - a multi-platform office productivity suite
*
* $RCSfile: viewsrch.cxx,v $
* $Revision: 1.32 $
*
* This file is part of OpenOffice.org.
*
* OpenOffice.org is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3
* only, as published by the Free Software Foundation.
*
* OpenOffice.org is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License version 3 for more details
* (a copy is included in the LICENSE file that accompanied this code).
*
* You should have received a copy of the GNU Lesser General Public License
* version 3 along with OpenOffice.org. If not, see
* <http://www.openoffice.org/license.html>
* for a copy of the LGPLv3 License.
*
************************************************************************/
// MARKER(update_precomp.py): autogen include statement, do not remove
#include "precompiled_sw.hxx"
#include <string> // HACK: prevent conflict between STLPORT and Workshop headers
#include <hintids.hxx>
#include <com/sun/star/util/SearchOptions.hpp>
#include <svtools/cjkoptions.hxx>
#include <svtools/ctloptions.hxx>
#include <svx/pageitem.hxx>
#include <svtools/whiter.hxx>
#include <sfx2/dispatch.hxx>
#include <svtools/stritem.hxx>
#ifndef _T2XTCMP_HXX //autogen
#include <svtools/txtcmp.hxx>
#endif
#include <svtools/itempool.hxx>
#include <svtools/eitem.hxx>
#include <svx/srchitem.hxx>
#include <sfx2/request.hxx>
#include <svx/srchdlg.hxx>
#include <vcl/msgbox.hxx>
#include <vcl/wrkwin.hxx>
#include "svx/unolingu.hxx"
#include <swmodule.hxx>
#include <swwait.hxx>
#include <workctrl.hxx>
#ifndef _VIEW_HXX
#include <view.hxx>
#endif
#include <wrtsh.hxx>
#include <swundo.hxx> // fuer Undo-Ids
#include <uitool.hxx>
#ifndef _CMDID_H
#include <cmdid.h>
#endif
#ifndef _DOCSH_HXX
#include <docsh.hxx>
#endif
#ifndef _VIEW_HRC
#include <view.hrc>
#endif
#include <SwRewriter.hxx>
#include <undobj.hxx>
#ifndef _COMCORE_HRC
#include <comcore.hrc>
#endif
#include "PostItMgr.hxx"
using namespace com::sun::star;
using namespace ::com::sun::star::i18n;
using namespace ::com::sun::star::lang;
using namespace ::com::sun::star::util;
using namespace ::com::sun::star::i18n;
#define SRCH_ATTR_OFF 0
#define SRCH_ATTR_ON 1
#define SRCH_ATTR_SET 2
/*--------------------------------------------------------------------
Beschreibung: Search Parameter
--------------------------------------------------------------------*/
struct SwSearchOptions
{
SwDocPositions eStart, eEnd;
BOOL bDontWrap;
SwSearchOptions( SwWrtShell* pSh, BOOL bBackward );
};
inline Window* GetParentWindow( SvxSearchDialog* pSrchDlg )
{
Window* pWin;
if( pSrchDlg && pSrchDlg->IsVisible() )
pWin = LAYOUT_THIS_WINDOW (pSrchDlg);
else
pWin = 0;
return pWin;
}
/*-----------------12.04.97 13:04-------------------
--------------------------------------------------*/
void SwView::ExecSearch(SfxRequest& rReq, BOOL bNoMessage)
{
const SfxItemSet* pArgs = rReq.GetArgs();
const SfxPoolItem* pItem = 0;
const USHORT nId = SvxSearchDialogWrapper::GetChildWindowId();
SvxSearchDialogWrapper *pWrp = (SvxSearchDialogWrapper*)GetViewFrame()->GetChildWindow(nId);
BOOL bQuiet = FALSE;
if(pArgs && SFX_ITEM_SET == pArgs->GetItemState(SID_SEARCH_QUIET, FALSE, &pItem))
bQuiet = ((const SfxBoolItem*) pItem)->GetValue();
BOOL bApi = bQuiet | bNoMessage;
USHORT nSlot = rReq.GetSlot();
if (nSlot == FN_REPEAT_SEARCH && !pSrchItem)
{
if(bApi)
{
rReq.SetReturnValue(SfxBoolItem(nSlot, FALSE));
nSlot = 0;
}
}
if( pWrtShell->IsBlockMode() )
pWrtShell->LeaveBlockMode();
switch (nSlot)
{
// erstmal Nichts tun
case SID_SEARCH_ITEM:
{
delete pSrchItem;
pSrchItem = (SvxSearchItem*) pArgs->Get(SID_SEARCH_ITEM).Clone();
}
break;
case FID_SEARCH_ON:
bJustOpened = TRUE;
GetViewFrame()->GetBindings().Invalidate(SID_SEARCH_ITEM);
break;
case FID_SEARCH_OFF:
if(pArgs)
{
// Dialog abmelden
delete pSrchItem;
pSrchItem = (SvxSearchItem*) pArgs->Get(SID_SEARCH_ITEM).Clone();
DELETEZ( pSrchList );
DELETEZ( pReplList );
if ( pWrp )
{
pSrchDlg = static_cast <SvxSearchDialog*> (pWrp->getDialog ());
// die Search / Replace -Items merken wir uns
const SearchAttrItemList* pList = pSrchDlg->GetSearchItemList();
if( pList && pList->Count() )
pSrchList = new SearchAttrItemList( *pList );
if( 0 != (pList = pSrchDlg->GetReplaceItemList() ) &&
pList->Count() )
pReplList = new SearchAttrItemList( *pList );
}
}
break;
case FN_REPEAT_SEARCH:
case FID_SEARCH_NOW:
{
{
if(FID_SEARCH_NOW == nSlot && !rReq.IsAPI())
SwView::SetMoveType(NID_SRCH_REP);
if ( pWrp )
{
pSrchDlg = static_cast <SvxSearchDialog*> (pWrp->getDialog ());
}
else
pSrchDlg = 0;
}
if (pSrchDlg)
{
DELETEZ( pSrchList );
DELETEZ( pReplList );
const SearchAttrItemList* pList = pSrchDlg->GetSearchItemList();
if( pList && pList->Count() )
pSrchList = new SearchAttrItemList( *pList );
if( 0 != (pList = pSrchDlg->GetReplaceItemList() ) &&
pList->Count() )
pReplList = new SearchAttrItemList( *pList );
}
if (nSlot == FN_REPEAT_SEARCH)
{
ASSERT(pSrchItem, "Search-Item fehlt");
if( !pSrchItem )
pSrchItem = new SvxSearchItem(SID_SEARCH_ITEM);
}
else
{
// SearchItem aus Request besorgen
ASSERT(pArgs, "Args fehlen");
if ( pArgs )
{
delete pSrchItem;
pSrchItem = (SvxSearchItem*) pArgs->Get(SID_SEARCH_ITEM).Clone();
}
}
switch (pSrchItem->GetCommand())
{
case SVX_SEARCHCMD_FIND:
{
BOOL bRet = SearchAndWrap(bApi);
if( bRet )
Scroll(pWrtShell->GetCharRect().SVRect());
rReq.SetReturnValue(SfxBoolItem(nSlot, bRet));
}
break;
case SVX_SEARCHCMD_FIND_ALL:
{
BOOL bRet = SearchAll();
if( !bRet )
{
if( !bApi )
{
Window* pParentWindow = GetParentWindow( pSrchDlg );
InfoBox( pParentWindow, SW_RES(MSG_NOT_FOUND)).Execute();
}
bFound = FALSE;
}
rReq.SetReturnValue(SfxBoolItem(nSlot, bRet));
}
break;
case SVX_SEARCHCMD_REPLACE:
{
// 1) Selektion ersetzen (nicht. wenn nur Attribute ersetzt
// werden sollen)
//JP 27.04.95: warum ?
// was ist, wenn man das gefundene nur attributieren will??
USHORT nCmd = SVX_SEARCHCMD_FIND;
if( pSrchItem->GetReplaceString().Len() ||
!pReplList )
{
// Verhindern, dass - falls der Suchstring im
// Ersetzungsstring enthalten ist - der ersetzte String
// noch einmal gefunden wird.
BOOL bBack = pSrchItem->GetBackward();
if (bBack)
pWrtShell->Push();
String aReplace( pSrchItem->GetReplaceString() );
SearchOptions aTmp( pSrchItem->GetSearchOptions() );
String *pBackRef = ReplaceBackReferences( aTmp, pWrtShell->GetCrsr() );
if( pBackRef )
pSrchItem->SetReplaceString( *pBackRef );
Replace();
if( pBackRef )
{
pSrchItem->SetReplaceString( aReplace );
delete pBackRef;
}
if (bBack)
{
pWrtShell->Pop();
pWrtShell->SwapPam();
}
}
else if( pReplList )
nCmd = SVX_SEARCHCMD_REPLACE;
// 2) Weiter suchen (ohne zu ersetzen!)
USHORT nOldCmd = pSrchItem->GetCommand();
pSrchItem->SetCommand( nCmd );
BOOL bRet = SearchAndWrap(bApi);
if( bRet )
Scroll( pWrtShell->GetCharRect().SVRect());
pSrchItem->SetCommand( nOldCmd );
rReq.SetReturnValue(SfxBoolItem(nSlot, bRet));
}
break;
case SVX_SEARCHCMD_REPLACE_ALL:
{
SwSearchOptions aOpts( pWrtShell, pSrchItem->GetBackward() );
if( !pSrchItem->GetSelection() )
{
// bestehende Selektionen aufheben,
// wenn nicht in selektierten Bereichen gesucht werden soll
(pWrtShell->*pWrtShell->fnKillSel)(0, FALSE);
if( DOCPOS_START == aOpts.eEnd )
pWrtShell->EndDoc();
else
pWrtShell->SttDoc();
}
bExtra = FALSE;
ULONG nFound;
{ //Scope for SwWait-Object
SwWait aWait( *GetDocShell(), TRUE );
pWrtShell->StartAllAction();
nFound = FUNC_Search( aOpts );
pWrtShell->EndAllAction();
}
rReq.SetReturnValue(SfxBoolItem(nSlot, nFound != 0 && ULONG_MAX != nFound));
if( !nFound )
{
if( !bApi )
{
Window* pParentWindow = GetParentWindow( pSrchDlg );
InfoBox( pParentWindow, SW_RES(MSG_NOT_FOUND)).Execute();
}
bFound = FALSE;
return;
}
if( !bApi && ULONG_MAX != nFound)
{
String aText( SW_RES( STR_NB_REPLACED ) );
const xub_StrLen nPos = aText.Search( String::CreateFromAscii("XX") );
aText.Erase( nPos, 2 );
aText.Insert( String::CreateFromInt32( nFound ), nPos );
Window* pParentWindow = GetParentWindow( pSrchDlg );
InfoBox( pParentWindow, aText ).Execute();
}
}
break;
}
uno::Reference< frame::XDispatchRecorder > xRecorder =
GetViewFrame()->GetBindings().GetRecorder();
//prevent additional dialogs in recorded macros
if ( xRecorder.is() )
rReq.AppendItem(SfxBoolItem(SID_SEARCH_QUIET, sal_True));
rReq.Done();
}
break;
case FID_SEARCH_SEARCHSET:
case FID_SEARCH_REPLACESET:
{
static const USHORT aNormalAttr[] =
{
/* 0 */ RES_CHRATR_CASEMAP, RES_CHRATR_CASEMAP,
/* 2 */ RES_CHRATR_COLOR, RES_CHRATR_POSTURE,
/* 4 */ RES_CHRATR_SHADOWED, RES_CHRATR_WORDLINEMODE,
/* 6 */ RES_CHRATR_BLINK, RES_CHRATR_BLINK,
/* 8 */ RES_CHRATR_BACKGROUND, RES_CHRATR_BACKGROUND,
/*10 */ RES_CHRATR_ROTATE, RES_CHRATR_ROTATE,
/*12 */ RES_CHRATR_SCALEW, RES_CHRATR_RELIEF,
// insert position for CJK/CTL attributes!
/*14 */ RES_PARATR_LINESPACING, RES_PARATR_HYPHENZONE,
/*16 */ RES_PARATR_REGISTER, RES_PARATR_REGISTER,
/*18 */ RES_PARATR_VERTALIGN, RES_PARATR_VERTALIGN,
/*20 */ RES_LR_SPACE, RES_UL_SPACE,
/*22 */ SID_ATTR_PARA_MODEL, SID_ATTR_PARA_KEEP,
/*24 */ 0
};
static const USHORT aCJKAttr[] =
{
RES_CHRATR_CJK_FONT, RES_CHRATR_CJK_WEIGHT,
RES_CHRATR_EMPHASIS_MARK, RES_CHRATR_TWO_LINES,
RES_PARATR_SCRIPTSPACE, RES_PARATR_FORBIDDEN_RULES
};
static const USHORT aCTLAttr[] =
{
RES_CHRATR_CTL_FONT, RES_CHRATR_CTL_WEIGHT
};
SvUShorts aArr( 0, 16 );
aArr.Insert( aNormalAttr,
sizeof( aNormalAttr ) / sizeof( aNormalAttr[0] ),
0 );
if( SW_MOD()->GetCTLOptions().IsCTLFontEnabled() )
aArr.Insert( aCTLAttr,
sizeof( aCTLAttr ) / sizeof( aCTLAttr[0] ),
14 );
SvtCJKOptions aCJKOpt;
if( aCJKOpt.IsAnyEnabled() )
aArr.Insert( aCJKAttr,
sizeof( aCJKAttr ) / sizeof( aCJKAttr[0] ),
14 );
SfxItemSet aSet( pWrtShell->GetAttrPool(), aArr.GetData() );
USHORT nWhich = SID_SEARCH_SEARCHSET;
if ( FID_SEARCH_REPLACESET == nSlot )
{
nWhich = SID_SEARCH_REPLACESET;
if ( pReplList )
{
pReplList->Get( aSet );
DELETEZ( pReplList );
}
}
else if ( pSrchList )
{
pSrchList->Get( aSet );
DELETEZ( pSrchList );
}
rReq.SetReturnValue( SvxSetItem( nWhich, aSet ) );
}
break;
default:
#ifndef PRODUCT
if(nSlot)
{
ByteString sStr( "nSlot: " );
sStr += ByteString::CreateFromInt32( nSlot );
sStr += " falscher Dispatcher (viewsrch.cxx)";
DBG_ERROR( sStr.GetBuffer() );
}
#endif
return;
}
}
BOOL SwView::SearchAndWrap(BOOL bApi)
{
SwSearchOptions aOpts( pWrtShell, pSrchItem->GetBackward() );
// Startposition der Suche fuer WrapAround merken
// Start- / EndAction wegen vielleicht bestehender Selektionen
// aus 'Suche alle'
pWrtShell->StartAllAction();
pWrtShell->Push();
// falls in selektierten Bereichen gesucht werden soll, duerfen sie
// nicht aufgehoben werden
if (!pSrchItem->GetSelection())
(pWrtShell->*pWrtShell->fnKillSel)(0, FALSE);
SwWait *pWait = new SwWait( *GetDocShell(), TRUE );
if( FUNC_Search( aOpts ) )
{
bFound = TRUE;
if(pWrtShell->IsSelFrmMode())
{
pWrtShell->UnSelectFrm();
pWrtShell->LeaveSelFrmMode();
}
pWrtShell->Pop();
pWrtShell->EndAllAction();
delete pWait;
return TRUE;
}
delete pWait, pWait = 0;
// Suchen in den Sonderbereichen, wenn keine
// Suche in Selektionen vorliegt. Bei Suche in Selektionen
// wird ohnehin in diesen Sonderbereichen gesucht
BOOL bHasSrchInOther = bExtra;
if (!pSrchItem->GetSelection() && !bExtra )
{
bExtra = TRUE;
if( FUNC_Search( aOpts ) )
{
bFound = TRUE;
pWrtShell->Pop();
pWrtShell->EndAllAction();
return TRUE;
}
bExtra = FALSE;
}
else
bExtra = !bExtra;
const USHORT nId = SvxSearchDialogWrapper::GetChildWindowId();
SvxSearchDialogWrapper *pWrp = (SvxSearchDialogWrapper*)GetViewFrame()->GetChildWindow(nId);
pSrchDlg = pWrp ? static_cast <SvxSearchDialog*> (pWrp->getDialog ()) : 0;
// falls Startposition am Dokumentende / -anfang
if (aOpts.bDontWrap)
{
pWrtShell->EndAllAction();
if( !bApi )
{
Window* pParentWindow = GetParentWindow( pSrchDlg );
InfoBox( pParentWindow, SW_RES(MSG_NOT_FOUND)).Execute();
}
bFound = FALSE;
pWrtShell->Pop();
return FALSE;
}
pWrtShell->EndAllAction();
// noch mal mit WrapAround versuchen?
if( bApi || RET_NO == QueryBox( GetParentWindow( pSrchDlg ),
SW_RES( DOCPOS_START == aOpts.eEnd
? MSG_SEARCH_START
: MSG_SEARCH_END )
).Execute() )
{
bFound = FALSE;
pWrtShell->Pop();
return FALSE;
}
pWrtShell->StartAllAction();
pWrtShell->Pop(FALSE);
pWait = new SwWait( *GetDocShell(), TRUE );
BOOL bSrchBkwrd = DOCPOS_START == aOpts.eEnd;
aOpts.eEnd = bSrchBkwrd ? DOCPOS_START : DOCPOS_END;
aOpts.eStart = bSrchBkwrd ? DOCPOS_END : DOCPOS_START;
if (bHasSrchInOther)
{
pWrtShell->ClearMark();
if (bSrchBkwrd)
pWrtShell->EndDoc();
else
pWrtShell->SttDoc();
}
bFound = 0 != FUNC_Search( aOpts );
pWrtShell->EndAllAction();
delete pWait;
if ( bFound )
return bFound;
if(!bApi)
{
Window* pParentWindow = GetParentWindow( pSrchDlg );
InfoBox( pParentWindow, SW_RES(MSG_NOT_FOUND)).Execute();
}
return bFound = FALSE;
}
BOOL SwView::SearchAll(USHORT* pFound)
{
SwWait aWait( *GetDocShell(), TRUE );
pWrtShell->StartAllAction();
SwSearchOptions aOpts( pWrtShell, pSrchItem->GetBackward() );
if (!pSrchItem->GetSelection())
{
// bestehende Selektionen aufheben,
// wenn nicht in selektierten Bereichen gesucht werden soll
(pWrtShell->*pWrtShell->fnKillSel)(0, FALSE);
if( DOCPOS_START == aOpts.eEnd )
pWrtShell->EndDoc();
else
pWrtShell->SttDoc();
}
bExtra = FALSE;
USHORT nFound = (USHORT)FUNC_Search( aOpts );
if(pFound)
*pFound = nFound;
bFound = 0 != nFound;
pWrtShell->EndAllAction();
return bFound;
}
void SwView::Replace()
{
SwWait aWait( *GetDocShell(), TRUE );
pWrtShell->StartAllAction();
if( pSrchItem->GetPattern() ) // Vorlagen?
{
SwRewriter aRewriter;
aRewriter.AddRule(UNDO_ARG1, pSrchItem->GetSearchString());
aRewriter.AddRule(UNDO_ARG2, SW_RES(STR_YIELDS));
aRewriter.AddRule(UNDO_ARG3, pSrchItem->GetReplaceString());
pWrtShell->StartUndo(UNDO_UI_REPLACE_STYLE, &aRewriter); // #111827#
pWrtShell->SetTxtFmtColl( pWrtShell->GetParaStyle(
pSrchItem->GetReplaceString(),
SwWrtShell::GETSTYLE_CREATESOME ));
pWrtShell->EndUndo(UNDO_UI_REPLACE_STYLE); // #111827#
}
else
{
if (GetPostItMgr()->GetActivePostIt())
GetPostItMgr()->Replace(pSrchItem);
pWrtShell->SwEditShell::Replace( pSrchItem->GetReplaceString(),
pSrchItem->GetRegExp());
if( pReplList && pReplList->Count() && pWrtShell->HasSelection() )
{
SfxItemSet aReplSet( pWrtShell->GetAttrPool(),
aTxtFmtCollSetRange );
if( pReplList->Get( aReplSet ).Count() )
{
::SfxToSwPageDescAttr( *pWrtShell, aReplSet );
pWrtShell->SwEditShell::SetAttr( aReplSet );
}
}
}
pWrtShell->EndAllAction();
}
SwSearchOptions::SwSearchOptions( SwWrtShell* pSh, BOOL bBackward )
{
eStart = DOCPOS_CURR;
if( bBackward )
{
eEnd = DOCPOS_START;
bDontWrap = pSh->IsEndOfDoc();
}
else
{
eEnd = DOCPOS_END;
bDontWrap = pSh->IsStartOfDoc();
}
}
ULONG SwView::FUNC_Search( const SwSearchOptions& rOptions )
{
BOOL bDoReplace = pSrchItem->GetCommand() == SVX_SEARCHCMD_REPLACE ||
pSrchItem->GetCommand() == SVX_SEARCHCMD_REPLACE_ALL;
int eRanges = pSrchItem->GetSelection() ?
FND_IN_SEL : bExtra ? FND_IN_OTHER : FND_IN_BODY;
if (pSrchItem->GetCommand() == SVX_SEARCHCMD_FIND_ALL ||
pSrchItem->GetCommand() == SVX_SEARCHCMD_REPLACE_ALL)
eRanges |= FND_IN_SELALL;
pWrtShell->SttSelect();
static USHORT __READONLY_DATA aSearchAttrRange[] = {
RES_FRMATR_BEGIN, RES_FRMATR_END-1,
RES_CHRATR_BEGIN, RES_CHRATR_END-1,
RES_PARATR_BEGIN, RES_PARATR_END-1,
SID_ATTR_PARA_MODEL, SID_ATTR_PARA_KEEP,
0 };
SfxItemSet aSrchSet( pWrtShell->GetAttrPool(), aSearchAttrRange);
if( pSrchList && pSrchList->Count() )
{
pSrchList->Get( aSrchSet );
/* -- Seitenumbruch mit Seitenvorlage */
::SfxToSwPageDescAttr( *pWrtShell, aSrchSet );
}
SfxItemSet* pReplSet = 0;
if( bDoReplace && pReplList && pReplList->Count() )
{
pReplSet = new SfxItemSet( pWrtShell->GetAttrPool(),
aSearchAttrRange );
pReplList->Get( *pReplSet );
/* -- Seitenumbruch mit Seitenvorlage */
::SfxToSwPageDescAttr( *pWrtShell, *pReplSet );
if( !pReplSet->Count() ) // schade, die Attribute
DELETEZ( pReplSet ); // kennen wir nicht
}
//
// build SearchOptions to be used
//
SearchOptions aSearchOpt( pSrchItem->GetSearchOptions() );
aSearchOpt.Locale = SvxCreateLocale( (USHORT)GetAppLanguage() );
if( !bDoReplace )
aSearchOpt.replaceString = aEmptyStr;
ULONG nFound;
if( aSrchSet.Count() || ( pReplSet && pReplSet->Count() ))
{
nFound = pWrtShell->SearchAttr(
aSrchSet,
!pSrchItem->GetPattern(),
rOptions.eStart,
rOptions.eEnd,
FindRanges(eRanges),
pSrchItem->GetSearchString().Len() ? &aSearchOpt : 0,
pReplSet );
}
else if( pSrchItem->GetPattern() )
{
// Suchen (und ersetzen) von Vorlagen
const String sRplStr( pSrchItem->GetReplaceString() );
nFound = pWrtShell->SearchTempl( pSrchItem->GetSearchString(),
rOptions.eStart,
rOptions.eEnd,
FindRanges(eRanges),
bDoReplace ? &sRplStr : 0 );
}
else
{
// Normale Suche
nFound = pWrtShell->SearchPattern(aSearchOpt, pSrchItem->GetNotes(),
rOptions.eStart,
rOptions.eEnd,
FindRanges(eRanges),
bDoReplace );
}
pWrtShell->EndSelect();
return nFound;
}
LAYOUT_NS Dialog* SwView::GetSearchDialog()
{
const USHORT nId = SvxSearchDialogWrapper::GetChildWindowId();
SvxSearchDialogWrapper *pWrp = (SvxSearchDialogWrapper*)SfxViewFrame::Current()->GetChildWindow(nId);
if ( pWrp )
pSrchDlg = pWrp->getDialog ();
else
pSrchDlg = 0;
return pSrchDlg;
}
void SwView::StateSearch(SfxItemSet &rSet)
{
SfxWhichIter aIter(rSet);
USHORT nWhich = aIter.FirstWhich();
while(nWhich)
{
switch(nWhich)
{
case SID_SEARCH_OPTIONS:
{
UINT16 nOpt = 0xFFFF;
if( GetDocShell()->IsReadOnly() )
nOpt &= ~( SEARCH_OPTIONS_REPLACE |
SEARCH_OPTIONS_REPLACE_ALL );
rSet.Put( SfxUInt16Item( SID_SEARCH_OPTIONS, nOpt));
}
break;
case SID_SEARCH_ITEM:
{
if ( !pSrchItem )
{
pSrchItem = new SvxSearchItem( SID_SEARCH_ITEM );
pSrchItem->SetFamily(SFX_STYLE_FAMILY_PARA);
pSrchItem->SetSearchString( pWrtShell->GetSelTxt() );
}
if( bJustOpened && pWrtShell->IsSelection() )
{
String aTxt;
if( 1 == pWrtShell->GetCrsrCnt() &&
( aTxt = pWrtShell->SwCrsrShell::GetSelTxt() ).Len() )
{
pSrchItem->SetSearchString( aTxt );
pSrchItem->SetSelection( FALSE );
}
else
pSrchItem->SetSelection( TRUE );
}
bJustOpened = FALSE;
rSet.Put( *pSrchItem );
}
break;
/* case SID_SEARCH_REPLACESET:
case SID_SEARCH_SEARCHSET:
{
static USHORT __READONLY_DATA aSearchAttrRange[] =
{
RES_CHRATR_CASEMAP, RES_CHRATR_POSTURE,
RES_CHRATR_SHADOWED, RES_CHRATR_WORDLINEMODE,
RES_PARATR_LINESPACING, RES_PARATR_HYPHENZONE,
RES_LR_SPACE, RES_UL_SPACE,
SID_ATTR_PARA_MODEL, SID_ATTR_PARA_KEEP,
0
};
SfxItemSet aSet(pWrtShell->GetAttrPool(), aSearchAttrRange );
if( SID_SEARCH_REPLACESET==nWhich )
{
if( pReplList )
{
pReplList->Get( aSet );
DELETEZ( pReplList );
}
}
else if( pSrchList )
{
pSrchList->Get( aSet );
DELETEZ( pSrchList );
}
rSet.Put( SvxSetItem( nWhich, aSet ));
}
break;
*/
}
nWhich = aIter.NextWhich();
}
}