Commit Graph

56 Commits

Author SHA1 Message Date
Juergen Spitzmueller
b21c512e14 QDialogButtonBox for the remaining dialogs. 2018-07-10 13:04:02 +02:00
Christian Ridderström
e30f3d76d2 Bulk cleanup/fix incorrect annotation at the end of namespaces.
This commit does a bulk fix of incorrect annotations (comments) at the
end of namespaces.

The commit was generated by initially running clang-format, and then
from the diff of the result extracting the hunks corresponding to
fixes of namespace comments. The changes being applied and all the
results have been manually reviewed. The source code successfully
builds on macOS.

Further details on the steps below, in case they're of interest to
someone else in the future.

1. Checkout a fresh and up to date version of src/

    git pull && git checkout -- src && git status src

2. Ensure there's a suitable .clang-format in place, i.e. with options
   to fix the comment at the end of namespaces, including:

    FixNamespaceComments:                           true
    SpacesBeforeTrailingComments:                   1

and that clang-format is >= 5.0.0, by doing e.g.:

    clang-format -dump-config | grep Comments:
    clang-format --version

3. Apply clang-format to the source:

    clang-format -i $(find src -name "*.cpp" -or -name "*.h")

4. Create and filter out hunks related to fixing the namespace

    git diff -U0 src > tmp.patch
    grepdiff '^} // namespace' --output-matching=hunk tmp.patch  > fix_namespace.patch

5. Filter out hunks corresponding to simple fixes into to a separate patch:

    pcregrep -M -e '^diff[^\n]+\nindex[^\n]+\n--- [^\n]+\n\+\+\+ [^\n]+\n'  \
        -e '^@@ -[0-9]+ \+[0-9]+ @@[^\n]*\n-\}[^\n]*\n\+\}[^\n]*\n'         \
        fix_namespace.patch > fix_namespace_simple.patch

6. Manually review the simple patch and then apply it, after first
   restoring the source.

    git checkout -- src
    patch -p1 < fix_namespace_simple.path

7. Manually review the (simple) changes and then stage the changes

    git diff src
    git add src

8. Again apply clang-format and filter out hunks related to any
   remaining fixes to the namespace, this time filter with more
   context. There will be fewer hunks as all the simple cases have
   already been handled:

    clang-format -i $(find src -name "*.cpp" -or -name "*.h")
    git diff src > tmp.patch
    grepdiff '^} // namespace' --output-matching=hunk tmp.patch  > fix_namespace2.patch

9. Manually review/edit the resulting patch file to remove hunks for files
   which need to be dealt with manually, noting the file names and
   line numbers. Then restore files to as before applying clang-format
   and apply the patch:

    git checkout src
    patch -p1 < fix_namespace2.patch

10. Manually fix the files noted in the previous step. Stage files,
    review changes and commit.
2017-07-23 13:11:54 +02:00
Jean-Marc Lasgouttes
1f10969bb5 Add missing initialization
Spotted by coverity
2017-03-01 17:25:03 +01:00
Guillaume Munch
dbcbf305b2 Improve prediction of block outside covered areas 2016-12-04 18:28:02 +01:00
Guillaume Munch
b329b471d4 Remove useless return leftover from earlier code 2016-12-04 18:28:02 +01:00
Guillaume Munch
ee0e95aafb GuiSymbols: Better handling of empty blocks
* endInsertRow was incorrectly placed before endResetModel, sometimes leading to
  bad access by the view before it was informed that the model was empty. In
  fact begin/endInsertRows were redundant with begin/endResetModel.

* Empty blocks are not supposed to be shown. This happened when moving the
  cursor. A valid block is now selected intead. Due to the design/optimisation
  of the model update, this requires a first update with an empty
  model. Simplify the old code.
2016-12-03 23:35:15 +01:00
Guillaume Munch
a19be0314b GuiSymbols: fix char->block lookup 2016-12-03 23:35:15 +01:00
Guillaume Munch
6f07721187 GuiSymbols: Improve the tooltip 2016-12-03 23:35:15 +01:00
Guillaume Munch
03a0e983bc GuiSymbols: handle the case of an invalid data
The docs do not guarantee that the index must be valid
2016-12-03 23:35:14 +01:00
Guillaume Munch
0e672fed21 Partially revert "Replace static with thread_local when used for caching"
As noticed by Stephan, clang on Mac is nowhere near to support thread_local for
some reason:
http://stackoverflow.com/questions/28094794/why-does-apple-clang-disallow-c11-thread-local-when-official-clang-supports

