Commit Graph

336 Commits

Author SHA1 Message Date
Abdelrazak Younes
0743f576cb * BufferView:
- dispatch(): transfer LFUN_FILE_INSERT_PLAINTEXT_* to GuiView::dispatch()
- insertPlaintextFile(): split in BufferView::insertPlaintextFile() and GuiView::insertPlaintextFile()

This patch get rid of FileDialog use in BufferView. Remains Buffer, Converters and LyXFunc.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21930 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-02 20:05:17 +00:00
Abdelrazak Younes
c68601da9f * BufferView:
- dispatch(): transfer LFUN_FILE_INSERT to GuiView::dispatch()
- menuInsertLyXFile(): split in BufferView::insertLyXFile() and GuiView::insertLyXFile()


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21923 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-02 17:50:08 +00:00
Abdelrazak Younes
b1db731a98 * FileName::fileContents(): new argument to define the file encoding.
* BufferView:
- insertPlaintextString(): now accept a FileName.
- contentsOfPlaintextFile(): ditto and use FileName::fileContents().
 

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21915 a592a061-630c-0410-9148-cb99ea01b6c8
2007-12-02 11:55:25 +00:00
André Pönitz
d5fc2425a9 consolidate showDialog() incarnations
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21662 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-18 00:39:15 +00:00
Abdelrazak Younes
926abae753 Simplify single par drawing:
* ParagraphMetrics::computeRowSignature(): Integrate row's dimensions and selection status in the row signature.
* TextMetrics::drawParagraph(): compute the row signature here and rely on that to decide if a redraw is needed or not.
* BufferView::Private: get rid of the ViewMetricsInfo member. Just keep the ScreenUpdateStrategy.
* BufferView::draw(): full screen update even for singlePar case because the row signature will detect if something needs to be redrawn.
* Text3.cpp: get rid of hack following architecture update.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21650 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-17 11:27:03 +00:00
Abdelrazak Younes
e660f44001 Current update architecture doesn't need multiParSel() special case anymore.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21467 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-06 09:34:16 +00:00
Abdelrazak Younes
f84080f01c * Bufferview::updateMetrics(): Separate out the SinglePar optimization.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21463 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-06 08:32:25 +00:00
André Pönitz
14918bf4b9 remove unneeded @includes from BufferView.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21409 a592a061-630c-0410-9148-cb99ea01b6c8
2007-11-03 18:50:54 +00:00
André Pönitz
a5263e0f92 introduce a header to forward declare std::string.
hope there are only conforming implementaions out there ;-}


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@21312 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-31 22:40:34 +00:00
Abdelrazak Younes
61dba28fc4 please Angus.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20935 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-13 07:33:07 +00:00
Abdelrazak Younes
a800da1bfe initial support for shift + right-mouse-click selection.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20903 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-11 14:46:53 +00:00
Abdelrazak Younes
9a458ec6e9 Move private part of BufferView to a private implementation.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20896 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-11 09:59:01 +00:00
Abdelrazak Younes
e3032e7d0e * BufferView::update(): renamed to processUpdateFlags() to clarify the intent. Also get rid of the default argument which added to the confusion as to what was the purpose of update(). Now also emit Buffer::changed() signal internally instead of assuming that the caller will act upon the returned boolean.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20884 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-10 08:52:55 +00:00
Abdelrazak Younes
86e8f751e1 Small API cleanup: as BufferView already use Buffer::changed() make it use it some more instead of WorkArea.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20747 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-05 09:38:40 +00:00
André Pönitz
58ab972f71 last commit was incomplete... not sure how I managed this..
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20710 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-03 20:15:49 +00:00
André Pönitz
095cf23394 shuffle some code around
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20706 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-03 18:56:37 +00:00
André Pönitz
b847b8c7df the delegate patch
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20667 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-02 18:27:20 +00:00
Abdelrazak Younes
3ca9ddb6ed Move most of the Gui specific code in Toolbars to its new qt4 specialization GuiToolbars.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20644 a592a061-630c-0410-9148-cb99ea01b6c8
2007-10-01 20:45:50 +00:00
André Pönitz
fad47c0fe0 boost/utility -> boost/noncopyable
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20608 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-30 15:47:00 +00:00
André Pönitz
122f32ea29 cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20578 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-29 09:22:17 +00:00
André Pönitz
f1687373b1 cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20577 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-29 08:02:37 +00:00
Abdelrazak Younes
2417d9d911 * BufferView::updateMetrics(): split up the method in two for the SinglePar case.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20563 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-28 09:11:24 +00:00
Abdelrazak Younes
8d52aa5638 Give PageDown/Up scrolling a sane behaviour. Does not work with selection yet...
* BufferView:
- new scroll(), scrollDown() and scrollUp() method for pixel scrolling.
- new LFUN_SCREEN_UP/DOWN handling.
 
