You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-11-06 09:19:22 +02:00
Better handling of network errors and improved borders
This commit is contained in:
@@ -21,6 +21,7 @@ const RootWidget = require('tkwidgets/RootWidget.js');
|
||||
const WindowWidget = require('tkwidgets/WindowWidget.js');
|
||||
|
||||
const NoteWidget = require('./gui/NoteWidget.js');
|
||||
const NoteMetadataWidget = require('./gui/NoteMetadataWidget.js');
|
||||
const FolderListWidget = require('./gui/FolderListWidget.js');
|
||||
const NoteListWidget = require('./gui/NoteListWidget.js');
|
||||
const StatusBarWidget = require('./gui/StatusBarWidget.js');
|
||||
@@ -87,7 +88,10 @@ class AppGui {
|
||||
this.rootWidget_.name = 'root';
|
||||
|
||||
const folderList = new FolderListWidget();
|
||||
folderList.style = { borderBottomWidth: 1 };
|
||||
folderList.style = {
|
||||
borderBottomWidth: 1,
|
||||
borderRightWidth: 1,
|
||||
};
|
||||
folderList.name = 'folderList';
|
||||
folderList.vStretch = true;
|
||||
folderList.on('currentItemChange', async () => {
|
||||
@@ -127,25 +131,49 @@ class AppGui {
|
||||
});
|
||||
|
||||
const noteText = new NoteWidget();
|
||||
noteText.vStretch = true;
|
||||
noteText.hStretch = true;
|
||||
noteText.name = 'noteText';
|
||||
noteText.style = { borderBottomWidth: 1 };
|
||||
noteText.style = {
|
||||
borderBottomWidth: 1,
|
||||
borderLeftWidth: 1,
|
||||
};
|
||||
this.rootWidget_.connect(noteText, (state) => {
|
||||
return { noteId: state.selectedNoteId };
|
||||
});
|
||||
|
||||
const noteMetadata = new NoteMetadataWidget();
|
||||
noteMetadata.hStretch = true;
|
||||
noteMetadata.name = 'noteMetadata';
|
||||
noteMetadata.style = {
|
||||
borderBottomWidth: 1,
|
||||
borderLeftWidth: 1,
|
||||
borderRightWidth: 1,
|
||||
};
|
||||
this.rootWidget_.connect(noteMetadata, (state) => {
|
||||
return { noteId: state.selectedNoteId };
|
||||
});
|
||||
noteMetadata.hide();
|
||||
|
||||
const consoleWidget = new ConsoleWidget();
|
||||
consoleWidget.hStretch = true;
|
||||
consoleWidget.style = {
|
||||
borderBottomWidth: 1,
|
||||
};
|
||||
consoleWidget.hide();
|
||||
|
||||
const statusBar = new StatusBarWidget();
|
||||
statusBar.hStretch = true;
|
||||
|
||||
const noteLayout = new VLayoutWidget();
|
||||
noteLayout.name = 'noteLayout';
|
||||
noteLayout.addChild(noteText, { type: 'stretch', factor: 1 });
|
||||
noteLayout.addChild(noteMetadata, { type: 'stretch', factor: 1 });
|
||||
|
||||
const hLayout = new HLayoutWidget();
|
||||
hLayout.name = 'hLayout';
|
||||
hLayout.addChild(folderList, { type: 'stretch', factor: 1 });
|
||||
hLayout.addChild(noteList, { type: 'stretch', factor: 1 });
|
||||
hLayout.addChild(noteText, { type: 'stretch', factor: 2 });
|
||||
hLayout.addChild(noteLayout, { type: 'stretch', factor: 2 });
|
||||
|
||||
const vLayout = new VLayoutWidget();
|
||||
vLayout.name = 'vLayout';
|
||||
@@ -191,6 +219,14 @@ class AppGui {
|
||||
canRunAlongOtherCommands: true,
|
||||
}
|
||||
|
||||
shortcuts['m'] = {
|
||||
description: _('Toggle note metadata.'),
|
||||
action: () => {
|
||||
this.toggleNoteMetadata();
|
||||
},
|
||||
canRunAlongOtherCommands: true,
|
||||
}
|
||||
|
||||
shortcuts[':'] = {
|
||||
description: _('Enter command line mode'),
|
||||
action: async () => {
|
||||
@@ -253,9 +289,7 @@ class AppGui {
|
||||
}
|
||||
|
||||
showConsole(doShow = true) {
|
||||
const consoleWidget = this.widget('console');
|
||||
consoleWidget.show(doShow);
|
||||
this.widget('root').invalidate();
|
||||
this.widget('console').show(doShow);
|
||||
}
|
||||
|
||||
hideConsole() {
|
||||
@@ -293,6 +327,18 @@ class AppGui {
|
||||
return this.widget('console').isMaximized__ === true;
|
||||
}
|
||||
|
||||
showNoteMetadata(show = true) {
|
||||
this.widget('noteMetadata').show(show);
|
||||
}
|
||||
|
||||
hideNoteMetadata() {
|
||||
this.showNoteMetadata(false);
|
||||
}
|
||||
|
||||
toggleNoteMetadata() {
|
||||
this.showNoteMetadata(!this.widget('noteMetadata').shown);
|
||||
}
|
||||
|
||||
widget(name) {
|
||||
if (name === 'root') return this.rootWidget_;
|
||||
return this.rootWidget_.childByName(name);
|
||||
|
||||
@@ -10,7 +10,7 @@ class FolderListWidget extends ListWidget {
|
||||
this.updateIndexFromSelectedFolderId_ = false;
|
||||
|
||||
this.itemRenderer = (item) => {
|
||||
return item.title + ' ' + item.id;
|
||||
return item.title; //+ ' ' + item.id;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
36
CliClient/app/gui/NoteMetadataWidget.js
Normal file
36
CliClient/app/gui/NoteMetadataWidget.js
Normal file
@@ -0,0 +1,36 @@
|
||||
const Note = require('lib/models/note.js').Note;
|
||||
const TextWidget = require('tkwidgets/TextWidget.js');
|
||||
|
||||
class NoteMetadataWidget extends TextWidget {
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
this.noteId_ = 0;
|
||||
this.note_ = null;
|
||||
}
|
||||
|
||||
get noteId() {
|
||||
return this.noteId_;
|
||||
}
|
||||
|
||||
set noteId(v) {
|
||||
// If this is called it means either the note ID has changed OR
|
||||
// the note content has changed, so we always set note_ to null
|
||||
// so that it can be reloaded in onWillRender().
|
||||
this.noteId_ = v;
|
||||
this.note_ = null;
|
||||
this.invalidate();
|
||||
}
|
||||
|
||||
async onWillRender() {
|
||||
if (!this.visible) return;
|
||||
|
||||
if (!this.note_ && this.noteId_) {
|
||||
this.note_ = await Note.load(this.noteId_);
|
||||
this.text = this.note_ ? await Note.serializeAllProps(this.note_) : '';
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = NoteMetadataWidget;
|
||||
@@ -24,6 +24,9 @@ msgstr ""
|
||||
msgid "Toggle console between maximized/minimized/hidden/visible."
|
||||
msgstr ""
|
||||
|
||||
msgid "Toggle note metadata."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter command line mode"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -26,6 +26,9 @@ msgstr "Tâches non-complétées et récentes"
|
||||
msgid "Toggle console between maximized/minimized/hidden/visible."
|
||||
msgstr ""
|
||||
|
||||
msgid "Toggle note metadata."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter command line mode"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -24,6 +24,9 @@ msgstr ""
|
||||
msgid "Toggle console between maximized/minimized/hidden/visible."
|
||||
msgstr ""
|
||||
|
||||
msgid "Toggle note metadata."
|
||||
msgstr ""
|
||||
|
||||
msgid "Enter command line mode"
|
||||
msgstr ""
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"license": "MIT",
|
||||
"author": "Laurent Cozic",
|
||||
"bugs": {
|
||||
"url": "https://github.com/laurent22/joplin/issues"
|
||||
"url": "https://github.com/laurent22/joplin/issues"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
@@ -18,7 +18,7 @@
|
||||
],
|
||||
"owner": "Laurent Cozic"
|
||||
},
|
||||
"version": "0.10.44",
|
||||
"version": "0.10.47",
|
||||
"bin": {
|
||||
"joplin": "./main.js"
|
||||
},
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
yarn upgrade
|
||||
# yarn upgrade
|
||||
npm version patch
|
||||
#$SCRIPT_DIR/update-package-md5.sh
|
||||
touch "$SCRIPT_DIR/app/main.js"
|
||||
|
||||
Reference in New Issue
Block a user