Find/Replace dialog does not block the main window.
Dialog reused, so checks changed by user are preserved.
The selection of the last occurrence in Find All and Replace All
is cleared, so all the occurrences have the same appearance.
A classic Find/Replace dialog including all the options provided
by the QScintilla editor. Additionally a "Replace All" and a
Find All" button are implemented. This complements issue #191
New shortcut in main window for opening the find/replace dialog
connected to the focused widget. Standard for Replace is Ctrl+H.
Consequently the shortcut for Copy with Headers is changed to
Ctrl+Shift+C (see issue #1058).
For SQL text widgets not embedded in the main window, the standard
shortcut cannot be enabled, otherwise it conflicts with the main
window. Therefore the shortcut Ctrl+Shift+H is enabled for all the
SQL widgets as fallback. A better solution would be desirable.
A warning dialog is popped-up for confirming application of
invalid JSON data. Parse error is shown in the dialog.
*.json added to import filter.
See issue #1173
This adds support for pasting a single value into all selected cells in
the Browse Data tab in order to mimic the behaviour of standard
spreadsheet application more closely.
New setting for enabling the following feature:
when JSON data is loaded in the JSON cell editor, the text is
indented. Before JSON data written back into the cell, the text
is compacted.
See issue #1173
Minor adjustment in preference label: removed ":" for consistency.
* Add Signal if File dropped
* Check if Index is valid
Send Signal and return if Index is invalid and File was dropped
* Connect Dropsignal to fileopen
The default style for invalid JSON or unclosed strings uses red
background and white foreground, but the current line has
precedence, so it is by default white over grey. We change the
default to something more readable for the current line at
invalid JSON. See issue #1173.
New icons in resources from our icon set: Silk from
famfamfam.com
Icon for close. Applied to the find bar (see issue #191).
New icon for special copy. Applied to the "Copy with
Headers" option.
Removed the execution permission from some icon files.
results pane
Copy for multi-line text data surrounds the text with the
<pre> tag in the HTML version for avoiding line white-space
adjustments in the pasted text. See #1058
Do not use binary data in the "Use as Filter" option.
Indicate the existence of an error in the background of the
SQL results frame. The error-indicators is reused for
disabling this functionality.
When nothing is shown, a placeholder text hints the
objective of the results pane.
The preference label for the font size of this pane is
modified for consistency (SQL Log is another widget).
Both "Copy" and "Copy with Headers" write in HTML and text format to the
system clipboard, when the selection includes more than one cell. This lets
the pasting application choose the most appropriate format.
Images have now no precedence over text when requesting the clipboard
content, so pasting from applications like LibreCalc, that set both formats
in the clipboard, works as expected, instead of pasting an image of the
copied text.
Copying and pasting inside the DB4S should not be affected, since the
application requests the text format and uses the internal buffer when
necessary (binary data included).
Related issue: #1058
Support for JSON in the Database Cell editor using the QScintilla library.
The lexJSON lexer has been added to the compilation, including the
necessary files from the QScintilla source package.
See issue #1173
Support for JSON in the Database Cell editor using the QScintilla library.
The lexJSON lexer has been added to the compilation, including the
necessary files from the QScintilla source package.
See issue #1173
New button and key sequence (ESC) to close the search bar.
Clear selection (by not avoiding the search) when the text to search is
deleted, as expected by @pamtbaau at #1220.
Exporting SQL files crashed because of the multi-threaded loading of
data which also affects the SQL export. Because the table models were
destructed relatively quickly during the export's progress estimation,
their threads were still running and trying to access invalid data
structures.
See issue #1228.
When fetching data from an empty table or from an SQL query which
doesn't return any rows, we didn't emit the finishedFetch() signal which
is used to indicate that the fetching is completed. This is fixed by
this commit, so that the signal is always emitted no matter the number
of rows returned.
This fixes (probably besides other things) the current row numbers at
the bottom of the Browse Data tab when changing from a non-empty table
to an empty one.
Deactivate all menu actions in the context menu in the Browse Data tab
if no database file is opened. Without a database the read-only actions
were still enabled and would lead to a crash.
See issue #1228.
The Column Field is resized to the content.
The dummy column has been removed and the header no longer stretches the
last section property.
The table has alternating row colors for easy following of the field
checks.
Ctrl+H invokes the Copy with Headersers action in the Extended Table Widget
as suggested in #1058.
The following options in context menu display now their shortcuts:
Set to Null, Copy, Copy with Headers and Paste.
Some other shortcuts are now displayed in the corresponding tooltips.
The following scroll width functionalities are added to QScintilla:
setScrollWidth, getScrollWidth, setScrollWidthTracking and
getScrollWidthTracking.
This allows setting a lower value for the initial scroll width (default is
2000 pixels). Consequently, the horizontal scroll is only visible if the
SQL lines become bigger than window width.
The scroll width, though, is never reduced by Scintilla for performance
reasons.
See this for explanation:
https://github.com/jacobslusser/ScintillaNET/issues/216
And see this for a possible implementation of a fully adjusted scroll
width with fixed-width fonts:
https://groups.google.com/forum/#!topic/scintilla-interest/ly8u7mVDgyQ
The user is now able of selecting a range of contiguous points in any of
the graphs of the plot, through rectangle selection or click in single
point. This selection triggers automatically the selection of the
corresponding lines in the browsed table. In this way the user can analyse
the plot in detail.
Two other minor improvements: spelling error fixed and the dummy column in
the plot selection table has now transparent foreground (intends to avoid
wondering of the user about what functionality provides this column).
If multiple SQL tabs are opened, show or hide the find bar for all of
them when changing the check state of the button. Also apply the find
bar state to newly opened SQL tabs.
This also fixes a crash which would happen if you click the Find button
prior to opening any SQL tabs, i.e. before opening the first database
file.