- Support for multiple copy sets (source-destination pairs)
- Real-time, bidirectional synchronization for each copy set
- User-friendly GUI 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
- Countdown timer displaying time until next synchronization
- Cooldown mechanism to prevent excessive synchronization
- Built with PyQt6 and watchdog for robust performance
- Comprehensive unit tests for all UI components
- Download the standalone executable for your platform from the assets below.
- Run the executable to start the File Copier application.
- Launch the File Copier application.
- Click "Add New Copy Set" to create a new source-destination pair.
- For each copy set:
- Click "SELECT" next to "Source:" to choose the source folder.
- Click "SELECT" next to "Destination:" to choose the destination folder.
- Set the global copy interval using the slider or input box at the bottom.
- Monitor the synchronization status and countdown timer for all copy sets in the status area.
- Add or remove copy sets as needed using the "Add New Copy Set" and "Remove" buttons.
If you want to run the application from source or contribute to the project:
-
Clone the repository:
git clone https://github.com/adibzailan/file-copier.git
-
Install dependencies:
pip install -r requirements.txt
-
Run the application:
python ui_main.py
-
To package the application:
python pyinstaller_script.py
The packaged executable will be in the 'dist' folder.
-
To run the unit tests:
pytest ui/components/tests
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!
For detailed changelog information, please refer to the RELEASE_vX.X.X.md files in the changelog folder.
- 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
- 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
- Fixed issues with timer countdown not starting properly
- Implemented cooldown mechanism to prevent excessive synchronization
- Improved overall stability and performance