summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* LOK: fast tile rendering (graphics and buttons)private/Ashod/fast-calc-renderingAshod Nakashian2016-06-052-2/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since embedded graphics and buttons use absolute coordinates, we set the origin to be the top-left corner of the tile. This includes the origin + ScrPos (see previous patch). Then, the coordinates of the graphic is shifted by this amount to make sure it renders in its relative position to the tile. This renders embedded graphics and buttons at their correct position, with some limitations. Tiles large enough to cover a graphic object show the graphic object where it should be. However, rendering a relatively small tile doesn't render the graphic. This seems to be an issue with moving the graphic's coordinate at a later stage than the 2D Processor decides what objects intersect with the 'view area' that is rendered. Another issue is that graphs don't render. What they seem to suffer is incorrect scale and a fix coordinates (they show up as tiny thumbnails at the top-left corner and grow in proportion to the real graph when resized). These shall be addressed in a separate patch. Change-Id: I4b71bf5f2e357d1114d46022bc00905ceed0c2f9
* LOK: fast tile rendering (text only)Ashod Nakashian2016-06-051-86/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | For every tile, the bounding columns and rows are found. The origin of the device is set to the top-left corner of the top-most row and left-most column, respectively. Because tiles don't have to align with a column or row, the ScrX and ScrY (Screen Position) coordinates are set to the offset a tile has to its top-most row and left-most column. Rendering of text is super fast as the minimum area is rendered for a given tile. However, it doesn't work for embedded objects. This is addressed in a separate patch. One pending issue with text is when editing. The text doesn't correctly render while editing a cell. This is almost certainly because the edit control is not rendered at the correct offset (in the middle top row it can be seen showing up to the right of where it should be). Change-Id: I6f1ea0aa2f19a7fda926f596a2009290680c593c
* Linux x86 build fixcp-5.0-38COOL_1.0Andras Timar2016-06-011-1/+1
| | | | Change-Id: I34a393745265b8daca832c7df896bea090bb2554
* sc lok: limit movement of the cursorHenry Castro2016-06-013-1/+11
| | | | Change-Id: Ic7fe2dec012efb8ba180feb4d3df6f4bfbf6c38a
* sc lok: Add new param to .uno:EnterString to prevent committingPranav Kant2016-06-012-7/+27
| | | | | | | | | | | | | | | If new param, DontCommit, is specified start the edit engine and edit the current cell. This helps in not triggering calculations that depend on the current cell. In case DontCommit param is missing, it will work as it used to. Change-Id: I62408932e52ff68fa11568cfc16a43e4c1e919c5 Reviewed-on: https://gerrit.libreoffice.org/25753 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: pranavk <pranavk@collabora.com> (cherry picked from commit c14627d66ca8d9fe14272fadb5305857101f513e) Reviewed-on: https://gerrit.libreoffice.org/25788 Tested-by: pranavk <pranavk@collabora.com>
* framework: last dispatchInterceptor gets asked firstThorsten Behrens2016-06-011-9/+8
| | | | | | | | | | | | | | | | | | | Align implementation with API contract as spelled out in offapi/com/sun/star/frame/XDispatchProviderInterception.idl - no idea why this change happenend in 2003: Date: Fri Apr 4 16:16:05 2003 +0000 INTEGRATION: CWS fwk01 (1.1.72); FILE MERGED 2003/04/01 12:40:09 as 1.1.72.1: #107642# change order of used interception objects At any rate, with this change extensions actually get a chance to see dispatch requests first, and process/ignore at will. Change-Id: I58876150ee6d67e592f41b3e82a9ffc314e091a3 Reviewed-on: https://gerrit.libreoffice.org/25215 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 08cf2fd01064306eef7fdbb5b62320947c4d1089)
* framework: avoid excessive queryDispatch callsThorsten Behrens2016-06-011-7/+14
| | | | | | | | | | | | | Make better use of the css::frame::XInterceptorInfo interface, to avoid calling queryDispatch() pointlessly on interfaces that have explicitely opted out. Since that already broadcasts which urls we're interested in - so just don't bother calling entries who are not matching. Change-Id: Id5e780568fd60c38f4cee4ee800d747d65a31dae Reviewed-on: https://gerrit.libreoffice.org/25214 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 27b6cdb5ab5af33dbba561923c8db81e144c88b9)
* tdf#96949 Remove global static variable m_bPreferrFirstInterceptor and ↵shubhamtibra2016-06-012-22/+1
| | | | | | | | | | | | | unused code Remove global static variable "m_bPreferrFirstInterceptor" which is always true, and remove the ifs where it is false. Change-Id: I54dcea7a6010c825a66020ec3f7448bb32d120b8 Reviewed-on: https://gerrit.libreoffice.org/21519 Reviewed-by: jan iversen <jani@documentfoundation.org> Tested-by: jan iversen <jani@documentfoundation.org> (cherry picked from commit 5d4f1f6f630d4382679087a4fb0da364c9c9692b)
* Bump version to 5.0-38Andras Timar2016-06-011-1/+1
| | | | Change-Id: I888809cc1cfb72dc8d066f342e7771620e4c7de0
* LOK: calc tile renderingAshod Nakashian2016-06-011-1/+2
| | | | | | | Change-Id: I122922ac18a652dbbce01932eaaad92ded45098d Reviewed-on: https://gerrit.libreoffice.org/25782 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* Bump version to 5.0-37cp-5.0-37Andras Timar2016-05-291-1/+1
| | | | Change-Id: I998ddc1759bef24e2fc80b975cc22f832a6b6d49
* bccu#1845 - Calc tile rendering very slowAshod Nakashian2016-05-281-7/+83
| | | | | | | | | | | | | | | | | | | | | | | | | | For some reason trying to draw exactly the region of the tile results in black tiles. That is, when the top rows and left columns are not drawn, black tiles show. This patch still reduces the time to render a given tile by limiting the bottom-most row and right-most column to the max necessary. For large tabs rendering the first few 100 rows is very fast (<100ms at most). More work is necessary to reduce drawing time for large sheets (when rendering tiles at the bottom). Still, even those slow bottom-rows are now faster with this patch. Currently the slowest function by far is ScGridWindow::DrawContent. Change-Id: I6e88c7b3a1c483bf43bfcfb38f4b41ffc08a9744 Reviewed-on: https://gerrit.libreoffice.org/25586 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* lok: add uno command AssignLayoutHenry Castro2016-05-272-1/+8
| | | | Change-Id: I959d1a57945a3b5aa3f2c273c4b885ed5f628f6e
* bccu#1851 - CTRL+A in Writer comments shows selection at top-left cornerAshod Nakashian2016-05-281-0/+49
| | | | | | | Change-Id: Ia87b86a45a38449d59eb7bcea7f8cb4068655a17 Reviewed-on: https://gerrit.libreoffice.org/25571 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* bccu#1843 - Calc copy/paste chart tile invalidation problemcp-5.0-36Ashod Nakashian2016-05-261-0/+26
| | | | | | | Change-Id: I2f0bf28e87f4188abd81eb6c42bae915b2a046a8 Reviewed-on: https://gerrit.libreoffice.org/25489 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* widen table-info capacity and count to SCSIZEAshod Nakashian2016-05-262-5/+5
| | | | | | | Change-Id: Id659978e71c7027bc1c58f0bc276da38e1ada4ba Reviewed-on: https://gerrit.libreoffice.org/25488 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* lok: reset the font list when there are no itemsHenry Castro2016-05-252-1/+14
| | | | | | | | In the pre-init stage the devices were initialized with no font list, but later the font list is updated. So those devices were not updated. Change-Id: I157d4c7079f9b1252916eb92b512aadb8e77329f
* sd bccu#1840: .uno: commands for inserting rows / columns in Impress.Jan Holesovsky2016-05-256-11/+193
| | | | Change-Id: Ic07722c3e1f75d909ec8f123919a1898dfde05b0
* gtk_widget_get_window requires at least GTK 2.14Andras Timar2016-05-251-0/+2
| | | | Change-Id: Ie795683b5b800d6b00ba54dcb3f5c5a71b39212f
* lok don't supress start/end when there is selectionAshod Nakashian2016-05-251-2/+1
| | | | | | | Change-Id: I347d90cfa5432e18b9a0091ab575c0833538d941 Reviewed-on: https://gerrit.libreoffice.org/25422 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* bccu#1811 - Writer comment focusing / selection / cursor issueAshod Nakashian2016-05-259-18/+29
| | | | | | | | | | | Partially based on fd205e40c58aa749fbe458d74ca0c2373a1017dc which caused make desktop.check to fail when viewsh.?xx changes were included, so left them out. Change-Id: I5b4576d2385c1812f358a2434b87c8ca62024430 Reviewed-on: https://gerrit.libreoffice.org/25421 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* Bump version to 5.0-36Andras Timar2016-05-241-1/+1
| | | | Change-Id: Ib315d167486a5b3290ae014cd7d0de3d29bff72a
* lok context menu: Remove disabled items (set enabled to false)Pranav Kant2016-05-241-4/+2
| | | | Change-Id: I18a95cc53f9e79eab257baa4d7b23853cb05e039
* lok context menu: Expose context menuPranav Kant2016-05-241-0/+7
| | | | | | | | | (cherry-picked from 610db8d5d0500aed2ca6d4da822cf70746b44d49) Earlier cherry-pick (6be044e919d28b93332f04bdc18f6def2925b098) left out some code important to the working of lokdocview. Change-Id: I6422c28e880f9e04f4fad88e5202e46c4de2650d
* LOK: added the button type and key modifier to postMouseEvent()Mihai Varga2016-05-241-2/+28
| | | | | | | | | | | | | To get a better functionality we need to know the button type (left, right, middle). We also need the key modifier (ctrl, alt, shift) for actions such as ctrl+click (to open a link) or shift+click to select (cherry picked from commit c90c08a65c480a1012182979d5e9218f17a2ba2e) Button type was not cherry-picked earlier in 527a83d77c139427028ad08bef3a6349135716f7 Change-Id: If05326b1d7c82f14808bd2c15f552508b97bc7c1
* lokdocview: support LOK_CALLBACK_MOUSE_POINTERAndrzej Hunt2016-05-241-0/+11
| | | | | | | Change-Id: I2052e39fa2e25988a40f293389d5a183a625acd4 Reviewed-on: https://gerrit.libreoffice.org/19903 Reviewed-by: Andrzej Hunt <andrzej@ahunt.org> Tested-by: Andrzej Hunt <andrzej@ahunt.org>
* lok: Subcribe to more uno commands for state changePranav Kant2016-05-232-2/+36
| | | | Change-Id: Id2870b176de4163fbe01e4ac380b4981d3187d90
* sc lok bccu#1610 - Tiles not rendering in large spreadsheetsAshod Nakashian2016-05-223-12/+12
| | | | | | | | | | | | | Variable max info rows instead of hard-coded allows for collecting info on more rows. FillInfo, however, is extremely slow for large row count (a few thousand) and needs improving. Change-Id: Ib0e475513bc3ba98fff66a5b9d405aeba1057331 Reviewed-on: https://gerrit.libreoffice.org/25293 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* coverity#738785 reorg to silence Uninitialized pointer fieldCaolán McNamara2016-05-222-55/+66
| | | | | | | | | (cherry picked from commit 3ac0778c0a2b2f693a1029b7b05c1be4f71944a9) Change-Id: If2225e77215e2a6fb6b9e9dfc6021a2c20babe50 Reviewed-on: https://gerrit.libreoffice.org/25292 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* add TODO comment for a bugMarkus Mohrhard2016-05-221-0/+2
| | | | | | | | | | | | | | | This bug is the first one that was discovered because it is now much easier to see which parts of the code work on cells, pattern areas and whole columns/rows. Change-Id: I8f22bf421298947d65bfc2fc9c986d85169e6545 Reviewed-on: https://gerrit.libreoffice.org/23636 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit 2c69316037e29db52393d898100e6593a6cd5a24) Reviewed-on: https://gerrit.libreoffice.org/25291 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* extract another function from ScDocument::FillInfoMarkus Mohrhard2016-05-221-54/+65
| | | | | | | | | | | Change-Id: Ief094beebbff2bce9f087853cbda6adeeafe07fc Reviewed-on: https://gerrit.libreoffice.org/23635 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit b22e51d0c60f959c2db77bd3d23119b53bd87545) Reviewed-on: https://gerrit.libreoffice.org/25290 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* stylistic changes in ScDocument::FillInfoMarkus Mohrhard2016-05-221-1/+4
| | | | | | | | | | | Change-Id: I98bb25d414106259a809698941a000d6d0bc35e0 Reviewed-on: https://gerrit.libreoffice.org/23634 Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit b27428d2136e67ee7c7449a7db562a957af390d6) Reviewed-on: https://gerrit.libreoffice.org/25289 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* limit scope of another variable in ScDocument::FillInfoMarkus Mohrhard2016-05-221-2/+1
| | | | | | | | | | | Change-Id: Ic53bcaa5e33f221a643de4e854990769b5c04a74 Reviewed-on: https://gerrit.libreoffice.org/23633 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit 8f0668a0e18f4fa01864ede5fa3f66b36bd4ad85) Reviewed-on: https://gerrit.libreoffice.org/25288 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* limit the scope of a few variable in ScDocument::FillInfoMarkus Mohrhard2016-05-221-21/+17
| | | | | | | | | | | | | | | This makes the code at least a little bit easier to read as we can now see much easier when a variable is used to transport state between loops and when it is just a variable local to a loop Change-Id: Ib92ff1596bda35f9892accc820bc3596bafb7d96 Reviewed-on: https://gerrit.libreoffice.org/23632 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit 36eec4d179898302578c428564f1b60406c0716c) Reviewed-on: https://gerrit.libreoffice.org/25287 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* extract another function from ScDocument::FillInfoMarkus Mohrhard2016-05-221-15/+20
| | | | | | | | | | | Change-Id: Iac607e1fe915c8bc90316508c98855a60117d435 Reviewed-on: https://gerrit.libreoffice.org/23631 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit 772e66406b90bdb898e73b4fa944a6e55a42683b) Reviewed-on: https://gerrit.libreoffice.org/25286 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* extract another function from ScDocument::FillInfoMarkus Mohrhard2016-05-221-51/+59
| | | | | | | | | | | Change-Id: If6f898d514dc454a7f1c5448769a95269e9066d7 Reviewed-on: https://gerrit.libreoffice.org/23550 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit 5ecda97eeab36ceab022458345f2c61c31ab2d94) Reviewed-on: https://gerrit.libreoffice.org/25285 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* that should not have become part of the previous commitMarkus Mohrhard2016-05-221-2/+3
| | | | | | | | Change-Id: Ia116e5f9fdbd34cd1017ec1f2dabf6e581c4c707 (cherry picked from commit 789a3e61785a2458429890e28ad9a37fab8cdade) Reviewed-on: https://gerrit.libreoffice.org/25284 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* extract another function from ScDocument::FillInfoMarkus Mohrhard2016-05-221-83/+90
| | | | | | | | | (cherry picked from commit a70824f0220b88f3f209266f8e1cba98dc89ca8f) Change-Id: Ifd39ec5ad7aebac532ea7145274005507a5b177f Reviewed-on: https://gerrit.libreoffice.org/25283 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* Refactor ScMarkData for tdf#50916Dennis Francis2016-05-2214-125/+818
| | | | | | | | | | | | | | | | | | | Made the container for storing multimarks dynamic. Also let the full row marks to be stored in a dedicated ScMarkArray object rather than in the multimarks container. Unit tests for ScMarkData and ScMultiSel will come in a follow up patch. Reviewed-on: https://gerrit.libreoffice.org/22163 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit bc20c6d0f397c0c1aef6ef7d6f750c2f81af8db6) Change-Id: I300ff80bebd6f4f39c284c1e8cb7deece82c1bec Reviewed-on: https://gerrit.libreoffice.org/25282 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* o3tl: add make_unique template till we can't use std::make_uniqueMiklos Vajna2016-05-223-2/+37
| | | | | | | | | | | Change-Id: I48b26f0199e339badf7a0e2bed322ca701689d13 Reviewed-on: https://gerrit.libreoffice.org/15846 Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk> Tested-by: Jenkins <ci@libreoffice.org> (cherry picked from commit 821b72886f1e407a492f881a2efb27ead2c22b5c) Reviewed-on: https://gerrit.libreoffice.org/25281 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* extract function from ScDocument::FillInfoMarkus Mohrhard2016-05-221-8/+15
| | | | | | | | | | | | | A first step in breaking the function into smaller pieces. Change-Id: I94aeb11fd9c44a7eaa198cb39f208b574ef2758d Reviewed-on: https://gerrit.libreoffice.org/23548 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit efea43b4c4f42023a540079866b065068ae8a8e5) Reviewed-on: https://gerrit.libreoffice.org/25280 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* bccu#1800 fix bogus loops in slide animations and transitionsAndras Timar2016-05-201-2/+2
| | | | Change-Id: Ia0ba0921c3ebfbfbd66fddf81e43fec480f6d5bb
* bccu#1781: Impress/Comments - selection not updated on deleteAshod Nakashian2016-05-202-1/+4
| | | | | | | Change-Id: I694d76785fcf6ec9c158c34cbe07f4d1f2c7a41d Reviewed-on: https://gerrit.libreoffice.org/25219 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* LOK: don't filter cursor visibility during paintingAshod Nakashian2016-05-191-1/+2
| | | | | | | Change-Id: Ia44ffe08dc8f46e0d10a73db374a283eb032f771 Reviewed-on: https://gerrit.libreoffice.org/25120 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* Revert "LOK: invalidate cursor only when required"Ashod Nakashian2016-05-191-1/+1
| | | | | | | | | This reverts commit b229297372f793239f2304592f32065147169cde. Change-Id: Iedc432c81829ba366966f96dfcd6ac2f405b9ba7 Reviewed-on: https://gerrit.libreoffice.org/25119 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* lok context menu: Include uno commands for submenus tooPranav Kant2016-05-161-0/+2
| | | | Change-Id: I4ba49ba94a3270a5d53754320e5fbd49e3f5c848
* Revert "lok context menu: Include uno commands for submenus too"Pranav Kant2016-05-161-99/+0
| | | | | | | By mistake resolved conflicts incorrectly. Correct version comming up. This reverts commit d57994a20b012c67db47d488409ee14fb11b9751.
* lok context menu: Include uno commands for submenus tooPranav Kant2016-05-161-0/+99
| | | | Change-Id: I4ba49ba94a3270a5d53754320e5fbd49e3f5c848
* LOK: invalidate cursor only when requiredAshod Nakashian2016-05-151-1/+1
| | | | | | | Change-Id: I3481dce94070f28593a970cb2d8530131165c41b Reviewed-on: https://gerrit.libreoffice.org/25016 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
* LOK: ensure KeyInput is handled with the correct MapModeAshod Nakashian2016-05-151-0/+5
| | | | | | | | | | | | | The MapMode is set explicitly to make sure the coordinates of the comment widget is in absolute terms. However PostItMgr::MakeVisible invalidates it. This is to ensure that the MapMode is restored after MakeVisible is called when LOK is active. Change-Id: I2adf749488e6eb46d29a0b29c4dfd644606c92ab Reviewed-on: https://gerrit.libreoffice.org/25015 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>