Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/keenwrite.git

Relocate buttons to top of definition pane

AuthorDaveJarvis <email>
Date2020-07-01 11:56:59 GMT-0700
Commit6bcd94bfa54d7b456cbabaefa35af4a143b0aa49
Parentb4fd296
src/main/java/com/scrivenvar/MainWindow.java
FileEditorTab::canRedoProperty ).not() )
.build();
+
+ final Action editCutAction = new ActionBuilder()
+ .setText( Messages.get( "Main.menu.edit.cut" ) )
+ .setAccelerator( "Shortcut+X" )
+ .setIcon( CUT )
+ .setAction( e -> getActiveEditorPane().cut() )
+ .setDisable( activeFileEditorIsNull )
+ .build();
+ final Action editCopyAction = new ActionBuilder()
+ .setText( Messages.get( "Main.menu.edit.copy" ) )
+ .setAccelerator( "Shortcut+C" )
+ .setIcon( COPY )
+ .setAction( e -> getActiveEditorPane().copy() )
+ .setDisable( activeFileEditorIsNull )
+ .build();
+ final Action editPasteAction = new ActionBuilder()
+ .setText( Messages.get( "Main.menu.edit.paste" ) )
+ .setAccelerator( "Shortcut+V" )
+ .setIcon( PASTE )
+ .setAction( e -> getActiveEditorPane().paste() )
+ .setDisable( activeFileEditorIsNull )
+ .build();
+ final Action editSelectAllAction = new ActionBuilder()
+ .setText( Messages.get( "Main.menu.edit.selectAll" ) )
+ .setAccelerator( "Shortcut+A" )
+ .setAction( e -> getActiveEditorPane().selectAll() )
+ .setDisable( activeFileEditorIsNull )
+ .build();
+
final Action editFindAction = new ActionBuilder()
.setText( "Main.menu.edit.find" )
editUndoAction,
editRedoAction,
+ null,
+ editCutAction,
+ editCopyAction,
+ editPasteAction,
+ null,
editFindAction,
editFindNextAction,
editUndoAction,
editRedoAction,
+ editCutAction,
+ editCopyAction,
+ editPasteAction,
null,
insertBoldAction,
src/main/java/com/scrivenvar/definition/DefinitionPane.java
import javafx.event.EventHandler;
import javafx.geometry.Insets;
+import javafx.geometry.Pos;
import javafx.scene.Node;
import javafx.scene.control.*;
* {@link DocumentParser} and adapted using a {@link TreeAdapter}.
*/
-public final class DefinitionPane extends TitledPane {
+public final class DefinitionPane extends BorderPane {
/**
*/
private final StringProperty mFilename = new SimpleStringProperty();
+
+ private final TitledPane mTitledPane = new TitledPane();
/**
buttonBar.setSpacing( 10 );
- final var borderPane = new BorderPane();
- borderPane.setPadding( new Insets( 0, 0, 0, 0 ) );
- borderPane.setCenter( treeView );
- borderPane.setBottom( buttonBar );
+ final var titledPane = getTitledPane();
+ titledPane.textProperty().bind( mFilename );
+ titledPane.setContent( treeView );
+ titledPane.setCollapsible( false );
+ titledPane.setPadding( new Insets( 0, 0, 0, 0 ) );
- textProperty().bind( mFilename );
+ setTop( buttonBar );
+ setCenter( titledPane );
+ setAlignment( buttonBar, Pos.TOP_CENTER );
+ setAlignment( titledPane, Pos.TOP_CENTER );
- setContent( borderPane );
- setCollapsible( false );
+ titledPane.prefHeightProperty().bind( this.heightProperty() );
+ }
+
+ public void setTooltip( final Tooltip tooltip ) {
+ getTitledPane().setTooltip( tooltip );
+ }
+
+ private TitledPane getTitledPane() {
+ return mTitledPane;
}
src/main/java/com/scrivenvar/editors/EditorPane.java
import java.nio.file.Path;
-import java.util.Random;
import java.util.function.Consumer;
public void redo() {
getUndoManager().redo();
+ }
+
+ public void cut() {
+ getEditor().selectParagraph();
+ getEditor().cut();
+ }
+
+ public void copy() {
+ getEditor().copy();
+ }
+
+ public void paste() {
+ getEditor().paste();
+ }
+
+ public void selectAll() {
+ getEditor().selectAll();
}
src/main/java/com/scrivenvar/editors/markdown/MarkdownEditorPane.java
import javafx.scene.control.Dialog;
import javafx.scene.control.IndexRange;
+import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.stage.Window;
import static com.scrivenvar.util.Utils.rtrim;
import static javafx.scene.input.KeyCode.ENTER;
+import static javafx.scene.input.KeyCombination.CONTROL_DOWN;
import static org.fxmisc.wellbehaved.event.EventPattern.keyPressed;
addKeyboardListener( keyPressed( ENTER ), this::enterPressed );
+ addKeyboardListener( keyPressed( KeyCode.X, CONTROL_DOWN ), this::cut );
}
// the pane.
textArea.requestFollowCaret();
+ }
+
+ private void cut( final KeyEvent event ) {
+ super.cut();
}
src/main/resources/com/scrivenvar/messages.properties
Main.menu.edit.undo=_Undo
Main.menu.edit.redo=_Redo
+Main.menu.edit.cut=Cu_t
+Main.menu.edit.copy=_Copy
+Main.menu.edit.paste=_Paste
Main.menu.edit.find=_Find
Main.menu.edit.find.next=Find _Next
Delta86 lines added, 9 lines removed, 77-line increase