diff --git a/.editorconfig b/.editorconfig index dc57efd..2b4318d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -5,7 +5,7 @@ trim_trailing_whitespace = true insert_final_newline = true charset = utf-8 -[*.{build,json,xml.in}] +[*.{build,json,xml*}] indent_size = 2 [*.vala] diff --git a/data/com.github.alecaddd.sequeler.appdata.xml.in.in b/data/com.github.alecaddd.sequeler.appdata.xml.in.in index 4ee0733..48db950 100644 --- a/data/com.github.alecaddd.sequeler.appdata.xml.in.in +++ b/data/com.github.alecaddd.sequeler.appdata.xml.in.in @@ -1,563 +1,535 @@ - + - @appid@ - CC0-1.0 - GPL-3.0+ - Sequeler - Friendly SQL Client - -

- Easily connect to your local or remote database -

-

- Store your Database Connections in the library, connect over SSH tunnel, type and execute SQL commands directly in the app, and do everything you need to do without the necessity of opening the terminal. -

-

- Supported Databases: -

- -

- Features Include: -

- -
- - @appid@ - - - - -

Odin release

-
    -
  • Update elementary OS Platform runtime.
  • -
  • Update screenshots.
  • -
-
-
- - -

Odin release

-
    -
  • Updated translations for Ukranian, Russian, Indonisian, Chinese, Lithuanian, Portugese, Turkish, and Arabic.
  • -
-
-
- - -

New Features

-
    -
  • Create, Edit, and Delete databases.
  • -
  • New context menu to copy and edit tables.
  • -
  • Support unencrypted connections.
  • -
-

Bug Fixes

-
    -
  • Fix copy column data.
  • -
-

Translations

-
    -
  • Updated translations for Ukranian, Russian, French, and German.
  • -
-
-
- - -

Reduced CPU usage by 2%.

-

Update translations for Italian, Spanish, Catalan, French, Hindi, Russian, and Turkish.

-
-
- - -

More fixes!

-

0.7.8 changelog

-
    -
  • Fixed usage attempt of wrong Vala method.
  • -
-

0.7.7 changelog

-
    -
  • Fix nasty GSettings bug causing the app to crash.
  • -
  • Implement GDA Placeholder statement.
  • -
  • Improve Query Tab iconography.
  • -
-

0.7.6 changelog

-
    -
  • Fix ORDER BY in PostgreSQL Relationship view.
  • -
  • Improve MySQL structure view.
  • -
  • Drop Granite.Settings in favour of GLib.Settings.
  • -
  • Implement Granite.Notebook on the Query tab.
  • -
  • Show query error messages inline.
  • -
-
-
- - -

More fixes!

-
    -
  • Fixed usage attempt of wrong Vala method.
  • -
-
-
- - -

Because 0.7.6 never happened!

-
    -
  • Fix nasty GSettings bug causing the app to crash.
  • -
  • Implement GDA Placeholder statement.
  • -
  • Improve Query Tab iconography.
  • -
-
-
- - -

Query Tab Bonanza!

-
    -
  • Fix ORDER BY in PostgreSQL Relationship view.
  • -
  • Improve MySQL structure view.
  • -
  • Drop Granite.Settings in favour of GLib.Settings.
  • -
  • Implement Granite.Notebook on the Query tab.
  • -
  • Show query error messages inline.
  • -
-
-
- - -

New features and improvements

-
    -
  • You can now duplicate connections.
  • -
  • Sorting columns now works as expected by actually running the ORDER BY query.
  • -
  • Quickly jump to a specific result page with the handy dandy pagination popover.
  • -
  • Show Comment Column inside table structure view.
  • -
-
-
- - -

The 2020 release!

-
    -
  • Manually reorder saved connection.
  • -
  • Allow selecting a custom SSH public key.
  • -
  • Fix SSH tunnel crashes.
  • -
-
-
- - -

Raw Query Improvements

-
    -
  • Strip comments from SQL raw queries.
  • -
  • Better handle complex queries on multiple lines.
  • -
  • Speed up query rendering.
  • -
-
-
- - -

Sweet Query Tab Improvements

-
    -
  • Edit font size of the Query Tab.
  • -
  • Edit background style of the Query Tab.
  • -
  • Save and remember the Query Tab size.
  • -
