fix: save document before creating backup

This commit is contained in:
Georgy Litvinov 2021-11-17 19:29:03 +01:00
parent 267dbb63b8
commit 993ca4fe0f
No known key found for this signature in database
GPG key ID: E8185E06DE0279DD
5 changed files with 24 additions and 12 deletions
oxt
src/main/java/pro/litvinovg/docsettings

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<description xmlns="http://openoffice.org/extensions/description/2006" xmlns:dep="http://openoffice.org/extensions/description/2006" xmlns:xlink="http://www.w3.org/1999/xlink">
<identifier value="pro.litvinovg.libreoffice.docsettings"/>
<version value="0.0.6"/>
<version value="0.0.7"/>
<platform value="all"/>
<display-name>
<name lang="ru">Управление настройками документов</name>

View file

@ -163,9 +163,9 @@ public class ODFDocument {
}
public void restoreSettings(Settings settings) {
closeDocument();
close();
restoreFrom(settings);
reOpenDoc();
reopen();
}
public XPropertyContainer getUserDefinedProps(){
@ -284,7 +284,7 @@ public class ODFDocument {
}
public void reOpenDoc(){
public void reopen(){
try {
XComponent doc = loader.loadComponentFromURL(url, "_default", 0, new PropertyValue[0]);
} catch (Exception e) {
@ -293,7 +293,15 @@ public class ODFDocument {
;
}
public void closeDocument() {
public void save() {
if (context != null) {
executedispatch("Save", new PropertyValue[0]);
} else {
logger.debug("Can't save document. No context.");
}
}
public void close() {
if (context != null) {
executedispatch("CloseDoc", new PropertyValue[0]);
} else {
@ -301,7 +309,7 @@ public class ODFDocument {
}
}
public void reloadDocument() {
public void reload() {
if (context != null) {
executedispatch("Reload", new PropertyValue[0]);
} else {

View file

@ -67,6 +67,7 @@ public class BackupPanel extends JPanel {
lst_backups.setSelectionMode(DefaultListSelectionModel.SINGLE_SELECTION);
JLabel lb_backups = new JLabel(Localizer.get("backup_panel_description"));
lb_backups.setHorizontalAlignment(SwingConstants.CENTER);
btn_delete = new JButton(Localizer.get("delete_backup_button"));
btn_create = new JButton(Localizer.get("create_backup_button"));
@ -82,18 +83,18 @@ public class BackupPanel extends JPanel {
groupLayout.createParallelGroup(Alignment.LEADING)
.addGroup(groupLayout.createSequentialGroup()
.addGap(43)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING)
.addComponent(lb_backups, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGroup(groupLayout.createSequentialGroup()
.addComponent(lst_backups, GroupLayout.PREFERRED_SIZE, 354, GroupLayout.PREFERRED_SIZE)
.addGap(26)
.addComponent(lst_backups, GroupLayout.PREFERRED_SIZE, 247, GroupLayout.PREFERRED_SIZE)
.addGap(53)
.addGroup(groupLayout.createParallelGroup(Alignment.LEADING, false)
.addComponent(cb_stick_latest_backup, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_close, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_delete, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, 269, Short.MAX_VALUE)
.addComponent(btn_create, Alignment.TRAILING, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(btn_restore, GroupLayout.DEFAULT_SIZE, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
.addContainerGap(288, Short.MAX_VALUE))
.addGap(39))
);
groupLayout.setVerticalGroup(
groupLayout.createParallelGroup(Alignment.LEADING)
@ -133,8 +134,10 @@ public class BackupPanel extends JPanel {
if (document == null) {
return;
}
document.save();
backups.create(document.getCurrentSettings());
document.writeBackups(backups);
document.save();
populateList();
}
});
@ -152,6 +155,7 @@ public class BackupPanel extends JPanel {
String selected = (String) lst_backups.getSelectedValue();
backups.removeByDateTimeLabel(selected);
document.writeBackups(backups);
document.save();
populateList();
}
});

View file

@ -6,7 +6,7 @@ settings_tab_name = Settings
backups_tab_name = Backups
backup_panel_description = Manage document settings backups
no_timestamp_found_error = No backup dates found
stick_latest_backup_cb_label = Block settings
stick_latest_backup_cb_label = Freeze settings in all documents
no_backup_selected = Select backup and try again
error_document_not_found = Document not found.
error_document_is_not_saved = Document is not saved. Save document before proceeding.

View file

@ -6,7 +6,7 @@ settings_tab_name = Настройки
backups_tab_name = Резервные копии
backup_panel_description = Управление резервными копиями настроек документов
no_timestamp_found_error = Не найдено дат резервных копий
stick_latest_backup_cb_label = Заблокировать изменение настроек
stick_latest_backup_cb_label = Замораживать настройки всех документов
no_backup_selected = Выберите резервную копию и попробуйте снова
error_document_not_found = Ошибка. Документ не найден.
error_document_is_not_saved = Документ не сохранен. Сохраните документ и попробуйте снова.