* TextMetrics: new helper and access methods.




git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@20283 a592a061-630c-0410-9148-cb99ea01b6c8
2007-09-15 12:28:41 +00:00
Abdelrazak Younes
a276c05770 transfer margin declaration to BufferView.h
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19854 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-28 15:31:04 +00:00
Abdelrazak Younes
a43e822c98 Transfer rowpainter.cpp:paintText() to BufferView::draw()
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19843 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-27 22:53:16 +00:00
Abdelrazak Younes
91f8cbe204 * BufferView::workAreaResize(): renamed to resize.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19766 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-24 07:05:19 +00:00
Abdelrazak Younes
e809647c77 simplify BufferView::moveToPosition() use for the external use (in LyXView and LyXFunc).
* BufferView::moveToPosition()
- now only return success boolean
- now schedule a screen centering
- now set the current font to the new position.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19722 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-22 14:25:51 +00:00
Abdelrazak Younes
5203c56db4 Fix bug 3427:
http://bugzilla.lyx.org/show_bug.cgi?id=3427

The problem was that offset_ref_ was calculated based on an empty metrics. The solution is delay the calculation up until the next metrics update.

* BufferView:
- center(): now just set the anchor_ref and program a new screen recentering.
- updateOffsetRef(): update the offset_ref_


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19721 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-22 14:14:52 +00:00
Abdelrazak Younes
0fcae6cc10 * BufferView::buffer() returns a reference instead of a pointer.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19691 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-21 13:03:55 +00:00
Abdelrazak Younes
1356543c45 The BufferView/WorkArea/LyXView reorg a.k.a Multiple WorkAreas:
* Buffer:
- get rid of cursor_ and anchor_
- ~Buffer(): update the labels of its master buffer before closing
- closing(): pass the Buffer address.