-
-
- - -

PostgreSQL Fixes

-
    -
  • Fixed PostgreSQL relationship table.
  • -
  • Fixed wrong response message when handling non select queries.
  • -
-
-
- - -

Bite-Size fixes

-
    -
  • Removed unused libfixposix.
  • -
  • Fixed pagination issue when clicking too fast while fetching big data.
  • -
-
-
- - -

Bug fixes and improvements

-
    -
  • Rewritten pagination to use LIMIT and OFFSET.
  • -
  • Faster pagination and content viewing for big data.
  • -
  • Show records count in table's list.
  • -
  • Bug fixes and other improvements.
  • -
-
-
- - -

Bug fixes and improvements

-
    -
  • Properly handle EXPLAIN SQL statement.
  • -
  • Properly handle querying capitlized PostgreSQL tables.
  • -
  • Improved async methods for internal views.
  • -
  • Updated translations.
  • -
-
-
- - -

Critical bug fix!

-
    -
  • CRITICAL: Fixes missing GSettings Schema, restore lost connections.
  • -
  • Other small bug fixes and improvements.
  • -
-
-
- - -

Implemented SSH tunneling

-
    -
  • WARNING: This release packs many updates and something could break. Please, backup your connections.
  • -
  • Connect via SSH to a remote Database.
  • -
  • Major code refactor to handle UI updates via async methods.
  • -
  • Use Stack container to show a loading Spinner during fetch or data processing methods.
  • -
  • Major performance improvements to the table search and dropdown schema switcher.
  • -
  • Bug fixes and other improvements.
  • -
-
-
- - -

Fancy New Icon!

-
    -
  • New fancy Icon.
  • -
  • Use GtkNativeDialog.
  • -
  • Bug fixes and Improvements.
  • -
-
-
- - -

Open SQLite files

-
    -
  • Open SQLite files directly in Sequeler.
  • -
  • Right click to copy data inside a column.
  • -
  • Bug fixes and Improvements.
  • -
-
-
- - -

UI Fixes and Performance Improvements

-
    -
  • UI fix for logout button.
  • -
  • View shortcuts on preferences dropdown.
  • -
  • Performance Improvements.
  • -
  • Italian translation.
  • -
-
-
- - -

Export all the things!

-
    -
  • Export results from Query Tab.
  • -
  • Export in CSV or Plain Text format.
  • -
  • Sort Columns order everywhere.
  • -
  • Brazilian translation.
  • -
-
-
- - -

Here comes the power of Pagination!!!

-
    -
  • Paginate results in the Content tab.
  • -
  • Query messages UI improvements.
  • -
  • Relations table bug fixes.
  • -
-
-
- - -

We got Multi SQL Query support.

-
    -
  • Ability to handle multiple SQL queries.
  • -
  • Execute the currently highlighted query.
  • -
  • Improved Library Popover UI.
  • -
  • Use native GTK+ CSS attributes for better Light/Dark mode.
  • -
  • Random UI improvements.
  • -
-
-
- - -

Urgent! Fixed broken Tabs for translated version.

-
-
- - -

Light and Dark Mode Switch!

-
    -
  • Better Dark/Light mode switch in header bar.
  • -
  • Add Russian translation.
  • -
  • Updated Welcome screen with New Window command.
  • -
  • Code cleanup.
  • -
-
-
- - -

Official Juno release!

-
    -
  • Missing filter name on SQLite File Dialog.
  • -
-
-
- - -

We got Search!

-
    -
  • Search table names in sidebar.
  • -
  • Fixes issue in connecting directly on a non saved connection.
  • -
  • Updated Lithuanian translation.
  • -
  • Italian translation.
  • -
-
-
- - -

Improved Password Security.

-
    -
  • Safely store passwords in LibSecret.
  • -
  • Auto upgrade on startup to remove passwords from GSettings.
  • -
  • Fixes issues with identical table names from other database in the same connection.
  • -
  • Alphabetically ordered tables.
  • -
  • Improvements in showing MySql/MariaDB Table Structure.
  • -
  • Many more bugs for you to discover.
  • -
-
-
- - -

New Icon and Import/Export Library.

-
    -
  • Fancy new icon.
  • -
  • Import and Export connections library.
  • -
  • Fixed random crash when opening and closing multiple connections.
  • -
  • Bug fixes and improvements.
  • -
