mirror of
https://github.com/johndoe6345789/WizardMerge.git
synced 2026-04-24 21:54:57 +00:00
105 lines
1.9 KiB
Markdown
105 lines
1.9 KiB
Markdown
# WizardMerge Qt6 Frontend
|
|
|
|
Native desktop frontend for WizardMerge built with Qt6 and C++.
|
|
|
|
## Features
|
|
|
|
- Native desktop application for Linux, Windows, and macOS
|
|
- Qt6 Widgets/QML-based UI
|
|
- Direct integration with C++ backend
|
|
- Offline capability
|
|
- High performance
|
|
|
|
## Prerequisites
|
|
|
|
- Qt6 (6.2+)
|
|
- CMake 3.16+
|
|
- C++17 compiler (GCC 7+, Clang 6+, MSVC 2017+)
|
|
- Ninja (recommended)
|
|
|
|
## Building
|
|
|
|
### Install Qt6
|
|
|
|
**Ubuntu/Debian:**
|
|
```bash
|
|
sudo apt-get install qt6-base-dev qt6-declarative-dev
|
|
```
|
|
|
|
**macOS (Homebrew):**
|
|
```bash
|
|
brew install qt@6
|
|
```
|
|
|
|
**Windows:**
|
|
Download and install Qt6 from https://www.qt.io/download
|
|
|
|
### Build the Application
|
|
|
|
```bash
|
|
mkdir build && cd build
|
|
cmake .. -G Ninja -DCMAKE_BUILD_TYPE=Release
|
|
ninja
|
|
```
|
|
|
|
### Run
|
|
|
|
```bash
|
|
./wizardmerge-qt6
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
qt6/
|
|
├── CMakeLists.txt # CMake build configuration
|
|
├── README.md # This file
|
|
├── src/ # C++ source files
|
|
│ └── main.cpp # Application entry point
|
|
├── qml/ # QML UI files
|
|
│ └── main.qml # Main window UI
|
|
└── include/ # Header files
|
|
```
|
|
|
|
## Development
|
|
|
|
### Architecture
|
|
|
|
The Qt6 frontend communicates with the WizardMerge C++ backend via:
|
|
- Direct library linking (for standalone mode)
|
|
- HTTP API calls (for client-server mode)
|
|
|
|
### UI Components
|
|
|
|
The UI is built using QML for declarative UI design:
|
|
- Three-panel diff viewer
|
|
- Conflict resolution controls
|
|
- Syntax highlighting
|
|
- File navigation
|
|
|
|
## Configuration
|
|
|
|
The application can be configured via command-line arguments:
|
|
|
|
```bash
|
|
# Open a specific file
|
|
./wizardmerge-qt6 /path/to/conflicted/file
|
|
|
|
# Connect to remote backend
|
|
./wizardmerge-qt6 --backend-url http://localhost:8080
|
|
|
|
# Use standalone mode (embedded backend)
|
|
./wizardmerge-qt6 --standalone
|
|
```
|
|
|
|
## Dependencies
|
|
|
|
- Qt6 Core
|
|
- Qt6 Widgets
|
|
- Qt6 Quick (QML)
|
|
- Qt6 Network (for HTTP client)
|
|
|
|
## License
|
|
|
|
See [LICENSE](../../LICENSE) for details.
|