* BufferView():
- BufferView(): needs a valid Buffer (should be const in the future.
- most of the change is about removing all test of buffer_ nullity.
- resize(): deleted.
- setBuffer(): deleted.

* Application:
- newLyXView(): simplification
- updated design description in Application.h

* Gui/GuiImplementation: remove all WorkAreas and BufferView creation/Deletion. Workareas are directly handled by  LyXView/GuiView and BufferView is created/delete by WorkArea.

* LyXView/GuiView: implement the new design

What is not working yet:
- the close tab button: it is implemented but does not show up.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19686 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-21 07:33:46 +00:00
Richard Heck
eacbcb3f3a Fix bug 4096. Don't disconnect the buffer until we're ready to connect again.
Also, clean up the code a little.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19287 a592a061-630c-0410-9148-cb99ea01b6c8
2007-08-03 14:07:39 +00:00
Abdelrazak Younes
4a53fa6e01 Allow unicode in Layout names.
* Layout.h:
  - name_, obsoleted_by_, depends_on_ are now docstrings.

All other changes results from the above string -> docstring changes. In particular, we now try to translate the layout names only if possible (i.e. if they are ASCII only).



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@19042 a592a061-630c-0410-9148-cb99ea01b6c8
2007-07-11 13:39:08 +00:00
Abdelrazak Younes
144e721b65 Polish revision 18825 and fix some remaining issues with child documents. The diff is bigger than it should because of white space issues.
* buffer_funcs.{h,cpp}: new checkAndLoadLyXFile() transferred from BufferView::loadLyXFile().

* BufferView::loadLyXFile(): deleted.

* LyXView::loadLyXFile(): simplify logic and fix some issues:
  - buggy child document leads to crash due to error list dialog.
  - ensure that we switch to buffer if there's some errors.
  - use LyXView::setBuffer() instead of repeating code.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18828 a592a061-630c-0410-9148-cb99ea01b6c8
2007-06-19 16:03:47 +00:00
Richard Heck
d3003c1022 Polish the Toc and labels updating when loading a child document.
Fix Bug 3860: Toc crash when loading a child documents.

* BufferView::loadLyXFile(): simplify, transfer last part to
  LyXView::loadLyXFile().
  Change return value to Buffer created by load (or 0 if none).
  Ultimately, this should all be moved to buffer_funcs.cpp, as it is no
  longer needed here.

* Buffer::setParentName(): small fix to avoid recursive includes.

* LyXView:
- setBuffer(): properly update the labels and the Toc if this is [LOAD Child
  Document] command. Move buffer connection and disconnection, simplifying
  earlier code.
- loadLyXFile(): get some code from BufferView::loadLyXFile() and from
  LyXFunc::LFUN_BUFFER_CHILD_OPEN, properly handle the child document case.
  There's a lot of overlap with setBuffer() here. This needs cleaning.

* LyXFunc: add optional argument to LFUN_BUFFER_CHILD_OPEN to indicate if
  the document is being opened by LyX itself rather than the user (as on 
  View>DVI, for example).

* LyX: adapt to loadLyXFile() API changes.

* insets/InsetInclude: use LFUN_BUFFER_CHILD_OPEN rather than calling
  loadLyXFile() directly. Make use of new optional argument.

With this in place, the only thing missing for proper multipart document support is to automatically update the parent Buffer when switching from the parent Buffer. This would be very useful when you work with multiple document sharing the same child documents (as I often do).



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18825 a592a061-630c-0410-9148-cb99ea01b6c8
2007-06-19 14:56:52 +00:00
Dov Feldstern
6742e42e79 KeyMap is now switched (if necessary) only just before it is actually used
for translating keystrokes. Up until now, the switching was done in advance
in all kinds of situations, but not just before translating was actually done
--- which resulted in the KeyMap not always being switched on time...

This solves bug #3811 (http://bugzilla.lyx.org/show_bug.cgi?id=3811)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18744 a592a061-630c-0410-9148-cb99ea01b6c8
2007-06-11 22:05:44 +00:00
Lars Gullik Bjønnes
897436efbb Whitespace cleanup
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18550 a592a061-630c-0410-9148-cb99ea01b6c8
2007-05-28 22:27:45 +00:00
André Pönitz
e0d54dd3b4 LyXText -> Text
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18103 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-29 23:33:02 +00:00
André Pönitz
32871c1284 rename InsetBase to Inset
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18089 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-29 13:39:47 +00:00
Bo Peng
e36fba33ab Last (?) batch of renames:
src/frontends/Alert.h src/frontends/alert.h
src/frontends/Alert.cpp src/frontends/alert.cpp
src/frontends/Alert_pimpl.cpp src/frontends/alert_pimpl.cpp
src/frontends/qt4/Alert_pimpl.cpp src/frontends/qt4/alert_pimpl.cpp
src/frontends/controllers/ButtonPolicies.cpp src/frontends/controllers/ButtonPolicy.cpp
src/frontends/controllers/ButtonPolicies.h src/frontends/controllers/ButtonPolicy.h
src/insets/InsetEnv.cpp src/insets/InsetEnvironment.cpp
src/insets/InsetEnv.h src/insets/InsetEnvironment.h
src/mathed/MathMacroTable.h src/mathed/MacroTable.h
src/mathed/MathMacroTable.cpp src/mathed/MacroTable.cpp
src/lyx_cb.h src/callback.h
src/lyx_cb.cpp src/callback.cpp
src/UpdateFlags.h src/update_flags.h


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18076 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-28 20:44:46 +00:00
André Pönitz
42123ab8a7 rename LCursor->Cursor
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18040 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-26 14:56:30 +00:00
Bo Peng
00e305c9d9 Rename .C ==> .cpp for files in src, part one
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@18018 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-26 04:41:58 +00:00
Bo Peng
a390aa8fe7 Bookmarks: use bottom level pit and pos
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17829 a592a061-630c-0410-9148-cb99ea01b6c8
2007-04-16 19:01:32 +00:00
Bo Peng
6fc7d47a5f Restore old bookmark behaviors (stop using bookmark queue)
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17628 a592a061-630c-0410-9148-cb99ea01b6c8
2007-03-29 03:41:55 +00:00
Abdelrazak Younes
dace843ddc Re-enable mouse hover detection over insets. This was disable at rev 17589 to fix bug 3144 which has been re-opened for this.
There is a user visible change with this commit: For text insets, the button stays "highlighted" as long as the mouse cursor is within the inset but not within a nested inset. Formerly the button was highlighted only when hovered. This new behaviour is better because we can now imagine funkier behaviour like inset color background change when hovered. Also the small math pink corners can be adapted to react to mouse hover in the future. Ideally we should also "highlight" the button when entering the inset via the keyboard or when the keyboard cursor is just before the inset (because we can then use Ctrl-i).

* BufferView:
  - getCoveringInset(): new method.
  - workAreaDispatch(): use getCoveringInset() instead of LyXText::checkInsetHit()


 

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17610 a592a061-630c-0410-9148-cb99ea01b6c8
2007-03-28 14:47:52 +00:00
Michael Schmitt
5d41611407 * BufferView.C:
* BufferView.h:
	* lyxfunc.C:
	* factory.C:
	* mathed/InsetMathNest.C:
	* mathed/InsetMathHull.C:
	* lyx_cb.C:
	* frontends/WorkArea.C: remove BufferView::getLyXText() methods, because their
	names were absolutely misleading; resolve indirection where needed


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17016 a592a061-630c-0410-9148-cb99ea01b6c8
2007-02-01 19:27:37 +00:00
Abdelrazak Younes
c347f0467b Remove buggy and redundant BufferView::update() calls.
* BufferView::dispatch() now returns an Update::flags.

* lyx_cb.C::insertPlaintextFile(): delete redundant BufferView::update() call.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16844 a592a061-630c-0410-9148-cb99ea01b6c8
2007-01-24 23:10:03 +00:00
Abdelrazak Younes
5554e9ee28 replace BufferView::reload() uses with LyXFunc::reloadBuffer().
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16727 a592a061-630c-0410-9148-cb99ea01b6c8
2007-01-17 14:49:48 +00:00
Bo Peng
dbe93457cd Fix bug 3092, use both pit and id to keep track of bookmarks.
* src/session.h/C: save pit instead of id
	* src/lyxfunc.h/C: gotoBookmark function
	* src/BufferView.h/C: proper update of bookmarks


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16647 a592a061-630c-0410-9148-cb99ea01b6c8
2007-01-11 16:01:10 +00:00
Abdelrazak Younes
ceb51f7f76 Sanitize the DEPM!
* BufferView:
  - checkDepm(): new method for DEPM mechanism.
  - mouseSetCursor(): use checkDepm().

* text2.C:
  - use BufferView::checkDepm() instead of using LyXText::deleteEmptyParagraphMechanism() directly.
  - deleteEmptyParagraphMechanism(): prepare for conversion to DocIterator (code transferred to BufferView::checkDepm()).


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16442 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-30 15:05:15 +00:00
Abdelrazak Younes
d77424fc86 delete unused stuff.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16434 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-30 00:00:19 +00:00
Abdelrazak Younes
b2126408cf This commit do the Model/View separation of the LyXText and Paragraph classes. The separation is mostly complete for the Paragraph class but some more transfer should occur for the LyXText class.
* ParagraphMetrics.[Ch]: new files

* TextMetrics.[Ch]: new files.

* lyxtext.h/text2.C/text3.C: some code transferred to the TextMetrics class.

* paragraph.[Ch]: all screen oriented code transfered to ParagraphMetrics class.

* BufferView:
 - text_metrics_: new TextMetrics cache private member.
 - textMetrics(): new access method.
 - parMetrics(): ditto.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16433 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-29 23:54:48 +00:00
Bo Peng
647df45a50 minor comment fix
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16286 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-15 16:53:02 +00:00
Bo Peng
e78b1cf6d7 BufferView.h/C: use member variable last_inset_ instead of static variable in workAreaDispatch to avoid potential mutliple window problems
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16285 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-15 16:48:09 +00:00
Jürgen Spitzmüller
fc30e9f6bb Fix dEPM crash:
* src/BufferView.[Ch]: 
	- make mouseSetCursor a bool and pass dEPM return value.

* src/text3.C (doDispatch):
	- LFUN_MOUSE_PRESS: request update if mouseSetCursor
	  (i.e. dEPM) returned true.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16240 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-11 13:59:40 +00:00
Abdelrazak Younes
5ce7ae1883 * BufferView:
- update(): return bool only, and cleanup of the DOX comments.
  - workAreaDispatch(): return bool only, cleanup of the DOX comments, change update() call to updateMetrics() and add some FIXMEs.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16197 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-07 11:46:27 +00:00
Georg Baum
ed99f752f9 more unicode filenames
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@16133 a592a061-630c-0410-9148-cb99ea01b6c8
2006-12-02 16:07:15 +00:00
Abdelrazak Younes
c66d2f1ee5 Optimize drawing.
* BufferView:
  - update(): returns a pair of bools in order to inform for singlePar cases.
  - workAreaDispatch(): ditto and simplify the logic by using cursor update flags.

* text.C
  - breakParagraph(): change the cursor update flag as needed.
  - insertChar(): ditto.
  - erase(): ditto
  - redoParagraph(): now returns true if there is a height change.

* text3.C: dispatch():
  - initialize the cursor flag at the beginning
  - LFUN_MOUSE_PRESS: no need to update.
  - LFUN_MOUSE_RELEASE: ditto.
  - add some FIXMEs and comments.

* LyXFunc::dispatch(): simplify the BufferView update.

* insets/insetcollapsable.C: clarify and simplify the logic in doDispatch().

* WorkArea::dispatch(): redraw only if needed.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15958 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-17 17:42:52 +00:00
Abdelrazak Younes
6b764fd188 doxygen update.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15816 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-09 10:10:06 +00:00
Abdelrazak Younes
339a449a37 adjust a doxygen comment.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15813 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-09 09:06:37 +00:00
Bo Peng
f49f2f6e22 New bookmarks implementation:
* src/lyxfunc.C: handle LFUN_BOOKMARK_GOTO and LFUN_BOOKMARK_CLEAR
	* src/session.h/C: store bookmarks here.
	* src/lfuns.h, src/LyXAction.C: add LFUN_BOOKMARK_CLEAR
	* src/BufferView.h/C: remove saved_positions, move LFUN_BOOKMARK_GOTO to lyxfunc.C
	* src/MenuBackend.h/C: add Bookmarks menu type
	* lib/ui/stdmenus.ui: change bookmarks menu items


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15673 a592a061-630c-0410-9148-cb99ea01b6c8
2006-11-01 15:55:17 +00:00
Asger Ottar Alstrup
37e164c6f9 - rework update handling, make cursor movement faster,
fixing lots of navigation problems.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15470 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-22 11:46:36 +00:00
André Pönitz
6c300f72a2 move everything into namespace lyx
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15422 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-21 00:16:43 +00:00
Abdelrazak Younes
562d55989a MacOSX compile fix: The class Point conflicted with a struct defined in MacTypes.h.
* coordcache.[Ch]: put everything in the LyX namespace.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15340 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-15 22:32:56 +00:00
Abdelrazak Younes
d37fae169c In order to support multiple LyXView each BufferView needs its own CoordCache. This is what's implemented in this commit.
theCoords is now a thing of the past and all CoordCache accesses are done via BufferView::coordCache() now. I had to modify a number of methods to pass BufferView.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15324 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-13 16:44:44 +00:00
Georg Baum
79c876d4c3 Convert labels to unicode
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15305 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-12 10:50:45 +00:00
Michael Schmitt
1b5f5e58ed Change tracking:
* src/paragraph.h: remove enum ChangeTracking;
	remove default parameters for insertChar and insertInset
	* src/BufferView.h: constify getCurrentChange()
	* src/changes.h: make Change constructor explicit
	* src/insets/*.C: 
	* src/*.C: adjust accordingly; add FIXMEs


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15302 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-11 20:01:32 +00:00
Michael Schmitt
eb11f2c542 Change tracking:
* rename output_changes to outputChanges
 * rename tracking_changes to trackChanges
 * add FIXMEs for later revision
 * remove trackChanges(); the CT data structure will always be set up
 * decouple LFUNs changes-output/change-accept/change-reject/
   all-changes-accept/all-changes-reject from LFUN changes-track



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15261 a592a061-630c-0410-9148-cb99ea01b6c8
2006-10-06 18:53:35 +00:00
Abdelrazak Younes
b171e5f150 Free BufferView from LyXView!
* BufferView
  - layoutChanged: new boost signal.
  - LyXView owner(), owner_: deleted

* text3.C
  - emit BufferView::layoutChanged instead of calling LyXView::setLayout directly
  - LFUN_MOUSE_RELEASE: delete LyXView updateMenubar() and updateToolbars() direct calls.
    The update is of both bars is done in WorkArea::dispatch().

* WorkArea.C
  - dispatch(): add LyXView updateMenubar() call.

* LyXView
  - connects to BufferView::layoutChanged directly to Toolbars::setLayout()
  - setLayout(): deleted.

* qt4/GuiImplementation: modify BufferView construction (without LyXView).

All other files: cleanup header declaration of LyXView.h


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15153 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-26 10:06:46 +00:00
Abdelrazak Younes
311ac9b192 This is the continuation of my BufferView/LyXView cleanup. This commit replaces BufferView->LyXView->getDialogs().[show(), update()] with BufferView signal emissions.
The associated WorkArea is then responsible to connect these signals to its LyXView parent.

* BufferView:
  - showDialog, showDialogWithData, showInsetDialog: new boost signals

* LyXView:
  - connectBufferView(), disconnectBufferView(): new method in charge of the connection/disconnection of the above signal to associate private methods (showDialog(), etc).

* WorkArea
  - setBufferView(): will connect/disconnect the BufferView to its LyXView parent.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15068 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-19 13:36:20 +00:00
Abdelrazak Younes
1a786c8e17 * Transfer Intl member from LyXView to BufferView.
* delete unused offset_ref() method.




git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15030 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-17 10:03:00 +00:00
Abdelrazak Younes
397605290d delete unsetXSel() method
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15025 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-17 08:48:06 +00:00
Abdelrazak Younes
574e4444a8 Move X11 specific selection code from BufferView to the frontends.
* BufferView:
 - selectionRequested(): renamed to requestSelection() and cleaned up.
 - selectionLost(): renamed to clearSelection()

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15024 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-17 08:35:12 +00:00
Abdelrazak Younes
1a0f5eaf8d deledelete BufferView::available() method because buffer serves the same purpose.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15018 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-16 14:00:13 +00:00
Abdelrazak Younes
972e1eec7c delete BufferView::text() method and add two FIXME in text.C
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15017 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-16 13:34:09 +00:00
Abdelrazak Younes
bcb71b1fbe Merge BufferView and BufferView_pimpl
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15013 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-16 10:08:51 +00:00
Abdelrazak Younes
a6444784dc A bunch of conversion to docstring.
- bformat(): contributed by Georg Beaum
- Alert::XXX
- error(): in SpellBase, ispell, psell, aspell, buffer, etc.
- message(), message signal
- displayMessage(), setMessage,
- ErrorItems
- prettyName()
- makeDisplayPath()

and maybe some more...


- etc... 

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14970 a592a061-630c-0410-9148-cb99ea01b6c8
2006-09-11 08:54:10 +00:00
Abdelrazak Younes
4cdd558c70 * BufferView: delete firstLayout()
* LyXView: save two setLayout() calls that are done in updateLayoutChoice() anyway.



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14833 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-24 16:55:31 +00:00
Abdelrazak Younes
c70f77354a That commit replaces the Buffer::message() signal emissions from within "BufferView_pimpl.C" and "lyxfind.C" with BufferView::message() signal emission.
* BufferView.h: new message boost signal.

* BufferView_pimpl.C: replace Buffer::message() with BufferView::message() signal emission.

* lyxfind.C: ditto.

* WorkArea:
  - displayMessage(): new private method that calls LyXView::message().
  - messageConnection_: new signal connection.
  - setBufferView(): handle BufferView connection/disconnection.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14831 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-24 14:10:22 +00:00
Abdelrazak Younes
dd429b7f26 This commit should hopefully fix all scrolling issues. As an added bonus, mouse scrolling should be faster due to a deleted call to BufferView::update() that was not usefull (the important call to updateMetrics() is done in WorkArea()).
Log:
* BufferView/pimpl:
  - scrollDocView(): call to BufferView::update() deleted.
  - scrollDocView(): second part is now in setCursorFromScrollbar()
  - setCursorFromScrollbar(): new method.

* WorkArea:
  - setBufferView(): show the cursor immediately
  - redraw(): call to updateScrollbar()
  - updateScrollbar(): new method
  - scrollBufferView(): fix it and show the cursor immediately.

* qt4/GuiWorkArea
  - setScrollbarParams(): now disable the Qt scrollbar tracking.
  - paintEvent(): scrollbar related code deleted

* qt3/QWorkArea
  - setScrollbarParams(): now disable the Qt scrollbar tracking.

* qt3/QContentPane
  - paintEvent(): scrollbar related code deleted




git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14704 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-16 15:24:38 +00:00
Abdelrazak Younes
f475b7bde6 This commit transfers most of the LyXView use from BufferView to WorkArea, most notably:
LyXView::updateLayoutChoice();
LyXView::updateToolbars();
LyXView::getLyXFunc().processKeySym(key, state);
LyXView::dispatch(cmd);

* BufferView
  - workAreaKeyPress(): deleted

* BufferView::pimpl
  - gui(): deleted
  - workAreaKeyPress(): deleted
  - workAreaDispatch(): special FuncRequest transfered to WorkArea::dispatch()

* WorkArea
  - WorkArea(): now needs a LyXView
  - lyx_view: new member
  - scrollBufferView(): new method

* qt4/GuiWorkArea: adapted to above changes
* qt4/GuiImplementation: ditto
* qt3/GuiWorkArea: ditto
* qt3/QContentPane: ditto
* gtk/GuiWorkArea: ditto
* gtk/GWorkArea: ditto



git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14695 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-15 21:57:23 +00:00
Jean-Marc Lasgouttes
b1a54e83eb remove unused stuff
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14687 a592a061-630c-0410-9148-cb99ea01b6c8
2006-08-15 13:28:23 +00:00
Abdelrazak Younes
00c37e4781 This commit transfer the ErrorList handling from LyXView to Buffer. It also removes the need for the error signal and simplify the kerbel <-> frontend communication. I think it should speed-up _significantly_ the latex compilation for example in case of problematic files.
TODO 1: All occurrences of "LyXView::showErrorList()" in the "kernel" should be replaced by a boost signal emission (Buffer::errors()). This signal is already connected to this showErrorList() slot.

TODO 2: The ErrorList mechanism is used wrongly in a number of place, most notably in "Converter.C". Instead of replacing the ErrorList in the "Buffer" class, the "Converter" class should maintain its own list instead and connect directly to the LyXView::showErrorList() slot.

Buffer:
* errorList_: new private member and associated access methods.
* setErrorList(): new accessor method.
* addError(): apend an error to the errorList_.
* error(): deleted.
* errors(): new boost signal, unused for now. Shall be used instead of LyXView::showErrorList().

LyXView:
* getErrorList(), addError(), errorlist_, errorConnection_: deleted.
* errorsConnection_: new boost connection for the Buffer::errors() signal.

lyx_main.C:
* LyX::exec2(): manually print all errors.

BufferView.h: remove unneeded ErrorList forward declaration.

BufferView::pimpl::menuInsertLyXFile(): delete Buffer::error() connection and add a FIXME comment

text.C: Use Buffer::addError() instead of Buffer::error() signal emission.

ControlErrorList.C: get the ErrorList from the Buffer instead of LyXView


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14467 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-15 22:43:37 +00:00
Abdelrazak Younes
a4032074c9 This commit continues the drastic diet operated on BufferView. It removes all boost signal connections from BufferView::pimpl and put them in LyXView. LyXView already inherits from boost::signals::trackable so this is not a big deal. If you look closely at the signal connections, it all makes sense IMO.
With this change, the only difference between BufferView.h and BufferView_pimpl.h is "cursor.h" so I think it is time to merge the two classes at last.

BufferView:
* showErrorList(), getErrorList(): transfered to LyXView.

BufferView::pimpl
* addError(), showReadonly(), connectBuffer(), disconnectBuffer(): transfered to LyXView.

CutAndPaste.C: adapted to API changes
frontends/controllers/ControlErrorList.C: ditto
lyxfunc.C: ditto 


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14458 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-14 21:47:48 +00:00
Abdelrazak Younes
93f7adabbb This commit removes the needRedraw() interface and simplify the screen update procedure. It also fixes all crash problems.
The performance may suffer a bit because we do the second drawing step in all cases. This could be possibly optimized out by checking the return value of the BufferView::update() method in "lyxfunc.C:1610". But it is maybe better to keep those two parts of the frontend ignorant of each other: the event handling and the drawing.

BufferView:
* needRedra(), need_redraw_: deleted.
* updateMetrics(): now public.
* update(): only do the first drawing step. Returns true if a full updateMetrics is needed before drawing on screen.

WorkArea:
* redraw(): no check on BufferView::needRedraw(), call updateMetrics() unconditionally. 
* processKeySim(): uneeded "redraw()" call commented out. When/if the call to LyXView::redrawWorkArea() in "lyxfunc.C:1610" is not needed anymore, this line should be uncommented out.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14456 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-14 09:56:21 +00:00
Abdelrazak Younes
e1a5cb74a8 GUI API Cleanup step 3: merge with "younes" branch.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14448 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-13 16:37:55 +00:00
Lars Gullik Bjønnes
e7b69c030e Extracted from r14281
* BufferView:
    - hideCursor(): deleted (for real)
* frontends/GuiCursor:
    - deleted. Functionality transfered to WorkArea.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14389 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-08 22:55:22 +00:00
Lars Gullik Bjønnes
28c5673ff4 Extracted from r14281
* frontends/LyXView:
	- redrawWorkArea(): new temporary method called from within
	  BufferView::pimpl::update() that calls WorkArea::redraw()
	  in order to do the actual screen redrawing.
* frontends/WorkArea:
	- the redraw() method now check if the the attached bufferView
	  needs a screen redraw().
* BufferView:
	- needsRedraw(): new method for WorkArea::redraw()


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14381 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-08 20:24:32 +00:00
Lars Gullik Bjønnes
1ff081141d Extraced from r14281 from the younes branch.
* BufferView, BufferView::pimpl:
	- metrics_info_: private variable holding ViewMetricsInfo
	- viewMetricsInfo(): accessor function
	- updateMetrics(): renamed from metrics(), sets metrics_info_
	- update(): change to use updateMetrics()

* frontends/WorkArea:
	- redraw(): get the ViewMetricsInfo through accessor to BufferView.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14331 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-04 00:04:46 +00:00
Lars Gullik Bjønnes
ee1871ef71 Partially extracted from r14281 from the younes branch.
* BufferView, BufferView::Pimpl:
	- painter(): remove method
* rowpainter.C:
	- paintText(): get painter through LyXView and WorkArea


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14330 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-03 22:54:30 +00:00
Lars Gullik Bjønnes
b1a87cc778 Extracted from r14281 from the younes branch.
* BufferView,BufferView::Pimple:
	-  workArea_ removed
* frontends/LyXView:
	- now contains a pointer reference to the current
	  WorkArea instead of the BufferView.
        - workArea(): temporary access method
* frontends/WorkArea:
	- bufferView(): new access methods.

* GuiImplementation: updated due to above changes


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14329 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-03 22:31:51 +00:00
Lars Gullik Bjønnes
752cab15d7 Second part of r14315 from the younes branch:
* BufferView and Bufferview::pimpl: repaintAll() methods deleted.

	* rowpainter.C:
 		- refreshInside : new variable in the anonymous namespace.
 		- use of refreshInside instead of the repaintAll() methods


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14324 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-03 20:37:34 +00:00
Lars Gullik Bjønnes
fb97c0689b First part of r14315 from the younes branch:
* BufferView and BufferView::pimpl:
   		- getClipboard, stuffClipboard, haveSelection: deleted

	* CutAndPaste.C: use BufferView::owner()->gui().clipboard()
	* insettabular.C: ditto
	* math_nestinset.C: ditto
	* text3.C: ditto


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14323 a592a061-630c-0410-9148-cb99ea01b6c8
2006-07-03 20:19:33 +00:00
Abdelrazak Younes
3287c44f33 GUI API Cleanup step 2: merge of the "younes" branch.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14231 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-26 16:55:35 +00:00
Abdelrazak Younes
d8ae51dbe1 This is the merging of the GUI API cleanup branch that was developed in svn+ssh://svn.lyx.org/lyx/lyx-devel/branches/personal/younes.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@14152 a592a061-630c-0410-9148-cb99ea01b6c8
2006-06-20 08:39:16 +00:00
Lars Gullik Bjønnes
67d576f75e * frontends/WorkArea.h(workAreaResize, scrollDocView, workAreaKeyPress,
dispatch, selectionReuqested, selectionLost): remove signals

* BufferView.[Ch] (selectionRequested, selectionLost, workAreaResize,
  workAreaKeyPress, workAreaDispatch): add forwarding functions to the pimpl

* BufferView_pimpl.C (Pimpl): Remove the setup of the now deleted signals,
  also remove corresponding connection objects.

* frontends/xforms/XWorkArea.h:
* frontends/qt2/QWorkArea.h:
* frontends/qt4/QWorkArea.h:
* frontends/gtk/GWorkArea.h: add LyXView as class variable view_ (qt
  classes also get view() medthod)

* frontends/qt2/QWorkArea.C:
* frontends/qt2/QContentPane.C:
* frontends/qt4/QWorkArea.C:
* frontends/xforms/XWorkArea.C:
* frontends/gtk/GWorkArea.C: Change from calling signals to call
  the functions directly through view_.view()


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13671 a592a061-630c-0410-9148-cb99ea01b6c8
2006-04-13 18:58:48 +00:00
Lars Gullik Bjønnes
b2effebe20 2006-04-06 Bo Peng <ben.bob@gmail.com>
session support that
    * handle recent opened files (previously lastfile)
    * save/load bookmarks when quit lyx
    * save/load buffer cursor location whan a file is closed
    * save/load windows position and size when a file is closed
    * add rc entries load_session, use_lastfilepos,
      screen_geometry_height, screen_geometry_width,
      screen_geometry_xysaved.
    * trigger LFUN_QUIT when Alt-F4 or close-button is used to close lyx.
    * remove lastfile.h lastfile.C (merged in session.h, session.C)


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13561 a592a061-630c-0410-9148-cb99ea01b6c8
2006-04-05 22:56:18 +00:00
Martin Vermeer
22cdac5d5d Fix bug 2195: Slowness in rendering inside insets, especially on the Mac
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13328 a592a061-630c-0410-9148-cb99ea01b6c8
2006-03-10 16:10:35 +00:00
Jean-Marc Lasgouttes
3246cc9a4a bug 2109: trigger dEPM when moving cursor with mouse
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10637 a592a061-630c-0410-9148-cb99ea01b6c8
2005-12-01 10:28:50 +00:00
Angus Leeming
70572847e2 Whitespace, only whitespace. s/ +$//
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10024 a592a061-630c-0410-9148-cb99ea01b6c8
2005-06-09 09:58:08 +00:00
Martin Vermeer
a683500118 Axe processEvents, fix cursor draw artifacts, put update flags into an enum,
allow single-paragraph update


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@9986 a592a061-630c-0410-9148-cb99ea01b6c8
2005-05-31 14:40:30 +00:00