* Added build instructions for OpenSuse
* Updated package list for Ubuntu build
* Added initial code for x86 and x64 build of AppImage to travis file
* More experiments with snap config to fix old UI.
Signed-off-by: Navdeep Singh Sidhu <deepsidhu1313@users.noreply.github.com>
Since Qt 5.10, the Windows Vista style has been moved to its own plugin. This plugin must be included in order to show the new style. It will be included for the 64-bit build only for now, since we are using a different Qt version (5.7) for the 32-bit build.
See #1580.
This solves these two problems that seem to have being introduced in
d5a049062d
- The unlocked-view status was not applied again when switching back to the
view (you cannot edit and the Delete Record button is not reenabled) or
after refreshing.
- The 'Unlock view editing' check state persisted when switching between
views.
See issue #141.
There are two new strings in Preferences (an option and its tooltip) and
two functions call-tips that are updated with this appendix:
"Use of this function must be authorized from Preferences."
Line number changes have been discarded after lupdate so the amount of
changes for merging of translation pull requests are minimised.
* Leaving the loading of extensions enabled might be a security risk
Using sqlite3_enable_load_extension not only allows loading extensions
through the C-API but also through the SQL functioon load_extension().
That might be a security risk if the user is unaware that executing an
SQL file can lead to native code execution and not only to database file
modification.
See issue #1551
* Preference for allowing loading extensions from SQL code
New setting that authorizes the execution of load_extension() from SQL
code. Default value, false, following the design decision of SQLite, that
disables this function unless by default.
Added notice about the option in the calltips of the two function
variants.
* Problems with WITHOUT ROWID tables with PK of string type
This fixes two related problems:
- When the PK is updated the hidden column 0 must be updated too,
otherwise any further editing of the same row before a table refresh is
broken.
- When a new record is inserted and the PK has string type we cannot
simply make a pseudo auto-increment and insert that value as rowid
because that added key would be impossible to update because our
UPDATE clause will try to update a column with a string and it contains
an integer. In this case it's better to let the user enter the PK value,
so the new Add Record dialog is directly invoked.
See issue #1332 and (tangentially) #1049. The first should be fixed now.
The later not, but at least there is now a workaround: removing the
AUTOINCREMENT option and use the WITHOUT ROWID one.
* Problems with WITHOUT ROWID tables with PK of string type (alternative 2)
Update after review:
- cached_row is not modified after unlock();
- Alternative solution to initial key value insertion:
When a new record is inserted and the PK has string type we still make a
pseudo auto-increment and insert that value as a string literal. In this
way we can later update that row. When we inserted it as integer an
actual integer will be inserted by SQLite, and our UPDATE clause, which
always uses string in the WHERE condition, won't match the row (SQLite
does not convert to integer when the column is of type string in this
context).
See issue #1332.
The schema column of objects is pre-formatted with wrapped style. In this
way, if the "db.hideschemalinebreaks" setting is enabled, the printed
output is formatted in the same way, but with a wrapping style, so long
lines do not extend the Schema column too much.
Added tooltip to Preferences dialog, so it isn't a so hidden feature.
Translations updated accordingly for the release.
The header style is not applied in that same case.
When a table is filtered and the browsed tabled is changed and then we
return to this filtered table, the table view shows several incorrect
disabled rows. The same may happen when refreshing this table. This seems
to be produced by a (yet unsolved) concurrency problem triggered by
several consecutive queries, that are signalled by setting the text of
the stored filters in the table header filter.
These unnecessary queries are avoided by setting the stored filter values
at the same time as the table in the SQL table model, making sure that
no intermediate queries are executed while the filters are set.
This seems to work around the concurrency problem and the symptom of the
invalid rows does not appear in those situations.
For consistency for the other application tabs, a print button is added
to the Data Browse Tab for printing the currently browsed table or
selection of cells.
Added a new copy action to the binary editor context menu for copying the
selected text as seen by the user, instead of the stream of hexadecimal
digits copied by default by qhexedit.
In order to support copying from the context menu, qhexedit has been
modified for not resetting the selection when the left mouse button is
pressed. This will be converted to a pull request to qhexedit afterwards.
See related issue #1485
Added support for printing images in the Editor Dialog. A new action added
that can be activated through the context menu or shortcut for printing.
The same approach is applied to the hex editor, which also lacked a
context menu. Consequently the specific shortcut can be deleted.
When the data source is the hex editor we are able to save whatever
data type as shown in the widget, so additionally to set the filters
according to the data type a "Hex dump files (*.txt)" filter option is
added.
If the user selects this option for saving, the hexadecimal dump of the
widget content is saved to the file. Note that the check must be performed
using the selected filter by the user and not the file ending, which would
be the same for text data exported as plain text.
The Null case is disregarded as it is useless for exporting.
See issues #1438 and #1485
Reorder the context menu of the table header and use separators for
coherent grouping: column actions, misc and encoding.
Set buttons invisible in the DB Structure toolbar when the object is
different to the supported ones. Disabling wasn't enough because the logic
for changing icon and text wasn't working well for fields and other items.
Separate Print from object actions in that same toolbar.
New icon for Project Save so it uses the same metaphor (floppy disk) as
other save actions.
Improved the look in the clear filters icon by editing it in gimp. It had
a glitch in the funnel base.
The message when there are problems and the user has made changes and
accepted them must be different to the case when the user has cancelled
and any possible changes have been already reverted by the dialog.
In the first case the fault may be ours and we actually revert changes.
In the second case, we know for sure the problems were there before
editing the table. We warn user about it, since we already know.
The last error from the DB is inappropriate for both cases because it
hasn't been updated by the foreign-key check.
Also fixed the typo in a function identifier.
Room for improvement: maybe the check should be done before opening the
dialog, so we don't let the user edit the table until the issues have
been solved.
See issue #1547
Sometimes the installation log is required to debug failed installs. This commit will make sure the MSI will automatically create a logging file every time it is used to install, repair, or remove the application.
See #1545.