Skip to content

adibzailan/file_copier

Repository files navigation

File Copier v2.1.0

Updated: 4 January 2025

Features

  • Support for multiple copy sets (source-destination pairs)
  • Selective file synchronization - choose specific files to sync within each copy set
  • Real-time, bidirectional synchronization for each copy set
  • Modern dark theme UI with improved visibility and contrast
  • Initial full copy when folders are first selected for each copy set
  • Robust "full rebuild" feature ensuring complete synchronization at specified intervals
  • Real-time monitoring and handling of file changes (create, modify, delete, rename) for each copy set
  • Customizable global synchronization interval
  • Add and remove copy sets dynamically
  • Detailed status messages for better tracking of synchronization process

Installation

  1. Download the standalone executable for your platform from the assets below.
  2. Run the executable to start the File Copier application.

Usage

  1. Launch the File Copier application.
  2. Click "Add New Copy Set" to create a new source-destination pair.
  3. For each copy set:
    • Click "SELECT" next to "Source:" to choose the source folder.
    • Click "SELECT" next to "Destination:" to choose the destination folder.
    • Select specific files you want to sync from the source folder.
  4. Click "Start Sync" to begin synchronization.
  5. Monitor the synchronization status and countdown timer for all copy sets in the status area.
  6. Add or remove copy sets as needed using the "Add New Copy Set" and "Remove" buttons.

For Developers

If you want to run the application from source or contribute to the project:

  1. Clone the repository:

    git clone https://github.com/adibzailan/file-copier.git
    
  2. Install dependencies:

    pip install -r requirements.txt
    
  3. Run the application:

    python ui_main.py
    
  4. To package the application:

    python build_executable.py
    

    The packaged executable will be in the 'dist' folder.

  5. To run the unit tests:

    pytest ui/components/tests
    

Feedback and Contributions

Feedback and contributions are always welcome to help improve the project! Please open an issue or submit a pull request on GitHub. Enjoy using File Copier!

Changelog

v2.1.0

  • Fixed live sync toggle functionality to properly enable/disable file watching
  • Improved file copier management with per-copy-set instances
  • Fixed synchronization issues when manually starting/stopping sync
  • Enhanced error handling and status messages for better feedback
  • Added proper cleanup of file watchers and copiers
  • Improved thread safety in file operations
  • Fixed various bugs related to sync state management

v2.0.0

  • Added selective file synchronization feature
  • Implemented new dark theme UI for better visibility
  • Improved file selection interface with checkboxes
  • Enhanced sync control with Start/Stop functionality
  • Added validation for source and destination folders
  • Improved error handling and user feedback
  • Fixed various bugs related to file synchronization
  • Updated documentation and usage instructions
  • Simplified version display in UI

v1.2.5

  • Implemented unit tests for all UI components using pytest
  • Added conftest.py to set up QApplication for GUI testing
  • Fixed IntervalSettingsWidget to properly handle invalid interval values
  • Improved test coverage and ensured all components pass their respective unit tests
  • Enhanced project structure for better test organization

v1.2.4

  • Updated UI design to align with Studio Merpati brand guidelines
  • Removed redundant "File Copier" text from the main window
  • Updated footer to display version and build information
  • Changed color scheme to use soft teal (#4ECDC4) for buttons and UI elements
  • Improved overall visual consistency and user experience

v1.2.3

  • Fixed issues with timer countdown not starting properly
  • Implemented cooldown mechanism to prevent excessive synchronization
  • Improved overall stability and performance