diff options
author | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:08:06 +0200 |
---|---|---|
committer | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:08:06 +0200 |
commit | fbe76102e941b9f1edaf236788e42678f05fdf9a (patch) | |
tree | f5f538316019fa89be8dc478103490c3a826f3ac /ui/folderPair.h | |
parent | 3.8 (diff) | |
download | FreeFileSync-fbe76102e941b9f1edaf236788e42678f05fdf9a.tar.gz FreeFileSync-fbe76102e941b9f1edaf236788e42678f05fdf9a.tar.bz2 FreeFileSync-fbe76102e941b9f1edaf236788e42678f05fdf9a.zip |
3.9
Diffstat (limited to 'ui/folderPair.h')
-rw-r--r-- | ui/folderPair.h | 206 |
1 files changed, 0 insertions, 206 deletions
diff --git a/ui/folderPair.h b/ui/folderPair.h deleted file mode 100644 index 7a027fba..00000000 --- a/ui/folderPair.h +++ /dev/null @@ -1,206 +0,0 @@ -// ************************************************************************** -// * This file is part of the FreeFileSync project. It is distributed under * -// * GNU General Public License: http://www.gnu.org/licenses/gpl.html * -// * Copyright (C) 2008-2010 ZenJu (zhnmju123 AT gmx.de) * -// ************************************************************************** -// -#ifndef FOLDERPAIR_H_INCLUDED -#define FOLDERPAIR_H_INCLUDED - -#include "../structures.h" -#include "../shared/dragAndDrop.h" -#include "../library/resources.h" -#include "smallDialogs.h" -#include "syncConfig.h" -#include <wx/event.h> -#include "isNullFilter.h" -#include "../shared/util.h" -#include "../shared/stringConv.h" - -namespace FreeFileSync -{ -//basic functionality for handling alternate folder pair configuration: change sync-cfg/filter cfg, right-click context menu, button icons... - -template <class GuiPanel> -class FolderPairPanelBasic : private wxEvtHandler -{ -public: - typedef boost::shared_ptr<const FreeFileSync::AlternateSyncConfig> AltSyncCfgPtr; - - - Zstring getLeftDir() const - { - return wxToZ(basicPanel_.m_directoryLeft->GetValue()); - } - - Zstring getRightDir() const - { - return wxToZ(basicPanel_.m_directoryRight->GetValue()); - } - - AltSyncCfgPtr getAltSyncConfig() const - { - return altSyncConfig; - } - - FilterConfig getAltFilterConfig() const - { - return localFilter; - } - - void setValues(const Zstring& leftDir, - const Zstring& rightDir, - AltSyncCfgPtr syncCfg, - const FilterConfig& filter) - { - altSyncConfig = syncCfg; - localFilter = filter; - - //insert directory names - FreeFileSync::setDirectoryName(zToWx(leftDir), basicPanel_.m_directoryLeft, basicPanel_.m_dirPickerLeft); - FreeFileSync::setDirectoryName(zToWx(rightDir), basicPanel_.m_directoryRight, basicPanel_.m_dirPickerRight); - - refreshButtons(); - } - - - void refreshButtons() - { - if (altSyncConfig.get()) - { - basicPanel_.m_bpButtonAltSyncCfg->SetBitmapLabel(GlobalResources::getInstance().getImageByName(wxT("syncConfigSmall"))); - basicPanel_.m_bpButtonAltSyncCfg->SetToolTip(wxString(_("Select alternate synchronization settings")) + wxT(" ") + globalFunctions::LINE_BREAK + - wxT("(") + getVariantName(altSyncConfig->syncConfiguration) + wxT(")")); - } - else - { - basicPanel_.m_bpButtonAltSyncCfg->SetBitmapLabel(GlobalResources::getInstance().getImageByName(wxT("syncConfigSmallGrey"))); - basicPanel_.m_bpButtonAltSyncCfg->SetToolTip(_("Select alternate synchronization settings")); - } - - //test for Null-filter - if (isNullFilter(localFilter)) - { - basicPanel_.m_bpButtonLocalFilter->SetBitmapLabel(GlobalResources::getInstance().getImageByName(wxT("filterSmallGrey"))); - basicPanel_.m_bpButtonLocalFilter->SetToolTip(_("No filter selected")); - } - else - { - basicPanel_.m_bpButtonLocalFilter->SetBitmapLabel(GlobalResources::getInstance().getImageByName(wxT("filterSmall"))); - basicPanel_.m_bpButtonLocalFilter->SetToolTip(_("Filter is active")); - } - } - -protected: - FolderPairPanelBasic(GuiPanel& basicPanel) : //takes reference on basic panel to be enhanced - basicPanel_(basicPanel) - { - //register events for removal of alternate configuration - basicPanel_.m_bpButtonAltSyncCfg->Connect(wxEVT_RIGHT_DOWN, wxCommandEventHandler(FolderPairPanelBasic::OnAltSyncCfgRemove), NULL, this); - basicPanel_.m_bpButtonLocalFilter->Connect(wxEVT_RIGHT_DOWN, wxCommandEventHandler(FolderPairPanelBasic::OnLocalFilterCfgRemove), NULL, this); - - basicPanel_.m_bpButtonAltSyncCfg-> Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FolderPairPanelBasic::OnAltSyncCfg), NULL, this); - basicPanel_.m_bpButtonLocalFilter->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(FolderPairPanelBasic::OnLocalFilterCfg), NULL, this); - - basicPanel_.m_bpButtonRemovePair->SetBitmapLabel(GlobalResources::getInstance().getImageByName(wxT("removeFolderPair"))); - } - - virtual void OnLocalFilterCfgRemoveConfirm(wxCommandEvent& event) - { - localFilter = FilterConfig(); - refreshButtons(); - } - - virtual void OnAltSyncCfgRemoveConfirm(wxCommandEvent& event) - { - altSyncConfig.reset(); - refreshButtons(); - } - - -private: - void OnLocalFilterCfgRemove(wxCommandEvent& event) - { - const int menuId = 1234; - contextMenu.reset(new wxMenu); //re-create context menu - contextMenu->Append(menuId, _("Clear filter settings")); - contextMenu->Connect(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(FolderPairPanelBasic::OnLocalFilterCfgRemoveConfirm), NULL, this); - - if (NameFilter(localFilter.includeFilter, localFilter.excludeFilter).isNull()) - contextMenu->Enable(menuId, false); //disable menu item, if clicking wouldn't make sense anyway - - basicPanel_.PopupMenu(contextMenu.get()); //show context menu - } - - void OnAltSyncCfgRemove(wxCommandEvent& event) - { - const int menuId = 1234; - contextMenu.reset(new wxMenu); //re-create context menu - contextMenu->Append(menuId, _("Remove alternate settings")); - contextMenu->Connect(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(FolderPairPanelBasic::OnAltSyncCfgRemoveConfirm), NULL, this); - - if (!altSyncConfig.get()) - contextMenu->Enable(menuId, false); //disable menu item, if clicking wouldn't make sense anyway - - basicPanel_.PopupMenu(contextMenu.get()); //show context menu - } - - virtual MainConfiguration getMainConfig() const = 0; - virtual wxWindow* getParentWindow() = 0; - - virtual void OnAltSyncCfgChange() {}; - - void OnAltSyncCfg(wxCommandEvent& event) - { - const MainConfiguration mainCfg = getMainConfig(); - const AlternateSyncConfig syncConfigMain(mainCfg.syncConfiguration, - mainCfg.handleDeletion, - mainCfg.customDeletionDirectory); - - AlternateSyncConfig altSyncCfg = altSyncConfig.get() ? *altSyncConfig : syncConfigMain; - SyncCfgDialog* syncDlg = new SyncCfgDialog(getParentWindow(), - mainCfg.compareVar, - altSyncCfg.syncConfiguration, - altSyncCfg.handleDeletion, - altSyncCfg.customDeletionDirectory, - NULL); - if (syncDlg->ShowModal() == SyncCfgDialog::BUTTON_APPLY) - { - altSyncConfig.reset(new AlternateSyncConfig(altSyncCfg)); - refreshButtons(); - - OnAltSyncCfgChange(); - } - } - - virtual void OnLocalFilterCfgChange() {}; - - void OnLocalFilterCfg(wxCommandEvent& event) - { - FilterConfig localFiltTmp = localFilter; - - if (showFilterDialog(false, //is local filter dialog - localFiltTmp.includeFilter, - localFiltTmp.excludeFilter) == DefaultReturnCode::BUTTON_OKAY) - { - localFilter = localFiltTmp; - refreshButtons(); - - OnLocalFilterCfgChange(); - } - } - - GuiPanel& basicPanel_; //panel to be enhanced by this template - - //alternate configuration attached to it - AltSyncCfgPtr altSyncConfig; //optional: present if non-NULL - FilterConfig localFilter; - - std::auto_ptr<wxMenu> contextMenu; -}; -} - - -#endif // FOLDERPAIR_H_INCLUDED - - |