mirror of
https://github.com/sqlitebrowser/sqlitebrowser.git
synced 2026-01-19 18:40:13 -06:00
After setting a filter, the user can select from the context menu in the filter line a new option "Use for Conditional Format", that assigns automatically a colour to the background of cells fulfilling that condition. The formatting is preserved after the user has removed the filter. Several conditional formats can be successively added to a column using different filters. The conditional formats of a column can be cleared when the filter is empty selecting "Clear All Conditional Formats" from the filter line context menu. The conditional formats are saved and loaded in project files as other browse table settings. A new class Palette has been added for reusing the automatic colour assignment of the Plot Dock. It takes into account the theme kind of the application (dark, light) for the colour selection. A new class CondFormat for using the conditional formatting settings from several classes. The conversion of a filter string from our format to an SQL condition has been moved here for reuse in filters and conditional formatting. Whether the conditional format applies is resolved by SQLite, so filters and conditional formats give the same exact results. Code for getting a pragma value has been reused for getting the condition result, and consequently renamed to selectSingleCell. Possible future improvement: - New dialog for editing the conditional formatting (at least colour and application order of conditions, but maybe too: adding new conditions and editing the condition itself).
28 lines
1.3 KiB
C
28 lines
1.3 KiB
C
#ifndef DATA_H
|
|
#define DATA_H
|
|
|
|
#include <QString>
|
|
#include <QByteArray>
|
|
|
|
// This returns false if the data in the data parameter contains binary data. If it is text only, the function returns
|
|
// true. If the second parameter is specified, it will be used to convert the data from the given encoding to Unicode
|
|
// before doing the check. The third parameter can be used to only check the first couple of bytes which speeds up the
|
|
// text but makes it less reliable
|
|
bool isTextOnly(QByteArray data, const QString& encoding = QString(), bool quickTest = false);
|
|
|
|
// This function returns true if the data in the data parameter starts with a Unicode BOM. Otherwise it returns false.
|
|
bool startsWithBom(const QByteArray& data);
|
|
|
|
// This function checks if the data in the data parameter starts with a Unicode BOM. If so, the BOM is removed from the
|
|
// byte array and passed back to the caller separately as the return value of the function. If the data does not start
|
|
// with a BOM an empty byte array is returned and the original data is not modified.
|
|
QByteArray removeBom(QByteArray& data);
|
|
|
|
QStringList toStringList(const QList<QByteArray> list);
|
|
|
|
QByteArray encodeString(const QByteArray& str, const QString& encoding);
|
|
|
|
QByteArray decodeString(const QByteArray& str, const QString& encoding);
|
|
|
|
#endif
|