-
-
- - -

Bug fixes and improvements.

-
    -
  • Fixed PostgreSQL Schema show options.
  • -
  • Fixed crash on new connection dialog when opening the connection before saving.
  • -
-
-
- - -

Little side dish update.

-
    -
  • Fixed save window state on close.
  • -
  • Bug fixes and improvements.
  • -
-
-
- - -

Alternate coloured rows!

-
    -
  • Manually reload Content, Structure, and Relations.
  • -
  • Show Table schema, content, and constraint relationships.
  • -
  • Properly handle compound queries.
  • -
  • Fix PostgreSQL table switch.
  • -
-
-
- - -

Complete rewrite of the entire code base!

-
    -
  • Handle multiple Windows/Instances and multiple open connections.
  • -
  • Show Table schema, content, and constraint relationships.
  • -
  • Quicker response on big select queries
  • -
  • Better error handling.
  • -
  • Bug fixes and improvements.
  • -
-
-
- - -

Better error handling, less crashes!

-
    -
  • The app doesn't crash when dealing with big values
  • -
  • Handling errors related to columns
  • -
  • Quicker response on big select queries
  • -
  • Some small clean up
  • -
  • Fixes issue with SQL Lite encrypted path
  • -
-
-
- - -

Better error handling, less crashes!

-
    -
  • The app doesn't crash when dealing with big values
  • -
  • Handling errors related to columns
  • -
  • Quicker response on big select queries
  • -
  • Some small clean up
  • -
-
-
- - -

New Icon, Better error messages!

-
    -
  • New shiny icon
  • -
  • View SQL error message on error
  • -
  • FIX: Show proper PostgreSql Schema Table in Sidebar
  • -
  • Snappiest query execution ever for local databases
  • -
  • The usual bundle of bugs for you to discover
  • -
-
-
- - -

Summoning the power of async methods!

-
    -
  • All DataBase queries are now async methods, super fast.
  • -
  • The UI doesn't freeze anymore during a long process
  • -
  • Granite SourceList to display list of tables
  • -
  • Tabs to switch between the Query Builder and the Table Structure
  • -
  • ComboBox to select table schemas from the open connection
  • -
  • Many more bugs and issues for you to have fun with
  • -
-
-
- - -

Bug Fixes and Improvements

-
    -
  • Display Table lists for SQLite and PostgreSQL
  • -
  • Refresh Table List view if tables change
  • -
  • Removed unused GSettings
  • -
-
-
- - -

This is so good you won't believe it. New Library UI, Schema Table, Custom Port, and more

-
    -
  • A brand new Library View directly in your home screen, super tight and organized
  • -
  • Custom Port field for those snazzy geeks who don't just use 3306
  • -
  • A shiny new Sidebar View to list all your DataBase Tables
  • -
  • Code cleanup and speed improvements
  • -
  • Usual abundance of bugs and issues for you to have fun with!
  • -
-
-
- - -

Major Update: Releasing a sweet table to view Query Results!

-
    -
  • Did I say we got a sweet table to view query results?
  • -
  • New shortcut (ctrl+enter) to execute query
  • -
  • Solved bug while connecting to DB directly from the Connection Dialog
  • -
  • UI Improvements to Connection Dialog
  • -
  • Added Spanish and Lithuanian translations
  • -
-
-
- - -

UI fixes

-
    -
  • Visual improvements to the library view
  • -
-
-
- - -

Initial Release

-
    -
  • Store your Database connections
  • -
  • Quickly connect to a Local or Remote Database
  • -
  • Write SQL queries in the built-in code editor
  • -
-
-
-
- - - https://raw.githubusercontent.com/Alecaddd/sequeler/master/data/assets/screenshots/sequeler-screenshot.png - - - https://raw.githubusercontent.com/Alecaddd/sequeler/master/data/assets/screenshots/sequeler-screenshot1.png - - - https://raw.githubusercontent.com/Alecaddd/sequeler/master/data/assets/screenshots/sequeler-screenshot2.png - - - - Alessandro Castellani - - @appid@.desktop - https://github.com/Alecaddd/sequeler - https://www.paypal.me/alecaddd - https://github.com/Alecaddd/sequeler/issues - https://github.com/Alecaddd/sequeler/issues - https://hosted.weblate.org/projects/sequeler - castellani.ale@gmail.com - - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - none - - - #3f3f3f - #ffffff - 25 - pk_live_Arrxw947rfYpLQK7VcSv4766 - - - HiDpiIcon - HighContrast - ModernToolkit - + @appid@ + CC0-1.0 + GPL-3.0+ + Sequeler + Friendly SQL Client + +

