summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-06-18Copy targets instead of moving during redactionMuhammet Kara
To allow properly remembering the last state. * And some clean-up. Change-Id: Id0b0f4251e3578b8baced1e6e6b1161f46e324dc Reviewed-on: https://gerrit.libreoffice.org/74302 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74308 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-18Let autoredact dialog remember last stateMuhammet Kara
* By storing the JSON string as SvtViewOptions Change-Id: I08e323005612cb0181d2176af659eb54267fbb3f Reviewed-on: https://gerrit.libreoffice.org/74169 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74305 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-18sw lok: assume no windows in SwLayoutFrame::PaintSwFrame()Miklos Vajna
The high-level problem was that a watermark shape in the background was rendered with lighter and darker gray as the user typed. The reason for this was that depending on what larger combined tile was rendered we did or did not repaint the layout frame. Handle the situation similar to when we have no vcl::Window at all, which ensures that we always paint only once. The rgb value matches the desktop rendering result this way. (Just assert that we render the gray light enough, the actual color channel value may be 190 or 191.) Reviewed-on: https://gerrit.libreoffice.org/72276 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins (cherry picked from commit 93abdf39b01bb7b404dc09ef37369a4350fb0d10) Conflicts: sw/qa/extras/tiledrendering/tiledrendering.cxx Change-Id: Ie8746ab70f49f7f1080632c39e3a826c4ce509df
2019-06-18tdf#123651 sw AddVerticalFrameOffsets: make vert offset depend on hori offsetMiklos Vajna
Regression from commit 961ba62df045473e5793d9e103be86eaad8d9575 (tdf#123032 sw, AddVerticalFrameOffsets: fix shape pos after mouse move, 2019-02-07), the vertical position of the bugdoc was too large, and turns out Word only works with vertical offsets if there is already a horizontal offset. For example open tdf98987.docx in Word, remove the left square shape, notice how the other square shape jumps up due to no longer working with a vertical offset (while the doc model vertical position of the shape is unchanged). Change our layout, so that in case the AddVerticalFrameOffsets compatibility flag is on (which was added to emulate Word's behavior), we also consider the horizontal offset before setting the vertical offset. Also improve the SwUiWriterTest2::testTdf122942() test that asserted doc model positions, which are now different (needed so that at the end the layout position visible to the user is unchanged). Reviewed-on: https://gerrit.libreoffice.org/69716 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com> (cherry picked from commit 27894be916d5d03ee820e757d2f4abbf21d54615) Conflicts: sw/qa/extras/layout/layout.cxx sw/qa/extras/uiwriter/uiwriter2.cxx Change-Id: I8ac451efbacefdd3578b3a578260e7b2060c16a6
2019-06-18XmlTestTools::getXPath now asserts that non-empty attribute existsMike Kaganski
It turns out that this change revealed unit tests written incorrectly (and untested), or maybe which became broken (not testing) because of some previous assertXPath change? They incorrectly used 3-arg form of it to check node content equality to passed string, while in fact, an attribute was looked for with that name, and its empty return tested to match default empty 4th argument. Change-Id: If24e18518543102d115a22a6282e4cca9cf694e2 Reviewed-on: https://gerrit.libreoffice.org/70581 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74296
2019-06-18tdf#123032 sw, AddVerticalFrameOffsets: fix shape pos after mouse moveMiklos Vajna
Regression from commit 50223ea6e212b60b7d33839c2753c5601fb50f95 (tdf#98987 sw: add AddVerticalFrameOffsets compat mode, 2016-03-31), the problem was that vertical position of the shape was wrong after mouse move, even if we attempted to take fly frames of the paragraph into account. (Similar situation is when saving and loading the file; which is much easier to test.) Fly frames are created as the text frames is formatted, and then SwTextFrame::CalcBaseOfstForFly() can calculate the vertical offset correctly. But in the "move with mouse" case SwToContentAnchoredObjectPosition::CalcPosition() was invoked by the time the old flys of the text frame were already removed, but the new ones were not yet added. Solve the problem by formatting the text frame from SwAnchoredDrawObject::MakeObjPosAnchoredAtPara() (if any of its validity flags are set to false) -- this is expected to be safe, as the object formatter is invoked by SwLayAction::FormatContent(), i.e. there is no recursive SwFrame::Calc() call here. (cherry picked from commit 961ba62df045473e5793d9e103be86eaad8d9575) Change-Id: I95851874e3da3f50f304421537c6743e04bdfc7b Reviewed-on: https://gerrit.libreoffice.org/71127 Reviewed-by: Aron Budea <aron.budea@collabora.com> Tested-by: Aron Budea <aron.budea@collabora.com> (cherry picked from commit da21956366a13b62b056d6074262f44c1559b29d)
2019-06-18DOCX autotext import: speed up handling of large amount of blocksMiklos Vajna
WW8Glossary::Load() does the same for the DOC autotext import. Old cost for a document with 2508 document parts: 843842 ms. New cost for the same document: 46572 ms (5% of baseline). Change-Id: If0ff183315cb7465dd2b32c1a4fc856b50611265 Reviewed-on: https://gerrit.libreoffice.org/69271 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins (cherry picked from commit 87670fa998a26ab059e40bbe8f5e0acf0ad6ea04)
2019-06-18DOCX import: fix unexpected page break on autotext insert at end of docMiklos Vajna
The problem was that the page style was set on the first paragraph, which means a page break on the UI. So if you used a multi-paragraph autotext twice (insert autotext, press enter, insert autotext again) then you ended up with 2 pages instead of just 1. Fix the problem by tracking when we are in autotext import mode, and similar to pasting, don't set the page style in autotext import mode. Change-Id: I4fc551b3c1b999687eb80242e261f186fd1b6f13 Reviewed-on: https://gerrit.libreoffice.org/69214 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins (cherry picked from commit adcf656bb56e09fbb638a44b0cccc96f8cfced7f)
2019-06-18Related: tdf#94238 PPTX export: handle border and center of radial gradientMiklos Vajna
Map Border to a gradient stop before the final one. Map X/YOffset to the focus rectangle of the center shade, i.e. the opposite of what the import already does. (cherry picked from commit 82365563fb2fd55d90d444a104fa475d4ffc4cf1) Conflicts: oox/source/export/drawingml.cxx sd/qa/unit/import-tests.cxx Reviewed-on: https://gerrit.libreoffice.org/67395 Reviewed-by: Jan Holesovsky <kendy@collabora.com> Tested-by: Jan Holesovsky <kendy@collabora.com> Conflicts: oox/source/export/drawingml.cxx sd/qa/unit/export-tests-ooxml1.cxx sd/qa/unit/import-tests.cxx Change-Id: I88db7d579da7327e5e06b736a75a6892b338dd73
2019-06-18tdf#116320: properly decode file name for File Locked dialogMike Kaganski
Change-Id: I51bd7c6695ef52b08e0b6d809160d74daebb8505 Reviewed-on: https://gerrit.libreoffice.org/65298 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 8dc3fe631583228fe5bb49b44d2308470ec30df0) Reviewed-on: https://gerrit.libreoffice.org/74278 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-06-18tdf#123939: string and error are same type for pivot cache in XLSXMike Kaganski
Change-Id: Id39d322661f7537e8999acafee655c0cc16a78c1 Reviewed-on: https://gerrit.libreoffice.org/68911 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74277 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-06-18tdf#121734: ww8 import: use direct formatting for floating object framesMike Kaganski
... and don't modify standard frame styles to have no borders and padding. This makes "Frame", "OLE", and "Graphics" frame styles of imported DOC files to have usual settings (for "Frame", it's 1.5 mm padding and all borders set to 0.05 pt black line). All objects that need invisible frame will have them with all necessary settings set explicitly, which allows to copy and paste such frames to other documents without problems. This makes DOC import aligned with DOCX import in this regard. Change-Id: I6f05cf71e63ceccb8e0ddebe23ec41bf69af9b52 Reviewed-on: https://gerrit.libreoffice.org/64992 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/65012 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Andras Timar <andras.timar@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74242
2019-06-18tdf#98343: ensure PathRemoveFileSpec does not remove UNC's "\\"Mike Kaganski
PathRemoveFileSpec is used exclusively in GetCaseCorrectPathName(Ex). The GetCaseCorrectPathName function is only called for absolute or relative paths, not some arbitrary that chunks. So initial double backslashes are only possible for UNC paths. This change fixes handling of UNC paths by the functions. Previously, the UNC path was recursively shortened until it only consisted of a single "\"; then, if bCheckExistence was requested, testing this path failed, which resulted in the whole recursion to return empty result; else when returning from the recursion, original path components were appended, but initial double backslashes were never restored. This led to transformation "\\SERVER\Path\file.ext" to "\SERVER\Path\file.ext". The GetCaseCorrectPathName itself is only used in two places: osl_getSystemPathFromFileURL_() and osl_getFileStatus(). osl_getSystemPathFromFileURL_ only calls GetCaseCorrectPathName for paths longer than 248 characters; bCheckExistence is false. In that case, the resulting wrong path (missing one initial backslash) was then processed in /* it should be an UNC path, use the according prefix */ branch, where two initial characters of it were stripped, one of which being the first character of SERVER name. So, all the following manipulations with resulting path were incorrect. This code path was the reason for the bug. osl_getFileStatus calls GetCaseCorrectPathName always; it requires to check existence. This led to 0 returned from GetCaseCorrectPathName, then osl_getFileStatus continued with copying the original string, thus ignoring the error. Change-Id: If7409afa2c0dd6dd001c79e719acbfd271a6ab72 Reviewed-on: https://gerrit.libreoffice.org/65158 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74257 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-06-18tdf#121779: extend TWo CApitals list to also ignore sMALL iNITIALSMike Kaganski
Now this list is used also in rules for capitalizing first letter of every sentence, and for correcting accidental use of Caps Lock key. Change-Id: I4fbdbccbae32743d5e9a6757344361eefd88e167 Reviewed-on: https://gerrit.libreoffice.org/64759 Tested-by: Jenkins Reviewed-by: Heiko Tietze <tietze.heiko@gmail.com> Reviewed-by: Sophie Gautier <gautier.sophie@gmail.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 7bf6d0d9d8e3e2e07726ca6df246619ee1ead3a3) Reviewed-on: https://gerrit.libreoffice.org/74258 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-06-18tdf#34171: check foreign lockfiles to tell who has locked documentMike Kaganski
MS Office (Word/Excel/PowerPoint) lockfiles are supported now. Note that Excel does *not* create lockfiles for pre-OOXML files. This changes osl_openFile implementation on Windows, to treat osl_File_OpenFlag_NoLock to also include FILE_SHARE_DELETE flag for CreateFileW. This is required to allow opening files created with FILE_FLAG_DELETE_ON_CLOSE flag, such as Excel's owner files. The shange should be consistent with the overall meaning of the osl_File_OpenFlag_NoLock to not impose any locking constraints to the file being opened. Change-Id: I7b99012f4bd60ab3821fb91d5166a286031b7e93 Reviewed-on: https://gerrit.libreoffice.org/64496 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 607b80ca3cddc239a35580470944a438ce144fc8) Reviewed-on: https://gerrit.libreoffice.org/74259 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-06-18tdf#122425: explicitly remove borders for newly created flysMike Kaganski
After commit d398e9248c183cf988b6d985b342b0cbff93ea02, it's necessary to make sure that each created floating object has proper default border and spacing values (empty and 0), to not inherit frame style's non-0 values unintentionally. This fixes two places for objects in headers/footers. Change-Id: I2632bcd4066609c97aa15e39d69e9089ac691ff2 Reviewed-on: https://gerrit.libreoffice.org/65906 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 2e189c2464de007b3d59ba37d4f3f1cfbe5b480c) Reviewed-on: https://gerrit.libreoffice.org/74260 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-06-18Don't crash when accessing WebDAV resource after auth failedMike Kaganski
In my testing on Windows, the crashing scenario was this: 1. FileDialogHelper_Impl::updateVersions() creates storage calling comphelper::OStorageHelper::GetStorageFromURL; 2. Content::openStream() calls isDocument first; 3. Content::isDocument() indirectly initiates WebDAV session, creating a NeonSession; 4. All operations of NeonSession call Init() first; its first call initializes m_pHttpSession using ne_session_create, and then adds auth callbacks using ne_add_server_auth/ne_add_proxy_auth 5. Then NeonSession performs the rest of PROPFIND task, calling ah_post_send and auth_challenge; the latter fails, then ah_post_send calls clean_session, which cleans m_pHttpSession's auth_session's sspi_host; 6. NeonSession::HandleError throws DAVException for NE_AUTH error; 7. Content::isDocument() returns true to Content::openStream(), which proceeds to execute the command, which in turn re-uses the NeonSession and its m_pHttpSession; 8. NeonSession::OPTIONS then indirectly calls continue_sspi, which tries to dereference the m_pHttpSession's auth_session's sspi_host which is nullptr at this point. So in case NeonSession detects the NE_AUTH error condition, let's set a flag indicating that the next Init() should reinitialize its m_pHttpSession. Also fixed a case when xProps was used before initialization in Content::getPropertyValues. Change-Id: Ifc9eec4fe0333ff6be17c5089068441b4a6eb78c Reviewed-on: https://gerrit.libreoffice.org/65950 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 162a472d55cf9fb9aaa6d5eae625b3da2273a516) Reviewed-on: https://gerrit.libreoffice.org/74261 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-06-18tdf#116371: export rotation of SwGrfNodeMike Kaganski
Change-Id: I42620da798a35dfada67d9a9fb23d554cc20b16f Reviewed-on: https://gerrit.libreoffice.org/66963 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit b226383a83e41bbced9fc2a02dc09a449401ec97) Reviewed-on: https://gerrit.libreoffice.org/74262 Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-06-18Related: tdf#94238 PPTX import: handle subset of radial gradient fillMiklos Vajna
Handle the case when the horizontal center is at 50%. Other cases are still unhandled, those are more complex. After fixing the style, center and border, the gradient fill looks similar to how PowerPoint renders it. Reviewed-on: https://gerrit.libreoffice.org/67168 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins (cherry picked from commit fa6d726a9369fd49ff2b6c00da682641a025ba50) Conflicts: sd/qa/unit/import-tests.cxx Change-Id: I419da70482de37031aa2c7fc735692019d7665f5
2019-06-18vcl: protect more outdev functions for disposed stateMiklos Vajna
This is similar to commit c612c3b0aed9ad7f7f42b4313f821b71995ead15 (protect more printer code-paths., 2015-03-20), but handles more OutputDevice member functions. The user-level problem was that in case a macro creates a dialog with an embedded Chart document and the user clicks on e.g. the chart title (so an sdr::overlay::OverlayManager is created), then it can happen during closing the dialog that the overlay manager calls these functions after the output device is disposed. Change-Id: I8021fb795704f19e52d70505804d68725c636ce0 Reviewed-on: https://gerrit.libreoffice.org/66403 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins (cherry picked from commit 8b461713c0c86bc19af739aada4b1345cfa5dfbe)
2019-06-18Fix MSI build after commit 7a9f6df7fb83ec23d09cb5744c2c865fa22e7143Mike Kaganski
Change-Id: Ib659477a2358b14fbacc1638394c783995272eb5 Reviewed-on: https://gerrit.libreoffice.org/69466 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit bfa7db29bd5077c4c8be6ccd9dfd80f974c1e148) Reviewed-on: https://gerrit.libreoffice.org/74239 Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Tested-by: Mike Kaganski <mike.kaganski@collabora.com>
2019-06-17Add predefined targets to auto redactionMuhammet Kara
Change-Id: Ib8cf8b50944667d6a87a5cafb6995ad195699358 Reviewed-on: https://gerrit.libreoffice.org/74092 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74233 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Use utl::TextSearch in the auto redaction processMuhammet Kara
* Add support for: * Case sensitive and insensitive text search * Regex search (always case sensitive) regarless of the choice * Multiple occurences of the same target on a single TEXTARRAY Change-Id: I580059f77286e8c4226cafdd1eb9472f8e1a9a9d Reviewed-on: https://gerrit.libreoffice.org/74049 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74232 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Auto redaction dialog 6th iterationMuhammet Kara
* Binds everything together. * The auto redaction process works end to end now. * Only for case sensitive text content (no regex support yet) Change-Id: I6edd67472d376e2c0d91ac4b1ff90d98c49b13ac Reviewed-on: https://gerrit.libreoffice.org/73908 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74231 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Auto redaction dialog 5th iterationMuhammet Kara
* Add the Load handler, and the related bits * The dialog can be considered fully functional now, as all buttons are working. * Next is to handle its output in the redaction phase. Change-Id: Idd558e13b50f82a95f5f6e226bc855257837b351 Reviewed-on: https://gerrit.libreoffice.org/73822 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74230 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Auto redaction dialog 4th iterationMuhammet Kara
* Add the Save & SaveHdl handlers * Add stubs for Load & LoadHdl handlers Change-Id: I5f58213c86e99f8bfc9075e04eedbb5cb546d9ad Reviewed-on: https://gerrit.libreoffice.org/73724 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74229 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Auto redaction dialog 3rd iterationMuhammet Kara
* Add the Edit handler Change-Id: Id900d2aab6fa6795455012aaf2bcaf755ccca139 Reviewed-on: https://gerrit.libreoffice.org/73705 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74228 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Auto redaction dialog second iterationMuhammet Kara
* Add the Add handler * Add SfxAddTargetDialog dialog * Add the Delete handler Change-Id: I9c466754f6b593ffe3c8a1cc8034bbe47674f591 Reviewed-on: https://gerrit.libreoffice.org/73285 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74227 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Auto redaction dialog first iterationMuhammet Kara
* Add the uno command .uno:AutoRedact with the name 'Auto-Redact' * Add the dialog SfxAutoRedactDialog * Implement the basic functionality to show up when clicked on the menu/toolbar item. * Add the class TargetsTable to control the weld::TreeView which is used to list the targets * Add the struct RedactionTarget to keep info for individual targets Change-Id: Ic02dfb009590c0928a2ea7b0f8b19b4febca221a Reviewed-on: https://gerrit.libreoffice.org/72254 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74226 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Auto-redact - First stabMuhammet Kara
Add a SfxRedactionHelper::autoRedactPage method which searches for the given term through the gdimetafile which has the whole content of an xPage (a Draw page), and draws redaction rectangles at proper positions with proper sizes. The search is case sensitive, and finds only the first occurences on a line. Will switch to a proper search provider via a follow-up patch. Change-Id: If3db62e50994670143785b6727fdcf1ccd4c6f8e Reviewed-on: https://gerrit.libreoffice.org/68597 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74225 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Respect page margins of the source doc during redactionMuhammet Kara
Change-Id: Ieaa50a2eba17145180ddd5d2bfc77add4801c43a Reviewed-on: https://gerrit.libreoffice.org/71929 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74224 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17tdf#125135: Standardize content placement for redactionMuhammet Kara
Correct the position & size by roundtrip conversion from/to wmf as a temporary solution. Simplify a bit. Change-Id: I59f32bd29750f9ac759800893583308f29b8aad5 Reviewed-on: https://gerrit.libreoffice.org/71860 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74223 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17tdf#125063: Don't depend on content size for Page sizingMuhammet Kara
During redaction of Calc sheets Change-Id: If2a4f71c77a687a74b8f823152b76d2a7e2e21da Reviewed-on: https://gerrit.libreoffice.org/71627 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74222 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Add RedactDoc to Tools menu of ImpressMuhammet Kara
Now that we have redaction enabled for Impress, after commit 33e840896a69a66c44e74beb995d558735fb84ad, let's sync the Impress Tools menu with Writer and Calc. Change-Id: I1aaf29e5ea0ddb07b1f3b6ef98e017904896fcd4 Reviewed-on: https://gerrit.libreoffice.org/69911 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74221 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Switch redacted export optionsMuhammet Kara
Bring White option to the first place, to save toner on print as users tend to click on the first option. Change-Id: Id63c4402f8dc07a83eef69c3dfde3dd086c899b8 Reviewed-on: https://gerrit.libreoffice.org/70831 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74220 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Add direct pdf export to the Redaction toolbarMuhammet Kara
Users need an in-process copy of pdf to share with peers and discuss the redacted areas Change-Id: I68c16c6f09690a9d5cd2df191963107029e5ed88 Reviewed-on: https://gerrit.libreoffice.org/70863 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74219 Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Protect page position during redactionMuhammet Kara
Users might accidentally move the main shape of the page being redacted. Let's prevent that. Change-Id: Ic0f3c2c819d1f974d203fa5fd70d57e5545ba8ef Reviewed-on: https://gerrit.libreoffice.org/70839 Tested-by: Jenkins Reviewed-by: Andras Timar <andras.timar@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74218 Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Enable redaction for ImpressMuhammet Kara
After the commit c2330b14e2bfa170131a83c375ec0b1a91c95415, different page sizes and orientations are handled properly, and Impress pages are converted to Draw perfectly. Change-Id: Ib9ab6b298e12fc0d8e9440bf63f31ad6dd05ab35 Reviewed-on: https://gerrit.libreoffice.org/69910 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74217 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Handle different page sizes for redactionMuhammet Kara
Change-Id: I7136717936668fbb1d87b5d9491430c13c5e73fd Reviewed-on: https://gerrit.libreoffice.org/69909 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74216 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Fix icon load error for uno commands with paramsMuhammet Kara
Change-Id: I31e4c28322a3492a603bce5c7226e2dbcf131173 Reviewed-on: https://gerrit.libreoffice.org/66980 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-on: https://gerrit.libreoffice.org/74215 Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Create the SfxRedactionHelper classMuhammet Kara
And move some code pieces, related to the redaction functionality, from objserv.cxx to the new SfxRedactionHelper.cxx file. Change-Id: I6491c9b581ea6d3a05a72117c5b72e1dc19025dc Reviewed-on: https://gerrit.libreoffice.org/68338 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74212 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Temp icons for the redactedexport commandsMuhammet Kara
Just put some links for now for the icons, and replace the two buttons on the redaction toolbar with the new redactedexporttoolbox Change-Id: Ic1df62d56c965869135ceca97bbeb87efd3aaa0d Reviewed-on: https://gerrit.libreoffice.org/68281 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74211 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Sync fuconbez.cxx with masterMuhammet Kara
Change-Id: I2e898f5bfbbaa55c5e403185cd445af605300d1e Reviewed-on: https://gerrit.libreoffice.org/69837 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74210 Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Add style options to redaction exportMuhammet Kara
* Add 2 new uno command aliases to handle 2 different styles of redaction export/sanitization: * .uno:RedactedExportBlack & .uno:RedactedExportWhite * Replace the single export button with the 2 new buttons * Add a new toolbox names .uno:RedactedExportToolbox which consists of the new 2 commands. It will be added to the Redaction toolbar after we solve the icon issue. * Now new redaction shapes are named as RectangleRedactionShape or FreeformRedactionShape based on their type. * While exporting to PDF, a seamless step of "Sanitization" takes place, in which, all shapes in the Draw doc are traversed and turned into opaq black or white (with black border) shapes, then the whole doc is converted into bitmap (page by page). * After the export operation is completed. All shapes are converted back to the usual redaction style (gray and transparent). * Icon issue: * We need 2 new icons for our new commands, one for black redaction shapes without border, and one for white redaction shapes with black border. * I tried adding links to a current icon, but it didn't work, so they are iconless for now. * Next to do: Handle icon issue, and take the redaction implementation into a separate helper class because it is growing fast. Change-Id: I9b2b7716289b800cdbe7bf3ffa4a442fe5afc474 Reviewed-on: https://gerrit.libreoffice.org/68072 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74209 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Use named shapes for redactionMuhammet Kara
Change-Id: Ibb55bd503d264b618c3fbebfdbcf3fe9958c6783 Reviewed-on: https://gerrit.libreoffice.org/68031 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74208 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Handle redaction finalization: BlackMuhammet Kara
Convert shapes on the document to black & opaque before sending it to the pdfexport filter. Convert them back to gray & transparent after the export operation. Change-Id: Iffe66e371710f16ef1c04f0da196fc5a561af344 Reviewed-on: https://gerrit.libreoffice.org/67517 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74202 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Support bitmap PDF export for RedactionMuhammet Kara
* Add a new parameter IsRedactMode (SID_IS_REDACT_MODE) to .uno:ExportDirectToPDF * Make sure the new param makes it into PDFExport as part of FilterData * Hijack the metafile before being sent to ImplExportPage(), convert to bitmap, and replace the original * Add a new entry to GenericCommands.xcu to make our button with param visible * Nitpick: For things to be included in the bitmap conversion, they need to be added to the metafile before the conversion in PDFExport::ExportSelection(). Things added after that point (inside ImplExportPage() for example) will not be bitmapped/pixelized Change-Id: Iec7020917da920a968ea969b98e53f17eadaa275 Reviewed-on: https://gerrit.libreoffice.org/67108 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74201 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Make the text on Redaction toolbar buttons visibleMuhammet Kara
Change-Id: I3d6bc2adb91fbe16da008797b7b7e5189726c500 Reviewed-on: https://gerrit.libreoffice.org/66968 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74200 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Forge the freeform redaction toolMuhammet Kara
out of the Freeform Line tool in Draw. * Replace .uno:LineToolbox with .uno:Freeline_Unfilled in Redaction toolbar * Add new parameters to .uno:Freeline_Unfilled - SfxUInt16Item Transparence, SfxStringItem Color, SfxUInt16Item Width, SfxBoolItem IsSticky * Handle the params in FuConstructBezierPolygon * Now the freeform line draw tool on the Redaction toolbar works with a default width of 5mm, color of COL_GRAY7, and a transparency of 50%; and it sticks when it is clicked/selected once until user deliberately deselects it by clicking on another tool or by clicking outside of the page. * Known problem: icon is not displayed on the toolbar after adding the params Change-Id: I6b09276ca82782dbf214aab8d2ba3b407fb0d81c Reviewed-on: https://gerrit.libreoffice.org/66916 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74199 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>
2019-06-17Add Redaction ToolbarMuhammet Kara
* Consists of .uno:Rect, .uno:LineToolbox, and .uno:ExportDirectToPDF * Automatically shown when we are in the redaction process * Customizes the rectangle tool for our needs Also: * Adds new parameters to the SID_DRAW_RECT (.uno:Rect) to be able to set transparancy, fill color, and line/border style, and to make our button sticky/permanent Known problem: Button's icon is not shown after adding the parameters Change-Id: I7928264415769f7e0a4ded171b864adb99aed442 Reviewed-on: https://gerrit.libreoffice.org/66706 Tested-by: Jenkins Reviewed-by: Muhammet Kara <muhammet.kara@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/74198 Tested-by: Muhammet Kara <muhammet.kara@collabora.com>