A new button is added in the "Edit DB Cell" dock for interpreting the
current value as a URL or filename and opening it using the default
application for the file or a web browser for the URL.
The same can be directly invoked in the table browser using the same
shortcut as the FK navigation.
Related issue #1597
A new option is added to the contextual menu of row header to auto-adjust
the row heights to fit the contents.
When no setting is loaded for a table, the new default for column width
will take into account the contents.
This is related to #2006
Before setting any cell value to NULL, the existence of a NOT NULL
constraint is checked in the selected columns of the current table. This
avoid raising several warning messages when the DB rejects the individual
values.
See issue #2021.
Speed up the new REGEXP implementation based on QRegularExpression for
SQL queries by adding a cache for compiled regular expression objects.
See issue #2052.
This gives us some more space in the tab bar and should reduce the risk
of accidentally closing a tab. It looks prettier too. We could add an
option for this in the Preferences dialog but in order to not add too
many rarely used options, let's try it without an option first.
See issue #1968.
In this way the entire column has the same alignment and gives a hint of
the column datatype. Note that if the DB has data incoherent with the
affinity, it will not be reflected in the text alignment.
See issue #2032
Replace the old QRegExp class by the newer QRegularExpression class in
the implementation of SQLite's REGEXP operator. This should fix some
problems with greediness and similar options.
See issue #2040.
This adds a replace bar to the already existing find bar in the Browse
Data tab. It allows the user to replace the matching text in a cell by
some other text.
See issue #1608.
Although a project cannot be saved without an associated DB file, we allow
to keep the project open when the current DB file is closed. The only
action that closes the project is opening another project or closing the
application.
The window title must reflect the three situations:
- Nothing is open
- DB file is open
- Project is open with a DB file or not
See discussion in issue #2027
When handling the Ctrl+Space and Shift+Space keyboard shortcuts in
ExtenededTableWidget, make sure to not do anything if there is 1) no
table selection, or 2) if the table widget has no focus.
See issue #2038.
The Show/Hide Style Toolbar button and the find bar buttons were not
being disabled when the database was closed. The Find Next button even made
the application crashed in that state.
This change ensures we don't forget to disable new buttons in the toolbars
and frames of the Table Browser.
The layout where the navigation buttons are inserted does not, apparently,
disable the children widget, so cannot be used in the same way.
See related issues #1976 and #1608.
The project loading code modifies the isProjectModified flag due to the
changes performed. The flag has to set after all the loading is done, so
a close of the just opened project does not prompt for saving.
The DB file will include the full path only when it is different to the
project file path.
currentProjectFilename is cleared and set correctly in every case.
See issue #2027
Add shortcuts for selection of entire columns ("Ctrl+Space") or rows
("Shift+Space") from the current cell selection.
A new menu entry in the column header is also added, including the shortcut
legend for selecting the column.
This addresses #1717 and complements #1976 for quick formatting of entire
columns or rows.
The conditional formatting is extended to cover free single-cell
formatting. The row-id formats have precedence over regular conditional
formats.
In the styling toolbar, when single cells are selected, row-id formats are
created or updated. When entire columns are selected, regular conditional
formats are instead. Clearing formats for entire columns, remove both. For
single cells, only corresponding row-id formats.
New row-id formats are also saved to project files and loaded.
See issue #1976
This enables editing for all columns which do not have a custom display
format set. It seems like this was broken for some time now, so the
entire table was effectively set to read only mode even when only a
single custom display format was configured.
This fixes the following issues, which might be Qt bugs or not:
- When moving an item to the top, the inserted widgets of the other items
are misplaced.
- When columns are resized to contents, the font combo box does not resize
with the column, overlapping the cells to its right.
- When adding a new item, the text just input in one filter line edit could
be lost.
See issue #1976 and comments in PR #2013.
The Filter Line Edit is ideal for this dialog because it has already a
contextual menu for helping user with the syntax and a What's This button.
Moreover, the Line Edit looks better than the integrated persistent editor.
See issue #1976 and comments in PR #2013
This somewhat simplifies the cache access in SqliteTableModel::data()
function. Especially for not yet loaded cells this should speed up the
code too. It also reduces the function size which again should lead to a
little performance gain for every use case.