summaryrefslogtreecommitdiff
path: root/ui/gridView.h
diff options
context:
space:
mode:
authorDaniel Wilhelm <daniel@wili.li>2014-04-18 17:01:29 +0200
committerDaniel Wilhelm <daniel@wili.li>2014-04-18 17:01:29 +0200
commit9a2a524f1e311853d08050be2dcdddc09ac7759a (patch)
treed8e4a24169fce88c2d89931d58514889a0bcb0ea /ui/gridView.h
parent2.3 (diff)
downloadFreeFileSync-9a2a524f1e311853d08050be2dcdddc09ac7759a.tar.gz
FreeFileSync-9a2a524f1e311853d08050be2dcdddc09ac7759a.tar.bz2
FreeFileSync-9a2a524f1e311853d08050be2dcdddc09ac7759a.zip
3.0
Diffstat (limited to 'ui/gridView.h')
-rw-r--r--ui/gridView.h370
1 files changed, 185 insertions, 185 deletions
diff --git a/ui/gridView.h b/ui/gridView.h
index c7728b06..de9b1caa 100644
--- a/ui/gridView.h
+++ b/ui/gridView.h
@@ -6,155 +6,155 @@
namespace FreeFileSync
{
- //gui view of FolderComparison
- class GridView
+//gui view of FolderComparison
+class GridView
+{
+public:
+ //direct data access via row number
+ const FileSystemObject* getObject(unsigned int row) const; //returns NULL if object is not found; logarithmic complexity
+ FileSystemObject* getObject(unsigned int row); //
+ unsigned int rowsOnView() const; //only the currently visible elements
+ unsigned int rowsTotal() const; //total number of rows available
+
+ //get references to FileSystemObject: no NULL-check needed! Everything's bound.
+ void getAllFileRef(const std::set<unsigned int>& guiRows, std::vector<FileSystemObject*>& output);
+
+ struct StatusCmpResult
{
- public:
- //direct data access via row number
- const FileSystemObject* getObject(unsigned int row) const; //returns NULL if object is not found; logarithmic complexity
- FileSystemObject* getObject(unsigned int row); //
- unsigned int rowsOnView() const; //only the currently visible elements
- unsigned int rowsTotal() const; //total number of rows available
-
- //get references to FileSystemObject: no NULL-check needed! Everything's bound.
- void getAllFileRef(const std::set<unsigned int>& guiRows, std::vector<FileSystemObject*>& output);
-
- struct StatusCmpResult
- {
- StatusCmpResult();
-
- bool existsLeftOnly;
- bool existsRightOnly;
- bool existsLeftNewer;
- bool existsRightNewer;
- bool existsDifferent;
- bool existsEqual;
- bool existsConflict;
-
- unsigned int filesOnLeftView;
- unsigned int foldersOnLeftView;
- unsigned int filesOnRightView;
- unsigned int foldersOnRightView;
-
- wxULongLong filesizeLeftView;
- wxULongLong filesizeRightView;
- };
-
- //comparison results view
- StatusCmpResult updateCmpResult(bool hideFiltered,
- bool leftOnlyFilesActive,
- bool rightOnlyFilesActive,
- bool leftNewerFilesActive,
- bool rightNewerFilesActive,
- bool differentFilesActive,
- bool equalFilesActive,
+ StatusCmpResult();
+
+ bool existsLeftOnly;
+ bool existsRightOnly;
+ bool existsLeftNewer;
+ bool existsRightNewer;
+ bool existsDifferent;
+ bool existsEqual;
+ bool existsConflict;
+
+ unsigned int filesOnLeftView;
+ unsigned int foldersOnLeftView;
+ unsigned int filesOnRightView;
+ unsigned int foldersOnRightView;
+
+ wxULongLong filesizeLeftView;
+ wxULongLong filesizeRightView;
+ };
+
+ //comparison results view
+ StatusCmpResult updateCmpResult(bool hideFiltered,
+ bool leftOnlyFilesActive,
+ bool rightOnlyFilesActive,
+ bool leftNewerFilesActive,
+ bool rightNewerFilesActive,
+ bool differentFilesActive,
+ bool equalFilesActive,
+ bool conflictFilesActive);
+
+ struct StatusSyncPreview
+ {
+ StatusSyncPreview();
+
+ bool existsSyncCreateLeft;
+ bool existsSyncCreateRight;
+ bool existsSyncDeleteLeft;
+ bool existsSyncDeleteRight;
+ bool existsSyncDirLeft;
+ bool existsSyncDirRight;
+ bool existsSyncDirNone;
+ bool existsConflict;
+
+ unsigned int filesOnLeftView;
+ unsigned int foldersOnLeftView;
+ unsigned int filesOnRightView;
+ unsigned int foldersOnRightView;
+
+ wxULongLong filesizeLeftView;
+ wxULongLong filesizeRightView;
+ };
+
+ //synchronization preview
+ StatusSyncPreview updateSyncPreview(bool hideFiltered,
+ bool syncCreateLeftActive,
+ bool syncCreateRightActive,
+ bool syncDeleteLeftActive,
+ bool syncDeleteRightActive,
+ bool syncDirOverwLeftActive,
+ bool syncDirOverwRightActive,
+ bool syncDirNoneActive,
bool conflictFilesActive);
- struct StatusSyncPreview
- {
- StatusSyncPreview();
-
- bool existsSyncCreateLeft;
- bool existsSyncCreateRight;
- bool existsSyncDeleteLeft;
- bool existsSyncDeleteRight;
- bool existsSyncDirLeft;
- bool existsSyncDirRight;
- bool existsSyncDirNone;
- bool existsConflict;
-
- unsigned int filesOnLeftView;
- unsigned int foldersOnLeftView;
- unsigned int filesOnRightView;
- unsigned int foldersOnRightView;
-
- wxULongLong filesizeLeftView;
- wxULongLong filesizeRightView;
- };
-
- //synchronization preview
- StatusSyncPreview updateSyncPreview(bool hideFiltered,
- bool syncCreateLeftActive,
- bool syncCreateRightActive,
- bool syncDeleteLeftActive,
- bool syncDeleteRightActive,
- bool syncDirOverwLeftActive,
- bool syncDirOverwRightActive,
- bool syncDirNoneActive,
- bool conflictFilesActive);
-
-
-
- FolderComparison& getDataTentative(); //get data for operation that does NOT add or reorder rows! (deletion is okay)
- void setData(FolderComparison& newData); //set data, taking ownership: warning std::swap() is used!!!
- void removeInvalidRows(); //remove rows that have been deleted meanwhile: call after manual deletion and synchronization!
- void clearAllRows(); //clears everything
-
- //sorting...
- enum SortType
- {
- SORT_BY_REL_NAME,
- SORT_BY_FILENAME,
- SORT_BY_FILESIZE,
- SORT_BY_DATE,
- SORT_BY_CMP_RESULT,
- SORT_BY_DIRECTORY,
- SORT_BY_SYNC_DIRECTION
- };
-
- void sortView(const SortType type, const bool onLeft, const bool ascending); //always call this method for sorting, never sort externally!
-
- private:
- class SerializeHierarchy;
-
- struct RefIndex
- {
- RefIndex(unsigned int folderInd, FileSystemObject::ObjectID id) :
- folderIndex(folderInd),
- objId(id) {}
- unsigned int folderIndex;
- FileSystemObject::ObjectID objId;
- };
-
- FileSystemObject* getReferencedRow(const RefIndex ref); //returns NULL if not found
- const FileSystemObject* getReferencedRow(const RefIndex ref) const; //returns NULL if not found
- bool isInvalidRow(const RefIndex& ref) const;
-
-
- std::vector<RefIndex> viewRef; //partial view on sortedRef
- // |
- // | (update...)
- // \|/
- std::vector<RefIndex> sortedRef; //equivalent to folerCmp, but may be sorted
- // |
- // | (setData)
- // \|/
- FolderComparison folderCmp; //actual comparison data: owned by GridView!
-
-
- //sorting classes
- template <bool ascending>
- class SortByDirectory;
-
- template <bool ascending, SelectedSide side>
- class SortByRelName;
-
- template <bool ascending, SelectedSide side>
- class SortByFileName;
-
- template <bool ascending, SelectedSide side>
- class SortByFileSize;
-
- template <bool ascending, SelectedSide side>
- class SortByDate;
-
- template <bool ascending>
- class SortByCmpResult;
-
- template <bool ascending>
- class SortBySyncDirection;
+
+
+ FolderComparison& getDataTentative(); //get data for operation that does NOT add or reorder rows! (deletion is okay)
+ void setData(FolderComparison& newData); //set data, taking ownership: warning std::swap() is used!!!
+ void removeInvalidRows(); //remove rows that have been deleted meanwhile: call after manual deletion and synchronization!
+ void clearAllRows(); //clears everything
+
+ //sorting...
+ enum SortType
+ {
+ SORT_BY_REL_NAME,
+ SORT_BY_FILENAME,
+ SORT_BY_FILESIZE,
+ SORT_BY_DATE,
+ SORT_BY_CMP_RESULT,
+ SORT_BY_DIRECTORY,
+ SORT_BY_SYNC_DIRECTION
};
+ void sortView(const SortType type, const bool onLeft, const bool ascending); //always call this method for sorting, never sort externally!
+
+private:
+ class SerializeHierarchy;
+
+ struct RefIndex
+ {
+ RefIndex(unsigned int folderInd, HierarchyObject::ObjectID id) :
+ folderIndex(folderInd),
+ objId(id) {}
+ unsigned int folderIndex;
+ HierarchyObject::ObjectID objId;
+ };
+
+ FileSystemObject* getReferencedRow(const RefIndex ref); //returns NULL if not found
+ const FileSystemObject* getReferencedRow(const RefIndex ref) const; //returns NULL if not found
+ bool isInvalidRow(const RefIndex& ref) const;
+
+
+ std::vector<RefIndex> viewRef; //partial view on sortedRef
+ // |
+ // | (update...)
+ // \|/
+ std::vector<RefIndex> sortedRef; //equivalent to folerCmp, but may be sorted
+ // |
+ // | (setData)
+ // \|/
+ FolderComparison folderCmp; //actual comparison data: owned by GridView!
+
+
+ //sorting classes
+ template <bool ascending>
+ class SortByDirectory;
+
+ template <bool ascending, SelectedSide side>
+ class SortByRelName;
+
+ template <bool ascending, SelectedSide side>
+ class SortByFileName;
+
+ template <bool ascending, SelectedSide side>
+ class SortByFileSize;
+
+ template <bool ascending, SelectedSide side>
+ class SortByDate;
+
+ template <bool ascending>
+ class SortByCmpResult;
+
+ template <bool ascending>
+ class SortBySyncDirection;
+};
+
@@ -167,56 +167,56 @@ namespace FreeFileSync
//############################################################################
//inline implementation
- inline
- const FileSystemObject* GridView::getObject(unsigned int row) const
- {
- if (row < rowsOnView())
- return getReferencedRow(viewRef[row]);
- else
- return NULL;
- }
-
- inline
- FileSystemObject* GridView::getObject(unsigned int row)
- {
- //code re-use of const method: see Meyers Effective C++
- return const_cast<FileSystemObject*>(static_cast<const GridView&>(*this).getObject(row));
- }
+inline
+const FileSystemObject* GridView::getObject(unsigned int row) const
+{
+ if (row < rowsOnView())
+ return getReferencedRow(viewRef[row]);
+ else
+ return NULL;
+}
+inline
+FileSystemObject* GridView::getObject(unsigned int row)
+{
+ //code re-use of const method: see Meyers Effective C++
+ return const_cast<FileSystemObject*>(static_cast<const GridView&>(*this).getObject(row));
+}
- inline
- unsigned int GridView::rowsOnView() const
- {
- return viewRef.size();
- }
+inline
+unsigned int GridView::rowsOnView() const
+{
+ return viewRef.size();
+}
- inline
- FolderComparison& GridView::getDataTentative()
- {
- return folderCmp;
- }
- inline
- unsigned int GridView::rowsTotal() const //total number of rows available
- {
- return sortedRef.size();
- }
+inline
+FolderComparison& GridView::getDataTentative()
+{
+ return folderCmp;
+}
+inline
+unsigned int GridView::rowsTotal() const //total number of rows available
+{
+ return sortedRef.size();
+}
- inline
- const FreeFileSync::FileSystemObject* GridView::getReferencedRow(const RefIndex ref) const
- {
- return folderCmp[ref.folderIndex].retrieveById(ref.objId);
- }
+inline
+const FreeFileSync::FileSystemObject* GridView::getReferencedRow(const RefIndex ref) const
+{
+ return folderCmp[ref.folderIndex].retrieveById(ref.objId);
+}
- inline
- FreeFileSync::FileSystemObject* GridView::getReferencedRow(const RefIndex ref)
- {
- //code re-use of const method: see Meyers Effective C++
- return const_cast<FileSystemObject*>(static_cast<const GridView&>(*this).getReferencedRow(ref));
- }
+
+inline
+FreeFileSync::FileSystemObject* GridView::getReferencedRow(const RefIndex ref)
+{
+ //code re-use of const method: see Meyers Effective C++
+ return const_cast<FileSystemObject*>(static_cast<const GridView&>(*this).getReferencedRow(ref));
+}
}
bgstack15