- Adjust fixed sizes in EditTableDialog so the bug is less visible
- Resize columns to contents after item insertion, so it is not resized
to contents when only the header is present.
QScrollArea::viewport is now used for boundaries check and
for image pan (m_pan_mode).
This should provide more accurate event filtering (content only)
When using rare network settings errors might occur when checking for
updates. Instead of displaying an irritating error message when starting
the application, just silently ignore errors. This is far from perfect
but at least does not make things worse because even if you see the
error message this commit hides, you would not be able to do much about
it.
See issue #2759.
Starting with SQLite 3.36 you cannot select the rowid column anymore
when selecting from a view. Trying to do so will throw an error.
Previously SQLite would silently return NULL when trying to do that.
This commit mimicks SQLite's previous behaviour.
Additionally, for consistency, when the option to keep old schema is not
activated, the statement does not add "IF NOT EXISTS", so it's the same
either when the keep original statement is used or not.
See issues #2735 and #2627
To check whether selector is different to the column, no escaping can be
used, since selector is never quoted, neither when it is a column name nor
a function.
See issue #2708
MainWindow::newTableBrowserTab is only calling the new TableBrowser's
refresh() method through the constructor, before it has its model set,
and the browser therefore is still blank when the user first sees it.
A manual refresh at the end seems to be one way to fix this.
94023a5 switched to storing OrderBy terms by column
name and/or expression instead of by column index, and
includes a test to ensure that identifiers are quoted
and raw expressions are not; unfortunately it seems to
have gotten the logic backwards.
The reading of a QTemporaryFile must be done before the object it's destroyed,
otherwise the file is removed.
This was broken since 09aaaccace
Reported in issue #2749.
Working cases tables without rowid and BLOB as primary key:
- Inserted value is actually TEXT, for example, from the text editor in the
GUI.
- Inserted value is really BLOB, for example, from the binary editor or
from SQL and the data is fully binary.
Not yet working case:
- Inserted value is of type BLOB, but the actual data is recognized by
DB Browser as text. In this case, no type affinity is applied by
SQLite and the row is not properly selected.
See issue #2738
Workaround for WindowsVista style (qwindowsvistastyle plugin)
There is some strange bug on windows with the system styles (windows
and windowsvista). When styleproxy is used and QDockWidget has a
custom stylesheet applied to the widget title, close-button and
float-button are rendered huge.
See #2485
DB4SProxyStyle is set before any Widget is created.
QGuiApplication::primaryScreen() is used as a screen.
Now custom QPalette can be set before MainWindows is created,
for example exported palette from KDE (Breeze, Breeze Dark, etc).
Set default maximum icon size for QToolBar to 20px, and for MenuItem to 16px,
before that MenuItem icon was bigger than QToolBar icon.
Pixel metric for SmallIconSize is set to 12px to avoid strange
render behaviour for QDockWidget with custom stylesheet.
This adds support for the RETURNING keyword which was introduced in
SQLite 3.35.0 by adding it to the syntax highlighter and the auto
completion as well as adding it to the lexer and parser (though it is
not used by the latter in any significant way).
Clicking on Edit View in the database structure tab opens a new SQL tab
with a DROP VIEW statement to delete the existing view and a copy of the
CREATE VIEW statement used for the current view. When the user modifies
the CREATE VIEW statement introduces an error in it, and then executes
the statements, the view is deleted and an error reported. Fixing that
error and re-running the script then fails at the DROP VIEW statement.
This means it makes more sense to make it a DROP VIEW IF EXISTS
statement.
See issue #2661.
It does not seem like there is a good reason to always refresh the table
browser dock (there is always exactly one at this point) when opening a
database file, even when it is not visible. This only generates
unnecessary queries to the database.
Remove the F5 shortcut for refreshing the DBHub.io remote databases
because it is ambiguous and can make the main view not work as expected.
Since the refresh action is not super important in the DBHub.io dock any
way it is probably best to just remove the shortcut there.
See issue #2695.
When multiple cells are selected pressing the Delete key tries to set
all of them to an empty string. In case of a unique constraint or
similar constraints this throws an error. This commit copies the
behaviour of the set to NULL menu action in that it aborts at the first
error to avoid multiple error messages.
See issue #2704.