+ Easily connect to your local or remote database +

+

+ Store your Database Connections in the library, connect over SSH tunnel, type and execute SQL commands directly in the app, and do everything you need to do without the necessity of opening the terminal. +

+

+ Supported Databases: +

+ +

+ Features Include: +

+ +
+ + @appid@ + + + + +

Odin release

+
    +
  • Update elementary OS Platform runtime.
  • +
  • Update screenshots.
  • +
+
+
+ + +

Odin release

+
    +
  • Updated translations for Ukranian, Russian, Indonisian, Chinese, Lithuanian, Portugese, Turkish, and Arabic.
  • +
+
+
+ + +

New Features

+
    +
  • Create, Edit, and Delete databases.
  • +
  • New context menu to copy and edit tables.
  • +
  • Support unencrypted connections.
  • +
+

Bug Fixes

+
    +
  • Fix copy column data.
  • +
+

Translations

+
    +
  • Updated translations for Ukranian, Russian, French, and German.
  • +
+
+
+ + +

Reduced CPU usage by 2%.

+

Update translations for Italian, Spanish, Catalan, French, Hindi, Russian, and Turkish.

+
+
+ + +

More fixes!

+

0.7.8 changelog

+
    +
  • Fixed usage attempt of wrong Vala method.
  • +
+

0.7.7 changelog

+
    +
  • Fix nasty GSettings bug causing the app to crash.
  • +
  • Implement GDA Placeholder statement.
  • +
  • Improve Query Tab iconography.
  • +
+

0.7.6 changelog

+
    +
  • Fix ORDER BY in PostgreSQL Relationship view.
  • +
  • Improve MySQL structure view.
  • +
  • Drop Granite.Settings in favour of GLib.Settings.
  • +
  • Implement Granite.Notebook on the Query tab.
  • +
  • Show query error messages inline.
  • +
+
+
+ + +

More fixes!

+
    +
  • Fixed usage attempt of wrong Vala method.
  • +
+
+
+ + +

Because 0.7.6 never happened!

+
    +
  • Fix nasty GSettings bug causing the app to crash.
  • +
  • Implement GDA Placeholder statement.
  • +
  • Improve Query Tab iconography.
  • +
+
+
+ + +

Query Tab Bonanza!

+
    +
  • Fix ORDER BY in PostgreSQL Relationship view.
  • +
  • Improve MySQL structure view.
  • +
  • Drop Granite.Settings in favour of GLib.Settings.
  • +
  • Implement Granite.Notebook on the Query tab.
  • +
  • Show query error messages inline.
  • +
+
+
+ + +

New features and improvements

+
    +
  • You can now duplicate connections.
  • +
  • Sorting columns now works as expected by actually running the ORDER BY query.
  • +
  • Quickly jump to a specific result page with the handy dandy pagination popover.
  • +
  • Show Comment Column inside table structure view.
  • +
+
+
+ + +

The 2020 release!

+
    +
  • Manually reorder saved connection.
  • +
  • Allow selecting a custom SSH public key.
  • +
  • Fix SSH tunnel crashes.
  • +
+
+
+ + +

Raw Query Improvements

+
    +
  • Strip comments from SQL raw queries.
  • +
  • Better handle complex queries on multiple lines.
  • +
  • Speed up query rendering.
  • +
+
+
+ + +

Sweet Query Tab Improvements

+
    +
  • Edit font size of the Query Tab.
  • +
  • Edit background style of the Query Tab.
  • +
  • Save and remember the Query Tab size.
  • +
+
+
+ + +

PostgreSQL Fixes

+
    +
  • Fixed PostgreSQL relationship table.
  • +
  • Fixed wrong response message when handling non select queries.
  • +
+
+
+ + +

Bite-Size fixes

+
    +
  • Removed unused libfixposix.
  • +
  • Fixed pagination issue when clicking too fast while fetching big data.
  • +
