lyx_mirror/src/frontends/qt4
Pavel Sanda a7b921aeeb Fix unsafe use of fixed width arrays.
Fix crash when MathMatrix has more than 80 columns

Patch from John McCabe-Dansted, approved from Andre.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@33641 a592a061-630c-0410-9148-cb99ea01b6c8
2010-03-06 14:57:16 +00:00
..
ui Document Settings: fix Float placement dialog. The float type is not 2010-03-01 09:03:15 +00:00
Action.cpp Transfer LyXfunc code to GuiApplication::dispatch() and getStatus(). Now 2010-02-09 16:11:13 +00:00
Action.h
BulletsModule.cpp
BulletsModule.h
ButtonController.cpp
ButtonController.h Fix doxygen output for grouped items. Without the /name tag doxygen shows the group name as the name of the first item. Moreover, the comment styles are somewhat standardized. 2010-01-27 18:10:33 +00:00
ButtonPolicy.cpp
ButtonPolicy.h
ColorCache.cpp
ColorCache.h
CustomizedWidgets.cpp
CustomizedWidgets.h
Dialog.cpp Attempt to simplify as much as possible Inset parameter dialog creation. We now just need an ui file and a class that inherits InsetParamsWidget and implement 4 methods. Then InsetParamsDialog will take care of the rest. InsetParamsDialog has 2 running mode: "immediate apply" and "Restore/OK/Close" which is the default; I hope this is enough to satisfy all users. The checkbox status might be saved later in session settings. 2010-02-15 23:17:45 +00:00
Dialog.h Attempt to simplify as much as possible Inset parameter dialog creation. We now just need an ui file and a class that inherits InsetParamsWidget and implement 4 methods. Then InsetParamsDialog will take care of the rest. InsetParamsDialog has 2 running mode: "immediate apply" and "Restore/OK/Close" which is the default; I hope this is enough to satisfy all users. The checkbox status might be saved later in session settings. 2010-02-15 23:17:45 +00:00
DialogView.h Fix doxygen output for grouped items. Without the /name tag doxygen shows the group name as the name of the first item. Moreover, the comment styles are somewhat standardized. 2010-01-27 18:10:33 +00:00
DockView.h
EmptyTable.cpp
EmptyTable.h
FileDialog.cpp
FileDialog.h
FindAndReplace.cpp * FindAndReplace.cpp: 2010-01-29 08:59:09 +00:00
FindAndReplace.h Transfer LyXfunc code to GuiApplication::dispatch() and getStatus(). Now 2010-02-09 16:11:13 +00:00
FloatPlacement.cpp Some cleanup for the Floating class. 2010-03-04 13:42:05 +00:00
FloatPlacement.h InsetParamsWidget(): fix method constness. 2010-02-18 07:56:38 +00:00
GuiAbout.cpp About box: Migrate to DialogView. 2010-01-23 20:29:00 +00:00
GuiAbout.h About box: Migrate to DialogView. 2010-01-23 20:29:00 +00:00
GuiAlert.cpp Fix unsafe use of fixed width arrays. 2010-03-06 14:57:16 +00:00
GuiApplication.cpp s/updateLabels/updateBuffer/g, per a suggestion of Abdel's. 2010-03-03 22:13:45 +00:00
GuiApplication.h Application: get rid of 2 virtual interface. 2010-02-09 17:25:44 +00:00
GuiBibitem.cpp Migrate GuiBibitem to InsetParamsWidget. 2010-02-23 21:24:24 +00:00
GuiBibitem.h Migrate GuiBibitem to InsetParamsWidget. 2010-02-23 21:24:24 +00:00
GuiBibtex.cpp
GuiBibtex.h
GuiBox.cpp Attempt to simplify as much as possible Inset parameter dialog creation. We now just need an ui file and a class that inherits InsetParamsWidget and implement 4 methods. Then InsetParamsDialog will take care of the rest. InsetParamsDialog has 2 running mode: "immediate apply" and "Restore/OK/Close" which is the default; I hope this is enough to satisfy all users. The checkbox status might be saved later in session settings. 2010-02-15 23:17:45 +00:00
GuiBox.h InsetParamsWidget(): fix method constness. 2010-02-18 07:56:38 +00:00
GuiBranch.cpp Migrate Branch dialog to InsetParamsWidget 2010-02-19 20:57:25 +00:00
GuiBranch.h Migrate Branch dialog to InsetParamsWidget 2010-02-19 20:57:25 +00:00
GuiBranches.cpp
GuiBranches.h
GuiChanges.cpp
GuiChanges.h
GuiCharacter.cpp
GuiCharacter.h Fix doxygen output for grouped items. Without the /name tag doxygen shows the group name as the name of the first item. Moreover, the comment styles are somewhat standardized. 2010-01-27 18:10:33 +00:00
GuiCitation.cpp GuiCitation.cpp: 2010-01-24 19:16:44 +00:00
GuiCitation.h
GuiClipboard.cpp Safety measure for r27988. 2009-01-04 23:39:12 +00:00
GuiClipboard.h
GuiCommandBuffer.cpp Transfer LyXfunc code to GuiApplication::dispatch() and getStatus(). Now 2010-02-09 16:11:13 +00:00
GuiCommandBuffer.h Next camel 2009-05-23 09:40:44 +00:00
GuiCommandEdit.cpp
GuiCommandEdit.h
GuiCompare.cpp Set the hourglass cursor for the dialog while running. However, the Cancel button can always be pressed, so this one gets a normal cursor. 2010-01-14 01:20:14 +00:00
GuiCompare.h Set the hourglass cursor for the dialog while running. However, the Cancel button can always be pressed, so this one gets a normal cursor. 2010-01-14 01:20:14 +00:00
GuiCompleter.cpp Fix bug #6552: Crash when inserting TeX-code in math mode and scrolling 2010-02-26 15:59:08 +00:00
GuiCompleter.h
GuiDelimiter.cpp
GuiDelimiter.h
GuiDialog.cpp
GuiDialog.h
GuiDocument.cpp * Spellchecker dialog: 2010-02-10 08:10:31 +00:00
GuiDocument.h Attempt to simplify as much as possible Inset parameter dialog creation. We now just need an ui file and a class that inherits InsetParamsWidget and implement 4 methods. Then InsetParamsDialog will take care of the rest. InsetParamsDialog has 2 running mode: "immediate apply" and "Restore/OK/Close" which is the default; I hope this is enough to satisfy all users. The checkbox status might be saved later in session settings. 2010-02-15 23:17:45 +00:00
GuiErrorList.cpp
GuiErrorList.h
GuiERT.cpp Attempt to simplify as much as possible Inset parameter dialog creation. We now just need an ui file and a class that inherits InsetParamsWidget and implement 4 methods. Then InsetParamsDialog will take care of the rest. InsetParamsDialog has 2 running mode: "immediate apply" and "Restore/OK/Close" which is the default; I hope this is enough to satisfy all users. The checkbox status might be saved later in session settings. 2010-02-15 23:17:45 +00:00
GuiERT.h InsetParamsWidget(): fix method constness. 2010-02-18 07:56:38 +00:00
GuiExternal.cpp
GuiExternal.h
GuiFontExample.cpp
GuiFontExample.h
GuiFontLoader.cpp
GuiFontLoader.h
GuiFontMetrics.cpp
GuiFontMetrics.h
GuiGraphics.cpp
GuiGraphics.h stickToCodingConventions. 2009-05-23 08:01:38 +00:00
GuiGraphicsUi.h
GuiHSpace.cpp Migrate GuiHSPace to InsetParamsDialog. 2010-02-21 09:28:33 +00:00
GuiHSpace.h Migrate GuiHSPace to InsetParamsDialog. 2010-02-21 09:28:33 +00:00
GuiHyperlink.cpp CMake: fix merged build, seems GCC could not handle the namespaces correctly 2010-01-30 11:34:28 +00:00
GuiHyperlink.h
GuiIdListModel.cpp
GuiIdListModel.h
GuiImage.cpp
GuiImage.h
GuiInclude.cpp
GuiInclude.h
GuiIndex.cpp
GuiIndex.h
GuiIndices.cpp
GuiIndices.h
GuiInfo.cpp Attempt to simplify as much as possible Inset parameter dialog creation. We now just need an ui file and a class that inherits InsetParamsWidget and implement 4 methods. Then InsetParamsDialog will take care of the rest. InsetParamsDialog has 2 running mode: "immediate apply" and "Restore/OK/Close" which is the default; I hope this is enough to satisfy all users. The checkbox status might be saved later in session settings. 2010-02-15 23:17:45 +00:00
GuiInfo.h InsetParamsWidget(): fix method constness. 2010-02-18 07:56:38 +00:00
GuiKeySymbol.cpp Patch from Ben M.: do not accept key events if we do not know what these keys 2009-07-06 16:14:20 +00:00
GuiKeySymbol.h
GuiLabel.cpp Update the GuiLabel view when the document is read-only. Also disable the text field. 2009-12-31 16:47:36 +00:00
GuiLabel.h Update the GuiLabel view when the document is read-only. Also disable the text field. 2009-12-31 16:47:36 +00:00
GuiListings.cpp CMake: fix merged build, seems GCC could not handle the namespaces correctly 2010-01-30 11:34:28 +00:00
GuiListings.h
GuiLog.cpp
GuiLog.h
GuiMathMatrix.cpp Fix unsafe use of fixed width arrays. 2010-03-06 14:57:16 +00:00
GuiMathMatrix.h
GuiNomencl.cpp
GuiNomencl.h
GuiNote.cpp
GuiNote.h
GuiPainter.cpp
GuiPainter.h
GuiParagraph.cpp
GuiParagraph.h
GuiPhantom.cpp
GuiPhantom.h
GuiPrefs.cpp * add pref option to exclude notes and comments from spell checking (bug 1509). 2010-02-13 16:22:39 +00:00
GuiPrefs.h
GuiPrint.cpp
GuiPrint.h
GuiPrintindex.cpp
GuiPrintindex.h
GuiPrintNomencl.cpp
GuiPrintNomencl.h
GuiProgress.cpp fix bug 6578, use tabs 2010-03-05 18:07:05 +00:00
GuiProgress.h fix bug 6578, use tabs 2010-03-05 18:07:05 +00:00
GuiProgressView.cpp GuiProgressView.cpp: 2010-02-06 14:38:02 +00:00
GuiProgressView.h Remove the no more necessary workaround for Qt < 4.4 2010-01-13 13:19:24 +00:00
GuiRef.cpp Use better include for 'struct QHeaderView' 2010-02-01 09:54:41 +00:00
GuiRef.h * GuiRef: improve filter UI 2010-01-30 11:19:48 +00:00
GuiSearch.cpp
GuiSearch.h
GuiSelection.cpp
GuiSelection.h
GuiSelectionManager.cpp
GuiSelectionManager.h
GuiSendto.cpp
GuiSendto.h
GuiSetBorder.cpp * GuiSetBorder.cpp: lighter colour for disabled borders (not used currently). 2010-01-31 13:15:26 +00:00
GuiSetBorder.h
GuiShowFile.cpp
GuiShowFile.h
GuiSpellchecker.cpp * GuiSpellchecker.cpp: 2010-02-26 13:34:36 +00:00
GuiSpellchecker.h Add language selector to the spell chekcer dialog (bug 2208). 2010-02-09 13:01:37 +00:00
GuiSymbols.cpp
GuiSymbols.h
GuiTabular.cpp Fix cell width initial fill-in. 2010-02-19 10:25:20 +00:00
GuiTabular.h InsetParamsDialog: don't update the inset widget if we are not un 2010-02-19 11:04:15 +00:00
GuiTabularCreate.cpp
GuiTabularCreate.h
GuiTexinfo.cpp
GuiTexinfo.h
GuiThesaurus.cpp * Spellchecker dialog: 2010-02-10 08:10:31 +00:00
GuiThesaurus.h
GuiToc.cpp
GuiToc.h
GuiToolbar.cpp Transfer LyXfunc code to GuiApplication::dispatch() and getStatus(). Now 2010-02-09 16:11:13 +00:00
GuiToolbar.h
GuiView.cpp fix bug 6578, use tabs 2010-03-05 18:07:05 +00:00
GuiView.h fix bug 6578, use tabs 2010-03-05 18:07:05 +00:00
GuiViewSource.cpp
GuiViewSource.h
GuiVSpace.cpp Attempt to simplify as much as possible Inset parameter dialog creation. We now just need an ui file and a class that inherits InsetParamsWidget and implement 4 methods. Then InsetParamsDialog will take care of the rest. InsetParamsDialog has 2 running mode: "immediate apply" and "Restore/OK/Close" which is the default; I hope this is enough to satisfy all users. The checkbox status might be saved later in session settings. 2010-02-15 23:17:45 +00:00
GuiVSpace.h InsetParamsWidget(): fix method constness. 2010-02-18 07:56:38 +00:00
GuiWorkArea.cpp Kill locker() API in VCS 2010-02-12 07:21:11 +00:00
GuiWorkArea.h Today is a sad day, LyXView has passed over... long live GuiView! 2010-02-09 17:06:40 +00:00
GuiWrap.cpp
GuiWrap.h
IconPalette.cpp
IconPalette.h
InsertTableWidget.cpp Transfer LyXfunc code to GuiApplication::dispatch() and getStatus(). Now 2010-02-09 16:11:13 +00:00
InsertTableWidget.h
InsetParamsDialog.cpp Migrate GuiBibitem to InsetParamsWidget. 2010-02-23 21:24:24 +00:00
InsetParamsDialog.h Implement Vincent's suggestions: 2010-02-19 20:44:59 +00:00
InsetParamsWidget.cpp Attempt to simplify as much as possible Inset parameter dialog creation. We now just need an ui file and a class that inherits InsetParamsWidget and implement 4 methods. Then InsetParamsDialog will take care of the rest. InsetParamsDialog has 2 running mode: "immediate apply" and "Restore/OK/Close" which is the default; I hope this is enough to satisfy all users. The checkbox status might be saved later in session settings. 2010-02-15 23:17:45 +00:00
InsetParamsWidget.h Migrate GuiHSPace to InsetParamsDialog. 2010-02-21 09:28:33 +00:00
LaTeXHighlighter.cpp
LaTeXHighlighter.h
LayoutBox.cpp Transfer LyXfunc code to GuiApplication::dispatch() and getStatus(). Now 2010-02-09 16:11:13 +00:00
LayoutBox.h
LengthCombo.cpp According to André, QLatin1String is cheaper. 2010-02-01 01:07:32 +00:00
LengthCombo.h
LyXFileDialog.cpp
LyXFileDialog.h
Makefile.am Start preparations for alpha 2010-03-05 08:05:20 +00:00
Menus.cpp Some cleanup for the Floating class. 2010-03-04 13:42:05 +00:00
Menus.h
PanelStack.cpp * PanelStack.{cpp,h}: 2010-01-10 14:46:39 +00:00
PanelStack.h * PanelStack.{cpp,h}: 2010-01-10 14:46:39 +00:00
pch.h
qt_helpers.cpp
qt_helpers.h
qt_i18n.h
README
TocModel.cpp Fix bug 6522 and its relatives in trunk. I am not absolutely sure this 2010-03-05 20:47:50 +00:00
TocModel.h
TocWidget.cpp We were doing this twice, and I think there's also a bug here, namely, 2010-02-26 19:56:08 +00:00
TocWidget.h This can just take a FuncCode. 2010-02-26 19:51:06 +00:00
Toolbars.cpp Introduce "samerow" toolbar tag and let View/Update toolbar to be in the 2010-01-27 17:19:14 +00:00
Toolbars.h Introduce "samerow" toolbar tag and let View/Update toolbar to be in the 2010-01-27 17:19:14 +00:00
Validator.cpp
Validator.h

