From f00619fed56dbef592598148953d384ed596ed55 Mon Sep 17 00:00:00 2001 From: patrikx3 Date: Thu, 29 Apr 2021 11:55:14 +0200 Subject: [PATCH] r0b08x [chore] 4/29/2021, 11:55:13 AM --- LICENSE | 2 +- README.md | 4 +-- artifacts/arm.md | 2 +- artifacts/new-language.md | 2 +- artifacts/npm.md | 2 +- changelog.md | 5 +++- package.json | 4 +-- src/electron/lib/natural-compare-document.js | 28 ++++++++++++++++++++ src/electron/main/create/menu.js | 8 ++++-- src/electron/main/ipc-main.js | 11 ++++++-- 10 files changed, 55 insertions(+), 13 deletions(-) create mode 100644 src/electron/lib/natural-compare-document.js diff --git a/LICENSE b/LICENSE index 5bd88493..5d902840 100644 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,5 @@ -@license p3x-onenote v2021.4.173 +@license p3x-onenote v2021.4.175 📚 P3X OneNote Linux diff --git a/README.md b/README.md index c4ff6dc6..9bcc37fe 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ -# 📚 P3X OneNote Linux v2021.4.173 +# 📚 P3X OneNote Linux v2021.4.175 @@ -228,7 +228,7 @@ All my domains ([patrikx3.com](https://patrikx3.com) and [corifeus.com](https:// --- -[**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2021.4.173 +[**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2021.4.175 [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) diff --git a/artifacts/arm.md b/artifacts/arm.md index d829ecc9..a89daff8 100644 --- a/artifacts/arm.md +++ b/artifacts/arm.md @@ -25,7 +25,7 @@ All my domains ([patrikx3.com](https://patrikx3.com) and [corifeus.com](https:// --- -[**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2021.4.173 +[**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2021.4.175 [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) diff --git a/artifacts/new-language.md b/artifacts/new-language.md index 8f0916ff..1d3913f6 100644 --- a/artifacts/new-language.md +++ b/artifacts/new-language.md @@ -25,7 +25,7 @@ All my domains ([patrikx3.com](https://patrikx3.com) and [corifeus.com](https:// --- -[**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2021.4.173 +[**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2021.4.175 [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) diff --git a/artifacts/npm.md b/artifacts/npm.md index 5c11a7e2..edbff630 100644 --- a/artifacts/npm.md +++ b/artifacts/npm.md @@ -38,7 +38,7 @@ All my domains ([patrikx3.com](https://patrikx3.com) and [corifeus.com](https:// --- -[**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2021.4.173 +[**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2021.4.175 [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) diff --git a/changelog.md b/changelog.md index 703cf820..591df6fc 100644 --- a/changelog.md +++ b/changelog.md @@ -7,6 +7,9 @@ ## Change log +### v2021.4.175 +* FEATURE: The bookmarks are sorted by alphabetically. + ### v2021.4.173 * FEATURE: Enhanced dark mode by keeping the original colors (a bit shift, but not invert like before). @@ -264,7 +267,7 @@ All my domains ([patrikx3.com](https://patrikx3.com) and [corifeus.com](https:// --- -[**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2021.4.173 +[**P3X-ONENOTE**](https://corifeus.com/onenote) Build v2021.4.175 [![Donate for Corifeus / P3X](https://img.shields.io/badge/Donate-Corifeus-003087.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=QZVM4V6HVZJW6) [![Contact Corifeus / P3X](https://img.shields.io/badge/Contact-P3X-ff9900.svg)](https://www.patrikx3.com/en/front/contact) [![Like Corifeus @ Facebook](https://img.shields.io/badge/LIKE-Corifeus-3b5998.svg)](https://www.facebook.com/corifeus.software) diff --git a/package.json b/package.json index 6075a3ed..d2382953 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "p3x-onenote", - "version": "2021.4.173", + "version": "2021.4.175", "description": "📚 P3X OneNote Linux", "main": "src/electron/app.js", "corifeus": { @@ -62,7 +62,7 @@ "electron-updater": "^4.3.8", "opencollective": "^1.0.3", "semver": "^7.3.5", - "electron": "^12.0.4" + "electron": "^12.0.5" }, "devDependencies": { "corifeus-builder": "^2021.4.124", diff --git a/src/electron/lib/natural-compare-document.js b/src/electron/lib/natural-compare-document.js new file mode 100644 index 00000000..156a423c --- /dev/null +++ b/src/electron/lib/natural-compare-document.js @@ -0,0 +1,28 @@ +module.exports = ({ byProperty }) => { + return (a, b) => { + if (byProperty !== undefined) { + a = a[byProperty] + b = b[byProperty] + } + const regexTemplate = /(\d+)|(\D+)/g; + const ax = [], bx = []; + + a.replace(regexTemplate, function (_, $1, $2) { + ax.push([$1 || Infinity, $2 || ""]) + }); + b.replace(regexTemplate, function (_, $1, $2) { + bx.push([$1 || Infinity, $2 || ""]) + }); + + while (ax.length && bx.length) { + const an = ax.shift(); + const bn = bx.shift(); + const nn = (parseFloat(an[0]) - parseFloat(bn[0])) || an[1].localeCompare(bn[1]); + if (nn) { + return nn; + } + } + + return ax.length - bx.length; + } +} diff --git a/src/electron/main/create/menu.js b/src/electron/main/create/menu.js index 6078842d..9af96ced 100644 --- a/src/electron/main/create/menu.js +++ b/src/electron/main/create/menu.js @@ -68,8 +68,12 @@ function mainMenu() { }) } - for(let bookmarkIndex in bookmarks) { - const bookmark = bookmarks[bookmarkIndex] + const naturalCompareDocument = require('../../lib/natural-compare-document') + let bookmarksSort = bookmarks.sort(naturalCompareDocument({ + byProperty: 'title' + })) + for(let bookmarkIndex in bookmarksSort) { + const bookmark = bookmarksSort[bookmarkIndex] const thisBookmarkIndex = bookmarkIndex bookmarksMenu.push({ label: bookmark.title, diff --git a/src/electron/main/ipc-main.js b/src/electron/main/ipc-main.js index 024d028d..81caf112 100644 --- a/src/electron/main/ipc-main.js +++ b/src/electron/main/ipc-main.js @@ -12,7 +12,14 @@ ipcMain.on('p3x-onenote-save', function (event, data) { ipcMain.on('p3x-onenote-action-bookmark-result', function (event, data) { //console.log('p3x-onenote-action-bookmark-result', data) - const bookmarks = global.p3x.onenote.conf.get('bookmarks') || [] + const bookmarksOriginal = global.p3x.onenote.conf.get('bookmarks') || [] + + const naturalCompareDocument = require('../lib/natural-compare-document') + const sort = naturalCompareDocument({ + byProperty: 'title' + }) + let bookmarks = bookmarksOriginal.sort(sort) + if (data.opts.edit !== true) { bookmarks.push(data.model) } else { @@ -23,7 +30,7 @@ ipcMain.on('p3x-onenote-action-bookmark-result', function (event, data) { } } - global.p3x.onenote.conf.set('bookmarks', bookmarks) + global.p3x.onenote.conf.set('bookmarks', bookmarks.sort(sort)) global.p3x.onenote.mainMenu(); global.p3x.onenote.mainTray()