+
+
+ + +

Bug fixes and improvements

+
    +
  • Rewritten pagination to use LIMIT and OFFSET.
  • +
  • Faster pagination and content viewing for big data.
  • +
  • Show records count in table's list.
  • +
  • Bug fixes and other improvements.
  • +
+
+
+ + +

Bug fixes and improvements

+
    +
  • Properly handle EXPLAIN SQL statement.
  • +
  • Properly handle querying capitlized PostgreSQL tables.
  • +
  • Improved async methods for internal views.
  • +
  • Updated translations.
  • +
+
+
+ + +

Critical bug fix!

+
    +
  • CRITICAL: Fixes missing GSettings Schema, restore lost connections.
  • +
  • Other small bug fixes and improvements.
  • +
+
+
+ + +

Implemented SSH tunneling

+
    +
  • WARNING: This release packs many updates and something could break. Please, backup your connections.
  • +
  • Connect via SSH to a remote Database.
  • +
  • Major code refactor to handle UI updates via async methods.
  • +
  • Use Stack container to show a loading Spinner during fetch or data processing methods.
  • +
  • Major performance improvements to the table search and dropdown schema switcher.
  • +
  • Bug fixes and other improvements.
  • +
+
+
+ + +

Fancy New Icon!

+
    +
  • New fancy Icon.
  • +
  • Use GtkNativeDialog.
  • +
  • Bug fixes and Improvements.
  • +
+
+
+ + +

Open SQLite files

+
    +
  • Open SQLite files directly in Sequeler.
  • +
  • Right click to copy data inside a column.
  • +
  • Bug fixes and Improvements.
  • +
+
+
+ + +

UI Fixes and Performance Improvements

+
    +
  • UI fix for logout button.
  • +
  • View shortcuts on preferences dropdown.
  • +
  • Performance Improvements.
  • +
  • Italian translation.
  • +
+
+
+ + +

Export all the things!

+
    +
  • Export results from Query Tab.
  • +
  • Export in CSV or Plain Text format.
  • +
  • Sort Columns order everywhere.
  • +
  • Brazilian translation.
  • +
+
+
+ + +

Here comes the power of Pagination!!!

+
    +
  • Paginate results in the Content tab.
  • +
  • Query messages UI improvements.
  • +
  • Relations table bug fixes.
  • +
+
+
+ + +

We got Multi SQL Query support.

+
    +
  • Ability to handle multiple SQL queries.
  • +
  • Execute the currently highlighted query.
  • +
  • Improved Library Popover UI.
  • +
  • Use native GTK+ CSS attributes for better Light/Dark mode.
  • +
  • Random UI improvements.
  • +
+
+
+ + +

Urgent! Fixed broken Tabs for translated version.

+
+
+ + +

Light and Dark Mode Switch!

+
    +
  • Better Dark/Light mode switch in header bar.
  • +
  • Add Russian translation.
  • +
  • Updated Welcome screen with New Window command.
  • +
  • Code cleanup.
  • +
+
+
+ + +

Official Juno release!

+
    +
  • Missing filter name on SQLite File Dialog.
  • +
+
+
+ + +

We got Search!

+
    +
  • Search table names in sidebar.
  • +
  • Fixes issue in connecting directly on a non saved connection.
  • +
  • Updated Lithuanian translation.
  • +
  • Italian translation.
  • +
+
+
+ + +

Improved Password Security.

+
    +
  • Safely store passwords in LibSecret.
  • +
  • Auto upgrade on startup to remove passwords from GSettings.
  • +
  • Fixes issues with identical table names from other database in the same connection.
  • +
  • Alphabetically ordered tables.
  • +
  • Improvements in showing MySql/MariaDB Table Structure.
  • +
  • Many more bugs for you to discover.
  • +
+
+
+ + +

New Icon and Import/Export Library.

+
    +
  • Fancy new icon.
  • +
  • Import and Export connections library.
  • +
  • Fixed random crash when opening and closing multiple connections.
  • +
  • Bug fixes and improvements.
  • +
+
+
+ + +

Bug fixes and improvements.

+
    +
  • Fixed PostgreSQL Schema show options.
  • +
  • Fixed crash on new connection dialog when opening the connection before saving.
  • +
+
+
+ + +

Little side dish update.