It does not look realistic to me to provide a configure-based alternative. The
solution is to not use thread_local until it is reasonably supported on
Mac. According to sources, this means requiring Xcode >= 8.

This reverts commit 82d4f1a446 partially.
2016-08-04 13:39:27 +01:00
Guillaume Munch
82d4f1a446 Replace static with thread_local when used for caching
thread_local is a per-thread static variable, so it is thread-safe and can be
used for caching purpose.

Remove the cache for parameter lists as discussed on the list
http://mid.gmane.org/6e871431-0e87-ed2a-3e31-b63356c2391e@lyx.org.

(requires gcc >= 4.8)
2016-08-01 23:44:16 +01:00
Guillaume Munch
0434f5676a Fix perf issue when displaying the symbols gui (#9968)
According to callgrind, the time taken to display the symbol dialog is spent in
updateSymbolsList. No longer translate strings for every symbol. This speeds
it up more or less by a factor two.
2016-03-13 07:19:13 +00:00
Guillaume Munch
b3bed2927e Fix perf issues and crash when showing 1'100'000 items (#9968) 2016-03-11 01:15:47 +00:00
Georg Baum
b6aed54c45 Fix cppcheck variable scope warnings
These were all flagged by "(style) The scope of the variable 'x' can be reduced."
Narowing the scope improves readability, and if it is in a loop then the
compiler will be clever enough to produce efficient code, we do not need
manual optimization for POD types.
2015-09-20 10:42:35 +02:00
Jean-Marc Lasgouttes
143c136a7f Do not read array before checking the bounds
Fixes coverity issue 23377
2015-02-20 16:51:20 +01:00
Jean-Marc Lasgouttes
5c32dc85d5 Fix various warnings issued by clang++.
* remove unused class TexStream.

* remove unused virtual method Inset::cellXOffset

* remove second argument of FileDialog constructor, which was actually
  not used

* remove some dead local code

* remove some unused private members of classes

* in InsetMathNest::updateBuffer, fix the logic of a test
2014-04-22 00:04:04 +02:00
Richard Heck
fdbe775b9f This is the result of an audit of all static variables, looking
for possible thread conflicts, of the sort Georg resolved at
6a30211f. I have made static variables const where possible,
and marked cases that looked potentially problematic with the
comment:
	// FIXME THREAD
Many of these definitely are vulnerable to concurrent access, such
as the static variables declared at the start of output_latex.cpp.
Suppose, e.g., we were outputting latex and also displaying the
source of a different document.

I'd appreciate it if others could grep for "FIXME THREAD" and see
if some of these are harmless, or what.
2014-04-21 11:51:57 -04:00
Stephan Witt
358e9ab31b fix Symbols dialog box grid size in case of broken QFontMetrics::maxWidth() 2014-01-04 20:14:06 +01:00
Stephan Witt
141fbb6f8c Prepare LyX code to compile and link with Qt5:
* some functionality is in new modules now
  new header locations and library names: QtConcurrent and QtWidgets
* method setResizeMode is renamed to setSectionResizeMode
* deprecated QAbstractItemModel::reset() is dropped now
* platform specific code like QApplication::syncX() is not common anymore
* QString::fromAscii() is dropped now
* some QDesktopServices methods has been moved to QStandardPaths
2013-02-03 19:26:21 +01:00
Juergen Spitzmueller
b57f585109 GuiSymbols: Use a grid with appropriat size 2013-01-10 13:19:14 +01:00
Juergen Spitzmueller
0dd91a1fd7 do not setUniformItemSizes since the symbols have different width (bug #5707) 2013-01-10 11:33:09 +01:00
Pavel Sanda
0a9735c5f7 LyX 2.1 will support only Qt>=4.5.
(http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg175737.html)

Now start with simple cases.
2012-11-04 01:22:32 +01:00
Pavel Sanda
96578ef324 Support gcc 4.4. Patch from Martin Michlmayr.
http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg146271.html


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27609 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-17 12:49:47 +00:00
Abdelrazak Younes
57d4b76493 gcc warning fix
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27492 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-15 21:21:04 +00:00
André Pönitz
f1cba8ff64 more latin1..utf8 schanges. all of src/* should be utf8 now
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27425 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-14 15:58:50 +00:00
André Pönitz
1fc477efac thrid attempt at changing the naming pattern of the intermediated 'mocced' files
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@27420 a592a061-630c-0410-9148-cb99ea01b6c8
2008-11-14 14:28:50 +00:00
Abdelrazak Younes
f45523aa7a Pimpl stuff in GuiApplication.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@24895 a592a061-630c-0410-9148-cb99ea01b6c8
2008-05-23 08:43:07 +00:00
André Pönitz
d8ab0622c5 cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23903 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-23 13:59:51 +00:00
Jürgen Spitzmüller
fb1f95ff00 * src/frontends/GuiSymbols.cpp:
- make categories translatable. This might slow down the dialog again a bit.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23898 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-22 14:49:03 +00:00
André Pönitz
6b28f08ff2 cosmetics
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23891 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-21 21:47:37 +00:00
André Pönitz
f182333311 improved position caching
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23889 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-21 20:47:29 +00:00
André Pönitz
0011f47885 speed up symbol panel population
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23887 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-21 18:55:26 +00:00
André Pönitz
0d5e1782f0 Use a custom model + QListView instead of QListWidget in the Symbols
dialog. Functionality is unchanged. 
Populating the 'All Symbols' panel for utf8 files is around 5s.
Not nice, but bearable. There's still room for improvement.


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23883 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-21 18:32:06 +00:00
André Pönitz
b9bee4dd86 small step towards s/QListWidget/QListView/g
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23877 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-21 16:53:15 +00:00
André Pönitz
f23773c8c5 small refactoring
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23876 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-21 16:45:01 +00:00
André Pönitz
1f2cee9589 some un-intrusie changes first...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23875 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-21 16:33:23 +00:00
André Pönitz
bef955a971 save a few more cycles
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23841 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-19 22:28:28 +00:00
André Pönitz
1fe1450af9 remove a few conversions.
maybe moving the stringtable into a fuynction makes sens to prevent
initialization on startup...


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23838 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-19 22:17:36 +00:00
André Pönitz
16fa6c5f0f slight speed improvement...
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23837 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-19 22:05:54 +00:00
Abdelrazak Younes
f7f67fa95e Encapsulate all menu related stuff inside Menu.cpp and simplify a few things.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@23560 a592a061-630c-0410-9148-cb99ea01b6c8
2008-03-08 15:33:52 +00:00
Abdelrazak Younes
c37588d374 simplification.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22871 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-08 17:55:43 +00:00
Jürgen Spitzmüller
9cb6ce57da * GuiSymbols.cpp:
- disable "display all" checkbox for utf8.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22867 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-08 17:13:06 +00:00
Jürgen Spitzmüller
369f14fa8e * GuiSymbols.{cpp,h}:
- cache symbols list (speedup).

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22866 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-08 16:43:02 +00:00
Jürgen Spitzmüller
faf2f10824 * GuiSymbols.cpp:
- fix crash due to invalid ListWidgetItem.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22860 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-08 13:06:44 +00:00
Jürgen Spitzmüller
92b41f3f98 * GuiSymbols.{cpp,h}:
- consider non-default document encodings.
	- only refresh categories when needed (speedup)
	- add tooltips.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22859 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-08 11:02:23 +00:00
Abdelrazak Younes
46e6cacfe0 Introduce toqstr(char_type) and use it.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22857 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-08 08:49:22 +00:00
Abdelrazak Younes
e172898430 compil fix for Qt-4.2
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22856 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-08 08:44:52 +00:00
Dov Feldstern
e4a1c73009 compilation fix
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22854 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-07 22:46:47 +00:00
Jürgen Spitzmüller
8e6c6e6678 * GuiSymbols.cpp: add another missing unicode block.
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22850 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-07 20:29:14 +00:00
Jürgen Spitzmüller
ea039d6496 * GuiSymbols.cpp:
- fix thinko and ensure visibility on filter toggling.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@22849 a592a061-630c-0410-9148-cb99ea01b6c8
2008-02-07 18:29:45 +00:00