|
@@ -20,6 +20,7 @@ namespace Publicate {
|
|
|
private TabBar tab_bar;
|
|
|
|
|
|
private Button save_tab_button;
|
|
|
+ private Button remove_file_button;
|
|
|
|
|
|
private Gee.HashMap<string, Editors.EditorWidget> open_editors = new Gee.HashMap<string, Editors.EditorWidget>();
|
|
|
|
|
@@ -51,14 +52,16 @@ namespace Publicate {
|
|
|
|
|
|
var new_file_button = new Button.from_icon_name("document-new-symbolic");
|
|
|
file_buttons.append(new_file_button);
|
|
|
+ new_file_button.sensitive = false; // Not yet implemented...
|
|
|
|
|
|
var add_file_button = new Button.from_icon_name("list-add-symbolic");
|
|
|
file_buttons.append(add_file_button);
|
|
|
add_file_button.clicked.connect(import_file);
|
|
|
|
|
|
- var remove_file_button = new Button.from_icon_name("user-trash-symbolic");
|
|
|
+ remove_file_button = new Button.from_icon_name("user-trash-symbolic");
|
|
|
file_buttons.append(remove_file_button);
|
|
|
remove_file_button.clicked.connect(delete_file_clicked);
|
|
|
+ remove_file_button.sensitive = false;
|
|
|
|
|
|
leaflet = new Leaflet();
|
|
|
leaflet.vexpand = true;
|
|
@@ -98,7 +101,12 @@ namespace Publicate {
|
|
|
|
|
|
}
|
|
|
|
|
|
- public async void open_asset(Ppub.Asset asset) {
|
|
|
+ public async void open_asset(Ppub.Asset? asset) {
|
|
|
+
|
|
|
+ update_deletable();
|
|
|
+ if(asset == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
if(open_editors.has_key(asset.name)) {
|
|
|
tab_view.selected_page = open_editors[asset.name].tab_page;
|
|
@@ -266,6 +274,12 @@ namespace Publicate {
|
|
|
window.close();
|
|
|
}
|
|
|
|
|
|
+ private void update_deletable() {
|
|
|
+ // Inhibit deletion of default document or metadata.
|
|
|
+ var asset = file_explorer.selected_asset;
|
|
|
+ remove_file_button.sensitive = (asset != null && asset.name != "metadata" && publication.get_default_asset().name != asset.name);
|
|
|
+ }
|
|
|
+
|
|
|
private void delete_file_clicked() {
|
|
|
var asset = file_explorer.selected_asset;
|
|
|
if(asset == null) {
|