1
0
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:
Laurent Cozic
2017-10-22 13:45:56 +01:00
parent 6e49aa45c0
commit 0ee82bd5ce
11 changed files with 223 additions and 56 deletions

View File

@@ -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);

View File

@@ -10,7 +10,7 @@ class FolderListWidget extends ListWidget {
this.updateIndexFromSelectedFolderId_ = false;
this.itemRenderer = (item) => {
return item.title + ' ' + item.id;
return item.title; //+ ' ' + item.id;
};
}

View 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;

View File

@@ -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 ""

View File

@@ -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 ""

View File

@@ -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 ""

View File

@@ -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"
},

View File

@@ -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"