This file contains some do's and dont's for the Qt4 frontend.

General rules
-------------

Every editable field that affects the state of the dialog contents
from LyX's point of view should connect its xxxChanged() signal to
a the dialog's changed_adaptor() slot, which in turn should call
changed(). If you are using a more complicated thing anyway,
then remember to call changed() at the end (if it has changed!)

Every non-trivial widget should have a tooltip. If you don't know
what to write, write "FIXME", and it can fixed later. Don't be afraid
to use QWhatsThis too, but this must be done in the derived class's
constructor, and use _("..."). Non-trivial means that things like "OK"
/must not/ have a tooltip.

moc needs a fully qualified "std::string" for .connect() statements
to work. Be very, very careful.

Remember to check tab order on a dialog (third icon, with blue bars in
designer).

Remember to check sensible resizing behaviour on a dialog. This is
usually done by adding a top-level layout to the dialog in Designer.

Remember to use Edit->Check Accelerators

If necessary, you should override Qt2Base::isValid() for determining the
validity of the current dialog's contents.

OK/Apply/Restore/Close should be connected in the derived class's
constructor to call slotOK() etc. Refer to close/cancel as close in the
source.

Override update_contents() to update the dialog, not update().  Only
these functions may change dialog widgets that may emit changed() during
initialisation, to prevent the button controller from changing its
state.