+
    +
  • Fixed save window state on close.
  • +
  • Bug fixes and improvements.
  • +
+
+
+ + +

Alternate coloured rows!

+
    +
  • Manually reload Content, Structure, and Relations.
  • +
  • Show Table schema, content, and constraint relationships.
  • +
  • Properly handle compound queries.
  • +
  • Fix PostgreSQL table switch.
  • +
+
+
+ + +

Complete rewrite of the entire code base!

+
    +
  • Handle multiple Windows/Instances and multiple open connections.
  • +
  • Show Table schema, content, and constraint relationships.
  • +
  • Quicker response on big select queries
  • +
  • Better error handling.
  • +
  • Bug fixes and improvements.
  • +
+
+
+ + +

Better error handling, less crashes!

+
    +
  • The app doesn't crash when dealing with big values
  • +
  • Handling errors related to columns
  • +
  • Quicker response on big select queries
  • +
  • Some small clean up
  • +
  • Fixes issue with SQL Lite encrypted path
  • +
+
+
+ + +

Better error handling, less crashes!

+
    +
  • The app doesn't crash when dealing with big values
  • +
  • Handling errors related to columns
  • +
  • Quicker response on big select queries
  • +
  • Some small clean up
  • +
+
+
+ + +

New Icon, Better error messages!

+
    +
  • New shiny icon
  • +
  • View SQL error message on error
  • +
  • FIX: Show proper PostgreSql Schema Table in Sidebar
  • +
  • Snappiest query execution ever for local databases
  • +
  • The usual bundle of bugs for you to discover
  • +
+
+
+ + +

Summoning the power of async methods!

+
    +
  • All DataBase queries are now async methods, super fast.
  • +
  • The UI doesn't freeze anymore during a long process
  • +
  • Granite SourceList to display list of tables
  • +
  • Tabs to switch between the Query Builder and the Table Structure
  • +
  • ComboBox to select table schemas from the open connection
  • +
  • Many more bugs and issues for you to have fun with
  • +
+
+
+ + +

Bug Fixes and Improvements

+
    +
  • Display Table lists for SQLite and PostgreSQL
  • +
  • Refresh Table List view if tables change
  • +
  • Removed unused GSettings
  • +
+
+
+ + +

This is so good you won't believe it. New Library UI, Schema Table, Custom Port, and more

+
    +
  • A brand new Library View directly in your home screen, super tight and organized
  • +
  • Custom Port field for those snazzy geeks who don't just use 3306
  • +
  • A shiny new Sidebar View to list all your DataBase Tables
  • +
  • Code cleanup and speed improvements
  • +
  • Usual abundance of bugs and issues for you to have fun with!
  • +
+
+
+ + +

Major Update: Releasing a sweet table to view Query Results!

+
    +
  • Did I say we got a sweet table to view query results?
  • +
  • New shortcut (ctrl+enter) to execute query
  • +
  • Solved bug while connecting to DB directly from the Connection Dialog
  • +
  • UI Improvements to Connection Dialog
  • +
  • Added Spanish and Lithuanian translations
  • +
+
+
+ + +

UI fixes

+
    +
  • Visual improvements to the library view
  • +
+
+
+ + +

Initial Release

+
    +
  • Store your Database connections
  • +
  • Quickly connect to a Local or Remote Database
  • +
  • Write SQL queries in the built-in code editor
  • +
+
+
+
+ + + https://raw.githubusercontent.com/ellie-commons/sequeler/master/data/assets/screenshots/sequeler-screenshot.png + + + https://raw.githubusercontent.com/ellie-commons/sequeler/master/data/assets/screenshots/sequeler-screenshot1.png + + + https://raw.githubusercontent.com/ellie-commons/sequeler/master/data/assets/screenshots/sequeler-screenshot2.png + + + + Alessandro Castellani + + @appid@.desktop + https://github.com/ellie-commons/sequeler + https://www.paypal.me/alecaddd + https://github.com/ellie-commons/sequeler/issues + https://github.com/ellie-commons/sequeler/issues + https://hosted.weblate.org/projects/sequeler + castellani.ale@gmail.com + + + #3f3f3f + #ffffff + 25 + pk_live_Arrxw947rfYpLQK7VcSv4766 + + + HiDpiIcon + HighContrast + ModernToolkit +