summaryrefslogtreecommitdiff
path: root/ui/SyncDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ui/SyncDialog.cpp')
-rw-r--r--ui/SyncDialog.cpp466
1 files changed, 386 insertions, 80 deletions
diff --git a/ui/SyncDialog.cpp b/ui/SyncDialog.cpp
index b97badf8..c138544e 100644
--- a/ui/SyncDialog.cpp
+++ b/ui/SyncDialog.cpp
@@ -1,25 +1,44 @@
#include "syncDialog.h"
#include "../library/globalFunctions.h"
-
-SyncDialog::SyncDialog(MainDialog* window)
- : SyncDialogGenerated(window), mainDialog(window)
+#include "../library/resources.h"
+#include <wx/msgdlg.h>
+#include <wx/file.h>
+#include <wx/stdpaths.h>
+
+SyncDialog::SyncDialog(wxWindow* window,
+ const FileCompareResult& gridDataRef,
+ Configuration& config,
+ bool synchronizationEnabled) :
+ SyncDlgGenerated(window),
+ gridData(gridDataRef),
+ cfg(config)
{
- //make working copy of mainDialog->syncConfiguration and recycler setting
- localSyncConfiguration = mainDialog->syncConfiguration;
+ //make working copy of mainDialog.cfg.syncConfiguration and recycler setting
+ localSyncConfiguration = config.syncConfiguration;
+ m_checkBoxUseRecycler->SetValue(cfg.useRecycleBin);
+ m_checkBoxContinueError->SetValue(cfg.continueOnError);
- m_checkBoxUseRecycler->SetValue(mainDialog->useRecycleBin);
- m_checkBoxHideErrors->SetValue(mainDialog->hideErrorMessages);
+ //set sync config icons
+ updateConfigIcons(m_bpButton5, m_bpButton6, m_bpButton7, m_bpButton8, m_bpButton9, localSyncConfiguration);
+ //update preview
+ calculatePreview();
//set icons for this dialog
m_bpButton18->SetBitmapLabel(*GlobalResources::bitmapStartSync);
+ m_bpButton18->SetBitmapDisabled(*GlobalResources::bitmapStartSyncDis);
m_bitmap13->SetBitmap(*GlobalResources::bitmapLeftOnlyDeact);
m_bitmap14->SetBitmap(*GlobalResources::bitmapRightOnlyDeact);
m_bitmap15->SetBitmap(*GlobalResources::bitmapLeftNewerDeact);
m_bitmap16->SetBitmap(*GlobalResources::bitmapRightNewerDeact);
m_bitmap17->SetBitmap(*GlobalResources::bitmapDifferentDeact);
- //set sync config icons
- updateConfigIcons();
+ if (synchronizationEnabled)
+ m_bpButton18->Enable();
+ else
+ {
+ m_bpButton18->Disable();
+ m_button6->SetFocus();
+ }
//set radiobutton
if (localSyncConfiguration.exLeftSideOnly == syncDirRight &&
@@ -47,99 +66,122 @@ SyncDialog::SyncDialog(MainDialog* window)
SyncDialog::~SyncDialog() {}
-void SyncDialog::updateConfigIcons()
+void SyncDialog::updateConfigIcons(wxBitmapButton* button1,
+ wxBitmapButton* button2,
+ wxBitmapButton* button3,
+ wxBitmapButton* button4,
+ wxBitmapButton* button5,
+ const SyncConfiguration& syncConfig)
{
- if (localSyncConfiguration.exLeftSideOnly == syncDirRight)
+ if (syncConfig.exLeftSideOnly == syncDirRight)
{
- m_bpButton5->SetBitmapLabel(*GlobalResources::bitmapRightArrow);
- m_bpButton5->SetToolTip(_("Copy from left to right"));
+ button1->SetBitmapLabel(*GlobalResources::bitmapRightArrow);
+ button1->SetToolTip(_("Copy from left to right"));
}
- else if (localSyncConfiguration.exLeftSideOnly == syncDirLeft)
+ else if (syncConfig.exLeftSideOnly == syncDirLeft)
{
- m_bpButton5->SetBitmapLabel(*GlobalResources::bitmapDelete);
- m_bpButton5->SetToolTip(_("Delete files existing on left side only"));
+ button1->SetBitmapLabel(*GlobalResources::bitmapDelete);
+ button1->SetToolTip(_("Delete files/folders existing on left side only"));
}
- else if (localSyncConfiguration.exLeftSideOnly == syncDirNone)
+ else if (syncConfig.exLeftSideOnly == syncDirNone)
{
- m_bpButton5->SetBitmapLabel(wxNullBitmap);
- m_bpButton5->SetToolTip(_("Do nothing"));
+ button1->SetBitmapLabel(*GlobalResources::bitmapNoArrow);
+ button1->SetToolTip(_("Do nothing"));
}
- if (localSyncConfiguration.exRightSideOnly == syncDirRight)
+ if (syncConfig.exRightSideOnly == syncDirRight)
{
- m_bpButton6->SetBitmapLabel(*GlobalResources::bitmapDelete);
- m_bpButton6->SetToolTip(_("Delete files existing on right side only"));
+ button2->SetBitmapLabel(*GlobalResources::bitmapDelete);
+ button2->SetToolTip(_("Delete files/folders existing on right side only"));
}
- else if (localSyncConfiguration.exRightSideOnly == syncDirLeft)
+ else if (syncConfig.exRightSideOnly == syncDirLeft)
{
- m_bpButton6->SetBitmapLabel(*GlobalResources::bitmapLeftArrow);
- m_bpButton6->SetToolTip(_("Copy from right to left"));
+ button2->SetBitmapLabel(*GlobalResources::bitmapLeftArrow);
+ button2->SetToolTip(_("Copy from right to left"));
}
- else if (localSyncConfiguration.exRightSideOnly == syncDirNone)
+ else if (syncConfig.exRightSideOnly == syncDirNone)
{
- m_bpButton6->SetBitmapLabel(wxNullBitmap);
- m_bpButton6->SetToolTip(_("Do nothing"));
+ button2->SetBitmapLabel(*GlobalResources::bitmapNoArrow);
+ button2->SetToolTip(_("Do nothing"));
}
- if (localSyncConfiguration.leftNewer == syncDirRight)
+ if (syncConfig.leftNewer == syncDirRight)
{
- m_bpButton7->SetBitmapLabel(*GlobalResources::bitmapRightArrow);
- m_bpButton7->SetToolTip(_("Copy from left to right overwriting"));
+ button3->SetBitmapLabel(*GlobalResources::bitmapRightArrow);
+ button3->SetToolTip(_("Copy from left to right overwriting"));
}
- else if (localSyncConfiguration.leftNewer == syncDirLeft)
+ else if (syncConfig.leftNewer == syncDirLeft)
{
- m_bpButton7->SetBitmapLabel(*GlobalResources::bitmapLeftArrow);
- m_bpButton7->SetToolTip(_("Copy from right to left overwriting"));
+ button3->SetBitmapLabel(*GlobalResources::bitmapLeftArrow);
+ button3->SetToolTip(_("Copy from right to left overwriting"));
}
- else if (localSyncConfiguration.leftNewer == syncDirNone)
+ else if (syncConfig.leftNewer == syncDirNone)
{
- m_bpButton7->SetBitmapLabel(wxNullBitmap);
- m_bpButton7->SetToolTip(_("Do nothing"));
+ button3->SetBitmapLabel(*GlobalResources::bitmapNoArrow);
+ button3->SetToolTip(_("Do nothing"));
}
- if (localSyncConfiguration.rightNewer == syncDirRight)
+ if (syncConfig.rightNewer == syncDirRight)
{
- m_bpButton8->SetBitmapLabel(*GlobalResources::bitmapRightArrow);
- m_bpButton8->SetToolTip(_("Copy from left to right overwriting"));
+ button4->SetBitmapLabel(*GlobalResources::bitmapRightArrow);
+ button4->SetToolTip(_("Copy from left to right overwriting"));
}
- else if (localSyncConfiguration.rightNewer == syncDirLeft)
+ else if (syncConfig.rightNewer == syncDirLeft)
{
- m_bpButton8->SetBitmapLabel(*GlobalResources::bitmapLeftArrow);
- m_bpButton8->SetToolTip(_("Copy from right to left overwriting"));
+ button4->SetBitmapLabel(*GlobalResources::bitmapLeftArrow);
+ button4->SetToolTip(_("Copy from right to left overwriting"));
}
- else if (localSyncConfiguration.rightNewer == syncDirNone)
+ else if (syncConfig.rightNewer == syncDirNone)
{
- m_bpButton8->SetBitmapLabel(wxNullBitmap);
- m_bpButton8->SetToolTip(_("Do nothing"));
+ button4->SetBitmapLabel(*GlobalResources::bitmapNoArrow);
+ button4->SetToolTip(_("Do nothing"));
}
- if (localSyncConfiguration.different == syncDirRight)
+ if (syncConfig.different == syncDirRight)
{
- m_bpButton9->SetBitmapLabel(*GlobalResources::bitmapRightArrow);
- m_bpButton9->SetToolTip(_("Copy from left to right overwriting"));
+ button5->SetBitmapLabel(*GlobalResources::bitmapRightArrow);
+ button5->SetToolTip(_("Copy from left to right overwriting"));
}
- else if (localSyncConfiguration.different == syncDirLeft)
+ else if (syncConfig.different == syncDirLeft)
{
- m_bpButton9->SetBitmapLabel(*GlobalResources::bitmapLeftArrow);
- m_bpButton9->SetToolTip(_("Copy from right to left overwriting"));
+ button5->SetBitmapLabel(*GlobalResources::bitmapLeftArrow);
+ button5->SetToolTip(_("Copy from right to left overwriting"));
}
- else if (localSyncConfiguration.different == syncDirNone)
+ else if (syncConfig.different == syncDirNone)
{
- m_bpButton9->SetBitmapLabel(wxNullBitmap);
- m_bpButton9->SetToolTip(_("Do nothing"));
+ button5->SetBitmapLabel(*GlobalResources::bitmapNoArrow);
+ button5->SetToolTip(_("Do nothing"));
}
+}
- //update preview of bytes to be transferred:
- int objectsTotal = 0;
- double dataTotal = 0;
- FreeFileSync::calcTotalBytesToSync(objectsTotal, dataTotal, mainDialog->currentGridData, localSyncConfiguration);
-
- wxString objects = globalFunctions::numberToWxString(objectsTotal);
- globalFunctions::includeNumberSeparator(objects);
- wxString data = FreeFileSync::formatFilesizeToShortString(dataTotal);
- m_textCtrl12->SetValue(objects);
- m_textCtrl5->SetValue(data);
+void SyncDialog::calculatePreview()
+{
+ //update preview of bytes to be transferred:
+ int objectsToCreate = 0;
+ int objectsToOverwrite = 0;
+ int objectsToDelete = 0;
+ double dataToProcess = 0;
+ FreeFileSync::calcTotalBytesToSync(objectsToCreate,
+ objectsToOverwrite,
+ objectsToDelete,
+ dataToProcess,
+ gridData,
+ localSyncConfiguration);
+
+ wxString toCreate = globalFunctions::numberToWxString(objectsToCreate);
+ wxString toUpdate = globalFunctions::numberToWxString(objectsToOverwrite);
+ wxString toDelete = globalFunctions::numberToWxString(objectsToDelete);
+ wxString data = FreeFileSync::formatFilesizeToShortString(dataToProcess);
+
+ globalFunctions::includeNumberSeparator(toCreate);
+ globalFunctions::includeNumberSeparator(toUpdate);
+ globalFunctions::includeNumberSeparator(toDelete);
+
+ m_textCtrlCreate->SetValue(toCreate);
+ m_textCtrlUpdate->SetValue(toUpdate);
+ m_textCtrlDelete->SetValue(toDelete);
+ m_textCtrlData->SetValue(data);
}
@@ -158,9 +200,9 @@ void SyncDialog::OnCancel(wxCommandEvent& event)
void SyncDialog::OnBack(wxCommandEvent& event)
{
//write configuration to main dialog
- mainDialog->syncConfiguration = localSyncConfiguration;
- mainDialog->useRecycleBin = m_checkBoxUseRecycler->GetValue();
- mainDialog->hideErrorMessages = m_checkBoxHideErrors->GetValue();
+ cfg.syncConfiguration = localSyncConfiguration;
+ cfg.useRecycleBin = m_checkBoxUseRecycler->GetValue();
+ cfg.continueOnError = m_checkBoxContinueError->GetValue();
EndModal(0);
}
@@ -168,9 +210,9 @@ void SyncDialog::OnBack(wxCommandEvent& event)
void SyncDialog::OnStartSync(wxCommandEvent& event)
{
//write configuration to main dialog
- mainDialog->syncConfiguration = localSyncConfiguration;
- mainDialog->useRecycleBin = m_checkBoxUseRecycler->GetValue();
- mainDialog->hideErrorMessages = m_checkBoxHideErrors->GetValue();
+ cfg.syncConfiguration = localSyncConfiguration;
+ cfg.useRecycleBin = m_checkBoxUseRecycler->GetValue();
+ cfg.continueOnError = m_checkBoxContinueError->GetValue();
EndModal(StartSynchronizationProcess);
}
@@ -189,7 +231,7 @@ void SyncDialog::OnSelectRecycleBin(wxCommandEvent& event)
}
-void SyncDialog::OnSyncLeftToRight( wxCommandEvent& event )
+void SyncDialog::OnSyncLeftToRight(wxCommandEvent& event)
{
localSyncConfiguration.exLeftSideOnly = syncDirRight;
localSyncConfiguration.exRightSideOnly = syncDirRight;
@@ -197,14 +239,15 @@ void SyncDialog::OnSyncLeftToRight( wxCommandEvent& event )
localSyncConfiguration.rightNewer = syncDirRight;
localSyncConfiguration.different = syncDirRight;
- updateConfigIcons();
+ updateConfigIcons(m_bpButton5, m_bpButton6, m_bpButton7, m_bpButton8, m_bpButton9, localSyncConfiguration);
+ calculatePreview();
//if event is triggered by button
m_radioBtn1->SetValue(true);
}
-void SyncDialog::OnSyncBothSides( wxCommandEvent& event )
+void SyncDialog::OnSyncBothSides(wxCommandEvent& event)
{
localSyncConfiguration.exLeftSideOnly = syncDirRight;
localSyncConfiguration.exRightSideOnly = syncDirLeft;
@@ -212,7 +255,9 @@ void SyncDialog::OnSyncBothSides( wxCommandEvent& event )
localSyncConfiguration.rightNewer = syncDirLeft;
localSyncConfiguration.different = syncDirNone;
- updateConfigIcons();
+ updateConfigIcons(m_bpButton5, m_bpButton6, m_bpButton7, m_bpButton8, m_bpButton9, localSyncConfiguration);
+ calculatePreview();
+
//if event is triggered by button
m_radioBtn2->SetValue(true);
}
@@ -233,7 +278,8 @@ void toggleSyncDirection(SyncDirection& current)
void SyncDialog::OnExLeftSideOnly( wxCommandEvent& event )
{
toggleSyncDirection(localSyncConfiguration.exLeftSideOnly);
- updateConfigIcons();
+ updateConfigIcons(m_bpButton5, m_bpButton6, m_bpButton7, m_bpButton8, m_bpButton9, localSyncConfiguration);
+ calculatePreview();
//set custom config button
m_radioBtn3->SetValue(true);
}
@@ -241,7 +287,8 @@ void SyncDialog::OnExLeftSideOnly( wxCommandEvent& event )
void SyncDialog::OnExRightSideOnly( wxCommandEvent& event )
{
toggleSyncDirection(localSyncConfiguration.exRightSideOnly);
- updateConfigIcons();
+ updateConfigIcons(m_bpButton5, m_bpButton6, m_bpButton7, m_bpButton8, m_bpButton9, localSyncConfiguration);
+ calculatePreview();
//set custom config button
m_radioBtn3->SetValue(true);
}
@@ -249,7 +296,8 @@ void SyncDialog::OnExRightSideOnly( wxCommandEvent& event )
void SyncDialog::OnLeftNewer( wxCommandEvent& event )
{
toggleSyncDirection(localSyncConfiguration.leftNewer);
- updateConfigIcons();
+ updateConfigIcons(m_bpButton5, m_bpButton6, m_bpButton7, m_bpButton8, m_bpButton9, localSyncConfiguration);
+ calculatePreview();
//set custom config button
m_radioBtn3->SetValue(true);
}
@@ -257,7 +305,8 @@ void SyncDialog::OnLeftNewer( wxCommandEvent& event )
void SyncDialog::OnRightNewer( wxCommandEvent& event )
{
toggleSyncDirection(localSyncConfiguration.rightNewer);
- updateConfigIcons();
+ updateConfigIcons(m_bpButton5, m_bpButton6, m_bpButton7, m_bpButton8, m_bpButton9, localSyncConfiguration);
+ calculatePreview();
//set custom config button
m_radioBtn3->SetValue(true);
}
@@ -265,7 +314,264 @@ void SyncDialog::OnRightNewer( wxCommandEvent& event )
void SyncDialog::OnDifferent( wxCommandEvent& event )
{
toggleSyncDirection(localSyncConfiguration.different);
- updateConfigIcons();
+ updateConfigIcons(m_bpButton5, m_bpButton6, m_bpButton7, m_bpButton8, m_bpButton9, localSyncConfiguration);
+ calculatePreview();
//set custom config button
m_radioBtn3->SetValue(true);
}
+
+//###################################################################################################################################
+
+
+BatchDialog::BatchDialog(wxWindow* window,
+ const Configuration& config,
+ const wxString& leftDir,
+ const wxString& rightDir) :
+ BatchDlgGenerated(window)
+{
+ //make working copy of mainDialog.cfg.syncConfiguration and recycler setting
+ localSyncConfiguration = config.syncConfiguration;
+ SyncDialog::updateConfigIcons(m_bpButton5, m_bpButton6, m_bpButton7, m_bpButton8, m_bpButton9, localSyncConfiguration);
+
+ m_checkBoxUseRecycler->SetValue(config.useRecycleBin);
+ m_checkBoxContinueError->SetValue(config.continueOnError);
+
+ switch (config.compareVar)
+ {
+ case compareByTimeAndSize:
+ m_radioBtnSizeDate->SetValue(true);
+ break;
+ case compareByContent:
+ m_radioBtnContent->SetValue(true);
+ break;
+ default:
+ assert (false);
+ }
+
+ filterIsActive = config.filterIsActive;
+ updateFilterButton();
+
+ m_textCtrlInclude->SetValue(config.includeFilter);
+ m_textCtrlExclude->SetValue(config.excludeFilter);
+
+ m_directoryPanel1->SetValue(leftDir);
+ m_directoryPanel2->SetValue(rightDir);
+
+ //set icons for this dialog
+ m_bitmap13->SetBitmap(*GlobalResources::bitmapLeftOnlyDeact);
+ m_bitmap14->SetBitmap(*GlobalResources::bitmapRightOnlyDeact);
+ m_bitmap15->SetBitmap(*GlobalResources::bitmapLeftNewerDeact);
+ m_bitmap16->SetBitmap(*GlobalResources::bitmapRightNewerDeact);
+ m_bitmap17->SetBitmap(*GlobalResources::bitmapDifferentDeact);
+ m_bitmap8->SetBitmap(*GlobalResources::bitmapInclude);
+ m_bitmap9->SetBitmap(*GlobalResources::bitmapExclude);
+
+ m_buttonCreate->SetFocus();
+}
+
+BatchDialog::~BatchDialog()
+{}
+
+
+void BatchDialog::updateFilterButton()
+{
+ if (filterIsActive)
+ {
+ m_bpButtonFilter->SetBitmapLabel(*GlobalResources::bitmapFilterOn);
+ m_bpButtonFilter->SetToolTip(_("Filter active: Press again to deactivate"));
+
+ m_textCtrlInclude->Enable();
+ m_textCtrlExclude->Enable();
+ }
+ else
+ {
+ m_bpButtonFilter->SetBitmapLabel(*GlobalResources::bitmapFilterOff);
+ m_bpButtonFilter->SetToolTip(_("Press button to activate filter"));
+
+ m_textCtrlInclude->Disable();
+ m_textCtrlExclude->Disable();
+ }
+}
+
+
+void BatchDialog::OnExLeftSideOnly(wxCommandEvent& event)
+{
+ toggleSyncDirection(localSyncConfiguration.exLeftSideOnly);
+ SyncDialog::updateConfigIcons(m_bpButton5, m_bpButton6, m_bpButton7, m_bpButton8, m_bpButton9, localSyncConfiguration);
+}
+
+void BatchDialog::OnExRightSideOnly(wxCommandEvent& event)
+{
+ toggleSyncDirection(localSyncConfiguration.exRightSideOnly);
+ SyncDialog::updateConfigIcons(m_bpButton5, m_bpButton6, m_bpButton7, m_bpButton8, m_bpButton9, localSyncConfiguration);
+}
+
+void BatchDialog::OnLeftNewer(wxCommandEvent& event)
+{
+ toggleSyncDirection(localSyncConfiguration.leftNewer);
+ SyncDialog::updateConfigIcons(m_bpButton5, m_bpButton6, m_bpButton7, m_bpButton8, m_bpButton9, localSyncConfiguration);
+}
+
+void BatchDialog::OnRightNewer(wxCommandEvent& event)
+{
+ toggleSyncDirection(localSyncConfiguration.rightNewer);
+ SyncDialog::updateConfigIcons(m_bpButton5, m_bpButton6, m_bpButton7, m_bpButton8, m_bpButton9, localSyncConfiguration);
+}
+
+void BatchDialog::OnDifferent(wxCommandEvent& event)
+{
+ toggleSyncDirection(localSyncConfiguration.different);
+ SyncDialog::updateConfigIcons(m_bpButton5, m_bpButton6, m_bpButton7, m_bpButton8, m_bpButton9, localSyncConfiguration);
+}
+
+
+void BatchDialog::OnFilterButton(wxCommandEvent& event)
+{
+ filterIsActive = !filterIsActive;
+ updateFilterButton();
+}
+
+
+void BatchDialog::OnSelectRecycleBin(wxCommandEvent& event)
+{
+ if (event.IsChecked())
+ {
+ if (!FreeFileSync::recycleBinExists())
+ {
+ wxMessageBox(_("It was not possible to gain access to Recycle Bin!\n\nIt's likely that you are not using Windows XP. (Probably Vista)\nIf you want this feature included, please contact the author. :)"), _("Error") , wxOK | wxICON_ERROR);
+ m_checkBoxUseRecycler->SetValue(false);
+ }
+ }
+}
+
+
+void BatchDialog::OnClose(wxCloseEvent& event)
+{
+ EndModal(0);
+}
+
+
+void BatchDialog::OnCancel(wxCommandEvent& event)
+{
+ EndModal(0);
+}
+
+
+void BatchDialog::OnCreateJob(wxCommandEvent& event)
+{
+ //get a filename
+#ifdef FFS_WIN
+ wxString fileName = "SyncJob.cmd"; //proposal
+ wxFileDialog* filePicker = new wxFileDialog(this, "", "", fileName, wxString(_("Command file")) + " (*.cmd)|*.cmd", wxFD_SAVE);
+#elif defined FFS_LINUX
+ wxString fileName = "SyncJob.sh"; //proposal
+ wxFileDialog* filePicker = new wxFileDialog(this, "", "", fileName, wxString(_("Shell script")) + " (*.sh)|*.sh", wxFD_SAVE);
+#else
+ assert(false);
+#endif
+
+ if (filePicker->ShowModal() == wxID_OK)
+ {
+ fileName = filePicker->GetPath();
+ if (wxFileExists(fileName))
+ {
+ wxMessageDialog* messageDlg = new wxMessageDialog(this, wxString("\"") + fileName + "\"" + _(" already exists. Overwrite?"), _("Warning") , wxOK | wxCANCEL);
+
+ if (messageDlg->ShowModal() != wxID_OK)
+ {
+ event.Skip();
+ return;
+ }
+ }
+
+ //assemble command line parameters
+ wxString outputString = parseConfiguration();
+
+ //write export file
+ wxFile output(fileName, wxFile::write);
+ if (output.IsOpened())
+ {
+ output.Write(outputString);
+ EndModal(batchFileCreated);
+ }
+ else
+ wxMessageBox(wxString(_("Could not write to ")) + "\"" + fileName + "\"", _("An exception occured!"), wxOK | wxICON_ERROR);
+ }
+
+#ifdef FFS_LINUX
+ //for linux the batch file needs the executable flag
+ wxExecute(wxString("chmod +x ") + fileName);
+#endif // FFS_LINUX
+
+ event.Skip();
+}
+
+
+wxString getFormattedSyncDirection(const SyncDirection direction)
+{
+ if (direction == syncDirRight)
+ return 'R';
+ else if (direction == syncDirLeft)
+ return 'L';
+ else if (direction == syncDirNone)
+ return 'N';
+ else
+ {
+ assert (false);
+ return wxEmptyString;
+ }
+}
+
+
+wxString BatchDialog::parseConfiguration()
+{
+ wxString output;
+
+#ifdef FFS_LINUX
+ //shell script identifier
+ output+= "#!/bin/bash\n";
+#endif
+
+ output+= "\"" + wxStandardPaths::Get().GetExecutablePath() + "\"";
+
+ output+= wxString(" -") + GlobalResources::paramCompare + " ";
+ if (m_radioBtnSizeDate->GetValue())
+ output+= GlobalResources::valueSizeDate;
+ else if (m_radioBtnContent->GetValue())
+ output+= GlobalResources::valueContent;
+ else
+ assert(false);
+
+ output+= wxString(" -") + GlobalResources::paramCfg + " " +
+ getFormattedSyncDirection(localSyncConfiguration.exLeftSideOnly) +
+ getFormattedSyncDirection(localSyncConfiguration.exRightSideOnly) +
+ getFormattedSyncDirection(localSyncConfiguration.leftNewer) +
+ getFormattedSyncDirection(localSyncConfiguration.rightNewer) +
+ getFormattedSyncDirection(localSyncConfiguration.different);
+
+ if (filterIsActive)
+ {
+ output+= wxString(" -") + GlobalResources::paramInclude + " " +
+ "\"" + m_textCtrlInclude->GetValue() + "\"";
+
+ output+= wxString(" -") + GlobalResources::paramExclude + " " +
+ "\"" + m_textCtrlExclude->GetValue() + "\"";
+ }
+
+ if (m_checkBoxUseRecycler->GetValue())
+ output+= wxString(" -") + GlobalResources::paramRecycler;
+
+ if (m_checkBoxContinueError->GetValue())
+ output+= wxString(" -") + GlobalResources::paramContinueError;
+
+ if (m_checkBoxSilent->GetValue())
+ output+= wxString(" -") + GlobalResources::paramSilent;
+
+ output+= wxString(" ") + "\"" + m_directoryPanel1->GetValue() + "\"";
+ output+= wxString(" ") + "\"" + m_directoryPanel2->GetValue() + "\"";
+
+ output+= "\n";
+
+ return output;
+}
+
bgstack15