Never call buttoncontroller functions directly from dialogs. In general,
you should use Qt2Base::changed() in all circumstances. However, if you
must call the buttoncontroller, make sure to respect Qt2Base::updating_

Naming conventions
------------------

QFoo.{cpp,h}     The file that interacts with the controller _and_
the implementation of the dialog, derived from the generated files
ui/FooDialog.ui  The designer file
ui_FooDialog.h   Generated files from FooDialog.ui

slots should be named e.g. slotFooClicked(), slotFooSelected(), where
foo is the name of the widget.

Widgets should be named like "fooXX", where XX is one of the following
widget types :

CB - check box
CO - combo box
ED - line edit
GB - group box
LA - label
LC - LengthCombo
LV - QListView
ML - QTextBrowser
PB - push button
RB - radio button
SB - spin box
SL - slider
TE - text edit
TW - tree widget (FIXME: also TV in some files)


Qt, Unicode, and LyX
--------------------

LyX uses a different encoding (UCS4) than Qt (UTF16), therefore there are a
number of conversion functions in qt_helpers.{cpp,h}. Read the doxygen
documentation for details when to use which function.

Additionally, you should follow these simple rules :

o Use qt_() not _() in code
o Use the conversion functions of qt_helpers.h, NOT .latin1() / .c_str() etc.