diff --git a/Home.md b/Home.md index 19bdf73..d796c8e 100644 --- a/Home.md +++ b/Home.md @@ -1,22 +1,72 @@ -# QElectroTech source-mirror wiki +# QElectroTech Wiki -Reference documentation for the two hand-editable XML formats QElectroTech -reads and writes, plus pointers for developers building QET itself. +**QElectroTech** is a free, open-source application for creating electrical diagrams and schematics. This wiki serves users, contributors, and developers. -## I want to... +--- -**...write or understand an element file (`.elmt`)** -โ†’ [Elements XML structure](elements_XML) +## ๐Ÿš€ Getting Started -**...write or understand a project file (`.qet`)** -โ†’ [Project XML structure](project_XML) +New to QElectroTech? Start here: -**...build or hack on QET itself** -โ†’ [Doxygen API docs](https://download.qelectrotech.org/qet/doxygen/html/) ยท [Generated developer docs](https://de-backer.github.io/qelectrotech-source-mirror/html/pages.html) ยท [Developer tools](tools) +- **[Quick Start Guide](quick_start_guide)** โ€” Download, install, and create your first diagram (5 minutes) +- **[Download QElectroTech](https://qelectrotech.org/downloads/)** โ€” Official releases and nightly builds -## Status +--- -Both XML formats are now documented down to their child elements, verified -against the QET source and a corpus of real `.qet` and `.elmt` files. See -[contributing to this wiki](contributor_to_wiki_guidelines) if you spot a gap -or something that has drifted. +## ๐Ÿ“š User Documentation + +**Using QElectroTech:** + +- **[User Manual](user_manual)** โ€” Complete guide to features, tools, and workflows +- **[Creating Elements](elements_XML)** โ€” Write and understand element files (`.elmt`) +- **[Project Files](project_XML)** โ€” Understand and edit project files (`.qet`) +- **[Tips & Tricks](tips_and_tricks)** โ€” Common workflows and best practices + +**Getting Help:** + +- **[FAQ](faq)** โ€” Frequently asked questions +- **[Forum & Support](https://forum.qelectrotech.org/)** โ€” Community support +- **[Issue Tracker](https://github.com/qelectrotech/qelectrotech-source-mirror/issues)** โ€” Report bugs and request features + +--- + +## ๐Ÿ”ง Development + +**Building & Contributing:** + +- **[Building QET](building)** โ€” Compile from source +- **[Developer Tools](tools)** โ€” Utilities and debugging resources +- **[Contributing to QET](contributing)** โ€” Guidelines for submitting code and improvements +- **[Contributing to the Wiki](contributor_to_wiki_guidelines)** โ€” Help improve this documentation + +**API & Architecture:** + +- **[API Documentation](https://download.qelectrotech.org/qet/doxygen/html/)** โ€” Doxygen reference +- **[Generated Docs](https://de-backer.github.io/qelectrotech-source-mirror/html/pages.html)** โ€” Architecture overview +- **[Current Development Work](development_roadmap)** โ€” What's being worked on + +--- + +## โ„น๏ธ About QElectroTech + +- **[History](history)** โ€” The story of QET's development +- **[Features](features)** โ€” What QET can do +- **[License](license)** โ€” Licensing information +- **[Community](community)** โ€” Join us + +--- + +## ๐Ÿ” Quick Reference + +**I want to...** + +| Goal | Link | +|------|------| +| Draw my first diagram | [Quick Start Guide](quick_start_guide) | +| Learn how to use QET | [User Manual](user_manual) | +| Create custom elements | [Elements XML Structure](elements_XML) | +| Understand project files | [Project XML Structure](project_XML) | +| Build QET from source | [Building QET](building) | +| Contribute to QET | [Contributing Guide](contributing) | +| Report a bug | [Issues](https://github.com/qelectrotech/qelectrotech-source-mirror/issues) | +| Get API documentation | [Doxygen Docs](https://download.qelectrotech.org/qet/doxygen/html/) | diff --git a/building.md b/building.md new file mode 100644 index 0000000..dd4064e --- /dev/null +++ b/building.md @@ -0,0 +1,182 @@ +# Building QElectroTech + +Instructions for building QElectroTech from source code. + +## Prerequisites + +### Linux + +**Ubuntu/Debian:** +```bash +sudo apt update +sudo apt install build-essential cmake qt5-qmake qtbase5-dev +``` + +**Fedora/RHEL:** +```bash +sudo dnf groupinstall "Development Tools" +sudo dnf install cmake qt5-qtbase-devel qt5-qmake +``` + +**Arch Linux:** +```bash +sudo pacman -S base-devel cmake qt5-base +``` + +### macOS + +1. Install Xcode Command Line Tools: + ```bash + xcode-select --install + ``` +2. Install Qt5 (via Homebrew): + ```bash + brew install qt5 cmake + ``` + +### Windows + +1. Install Visual Studio Build Tools or MinGW +2. Install Qt5 from [qt.io](https://qt.io) +3. Install CMake from [cmake.org](https://cmake.org) + +--- + +## Building from Source + +### Step 1: Clone the Repository + +```bash +git clone https://github.com/qelectrotech/qelectrotech-source-mirror.git +cd qelectrotech-source-mirror +``` + +### Step 2: Configure the Build + +```bash +mkdir build && cd build +cmake .. +``` + +### Step 3: Compile + +```bash +cmake --build . --config Release +``` + +Or use your platform's build tool: + +**Linux/macOS:** +```bash +make -j$(nproc) +``` + +**Windows (MSVC):** +```bash +cmake --build . --config Release --parallel +``` + +### Step 4: Install (Optional) + +```bash +cmake --install . +``` + +Or run the binary from the build directory. + +--- + +## Building Variants + +### Debug Build + +```bash +cmake -DCMAKE_BUILD_TYPE=Debug .. +cmake --build . +``` + +### With AddressSanitizer (ASAN) + +```bash +cmake -DCMAKE_CXX_FLAGS="-fsanitize=address" .. +cmake --build . +``` + +### With ThreadSanitizer (TSan) + +```bash +cmake -DCMAKE_CXX_FLAGS="-fsanitize=thread" .. +cmake --build . +``` + +--- + +## Troubleshooting Build Issues + +### CMake Can't Find Qt5 + +*Solutions for Qt5 discovery issues* + +### Compilation Errors + +*Common compilation errors and fixes* + +### Linker Errors + +*Common linking issues* + +--- + +## Building in Docker + +See the project's `Dockerfile` for containerized builds: + +```bash +docker build -t qelectrotech:release . +docker run -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix qelectrotech:release +``` + +--- + +## Build Optimization + +### Faster Builds + +*Tips for speeding up compilation* + +### Parallel Builds + +*Using multiple cores for faster compilation* + +### Incremental Builds + +*Only rebuilding changed files* + +--- + +## Running Tests + +After building, run the test suite: + +```bash +ctest +``` + +Or: +```bash +make test +``` + +--- + +## Contributing Changes + +See **[Contributing](contributing)** for guidelines on submitting code changes. + +--- + +## Getting Help + +- **[Forum](https://forum.qelectrotech.org/)** โ€” Build problems discussion +- **[Issues](https://github.com/qelectrotech/qelectrotech-source-mirror/issues)** โ€” Report build-related bugs +- **[Developer Docs](https://de-backer.github.io/qelectrotech-source-mirror/html/pages.html)** โ€” Architecture reference diff --git a/community.md b/community.md new file mode 100644 index 0000000..0e16060 --- /dev/null +++ b/community.md @@ -0,0 +1,195 @@ +# Community + +QElectroTech is built and maintained by a passionate community of users, developers, and contributors. + +## Getting Connected + +### Forum + +**[QElectroTech Forum](https://forum.qelectrotech.org/)** + +The main place to ask questions, share tips, and connect with other users. + +- Ask for help with using QET +- Share your projects and workflows +- Discuss new features and improvements +- Contribute to tutorials and guides + +### GitHub + +**[GitHub Repository](https://github.com/qelectrotech/qelectrotech-source-mirror)** + +Report bugs, request features, and contribute code. + +- **Issues** โ€” Report bugs and request features +- **Discussions** โ€” Open-ended conversations +- **Pull Requests** โ€” Contribute code improvements + +### Releases + +Stay updated with the latest versions: + +- **[Downloads](https://qelectrotech.org/downloads/)** โ€” Official releases +- **[Release Notes](https://github.com/qelectrotech/qelectrotech-source-mirror/releases)** โ€” What's new in each version +- **Nightly Builds** โ€” Try cutting-edge features (use with caution) + +--- + +## Ways to Get Involved + +### Use QElectroTech + +Simply using QET and sharing your work with the community helps! + +- Create amazing diagrams +- Share your workflows +- Participate in the forum + +### Report Bugs + +Found a problem? Help us fix it: + +1. **Search** existing issues to avoid duplicates +2. **Report** with clear steps to reproduce +3. **Follow up** on your report to help with diagnosis + +### Suggest Features + +Have an idea? Share it: + +1. **Start a discussion** about your idea +2. **Describe** what you want and why +3. **Engage** with others interested in the feature + +### Create Elements + +Share your custom element libraries: + +1. **Create custom elements** for your domain +2. **Publish** on the **[Elements Repository](https://github.com/qelectrotech/qelectrotech-elements)** +3. **Maintain** and improve your contributions + +### Help Others + +Join the community helping each other: + +- Answer questions on the **[Forum](https://forum.qelectrotech.org/)** +- Create tutorials and guides +- Translate QET to other languages +- Help improve documentation + +### Contribute Code + +Developers can contribute directly: + +- **Fix bugs** โ€” Address open issues +- **Add features** โ€” Build new functionality +- **Improve performance** โ€” Optimize existing code +- **Refactor** โ€” Improve code quality and maintainability + +See **[Contributing](contributing)** for guidelines. + +### Improve Documentation + +Help make QET more accessible: + +- Improve this wiki +- Create guides and tutorials +- Update API documentation +- Translate documentation + +See **[Contributing to the Wiki](contributor_to_wiki_guidelines)**. + +--- + +## Project Maintainers + +*Information about who maintains QElectroTech and their roles* + +### Core Team + +*Core maintainers and their responsibilities* + +### Active Contributors + +*Recognition of major contributors* + +--- + +## Communication Channels + +### Primary + +- **[Forum](https://forum.qelectrotech.org/)** โ€” General discussion and support +- **[GitHub Issues](https://github.com/qelectrotech/qelectrotech-source-mirror/issues)** โ€” Bug reports and features +- **[GitHub Discussions](https://github.com/qelectrotech/qelectrotech-source-mirror/discussions)** โ€” Feature ideas and discussions + +### Development + +- **[GitHub Repository](https://github.com/qelectrotech/qelectrotech-source-mirror)** โ€” Code, releases, and project tracking +- **[Elements Repository](https://github.com/qelectrotech/qelectrotech-elements)** โ€” Element libraries and symbols + +### Social (if available) + +*Links to any social media presence, mailing lists, or other channels* + +--- + +## Community Guidelines + +We're committed to a welcoming, respectful community: + +### Be Respectful + +- Treat everyone with courtesy +- Welcome different perspectives +- Disagree constructively + +### Be Helpful + +- Share knowledge and experience +- Help answer questions +- Create tutorials and guides + +### Keep It Safe + +- No harassment or discrimination +- No spam or self-promotion without context +- Respect others' privacy + +### Report Issues + +If you see something inappropriate: + +1. Don't engage with it +2. Report to project maintainers +3. Trust the community leadership to handle it + +--- + +## Contributor Recognition + +We recognize and appreciate all contributions: + +- **[GitHub Contributors](https://github.com/qelectrotech/qelectrotech-source-mirror/graphs/contributors)** โ€” Code contributors +- **[Documentation Contributors](contributor_to_wiki_guidelines)** โ€” Wiki and documentation help +- **[Translation Contributors](https://qelectrotech.org/)** โ€” Internationalization efforts +- **[Element Creators](https://github.com/qelectrotech/qelectrotech-elements)** โ€” Symbol and element library creators + +Your work makes QElectroTech better for everyone! ๐ŸŽ‰ + +--- + +## Sponsorship & Support + +*Information about how to support QElectroTech development (if applicable)* + +--- + +## Get Started Today + +- **[Quick Start Guide](quick_start_guide)** โ€” Learn to use QET +- **[Contributing](contributing)** โ€” Start contributing +- **[Forum](https://forum.qelectrotech.org/)** โ€” Join the discussion + +Welcome to the QElectroTech community! ๐Ÿ‘‹ diff --git a/contributing.md b/contributing.md new file mode 100644 index 0000000..4ee88b7 --- /dev/null +++ b/contributing.md @@ -0,0 +1,161 @@ +# Contributing to QElectroTech + +Thank you for your interest in contributing to QElectroTech! This guide explains how to get involved. + +## Ways to Contribute + +### Report Bugs + +Found a problem? Help us fix it: + +1. **Search** [existing issues](https://github.com/qelectrotech/qelectrotech-source-mirror/issues) to avoid duplicates +2. **Create an issue** with: + - Clear description of the problem + - Steps to reproduce + - Expected vs. actual behavior + - Your QET version and OS + - Screenshots if helpful + +### Suggest Features + +Have an idea? Share it: + +1. **Search** [discussions](https://github.com/qelectrotech/qelectrotech-source-mirror/discussions) to see if it's been discussed +2. **Open a discussion** explaining: + - What you want to do + - Why it would be useful + - Any alternative approaches + +### Write Documentation + +Help improve this wiki and other documentation: + +1. See **[Contributing to the Wiki](contributor_to_wiki_guidelines)** +2. Help translate documentation +3. Create tutorials or guides for common workflows + +### Create Custom Elements + +Share your element libraries with the community: + +1. **[Learn to create elements](elements_XML)** +2. Publish on the **[Elements Repository](https://github.com/qelectrotech/qelectrotech-elements)** +3. Join the elements maintenance team + +### Contribute Code + +Ready to code? Follow these steps: + +--- + +## Getting Started with Code Contributions + +### Prerequisites + +- Familiarity with C++ and Qt5 +- Basic Git knowledge +- Ability to **[build QET from source](building)** +- Understanding of the **[codebase structure](https://de-backer.github.io/qelectrotech-source-mirror/html/pages.html)** + +### Setup Your Development Environment + +1. **Fork** the repository on GitHub +2. **Clone** your fork: + ```bash + git clone https://github.com/YOUR_USERNAME/qelectrotech-source-mirror.git + cd qelectrotech-source-mirror + ``` +3. **Create a feature branch**: + ```bash + git checkout -b fix/issue-123 + # or + git checkout -b feature/my-feature + ``` +4. **Set up your Git user** (if not done already): + ```bash + git config user.name "Your Name" + git config user.email "your.email@example.com" + ``` + +### Making Changes + +1. **Write clean, well-commented code** + - Follow the project's coding style + - One logical change per commit + - Write meaningful commit messages + +2. **Test your changes** + - Build the project: `cmake --build .` + - Run existing tests: `ctest` + - Add tests for new functionality + +3. **Keep your branch updated** + ```bash + git fetch upstream + git rebase upstream/main + ``` + +### Submitting Your Contribution + +1. **Push** your changes to your fork +2. **Create a Pull Request** on GitHub with: + - Clear title describing the change + - Detailed description of what you changed and why + - Reference to any related issues (`Fixes #123`) + - Screenshots for UI changes +3. **Respond to feedback** from reviewers +4. **Keep the PR updated** if the main branch changes + +--- + +## Code Guidelines + +### Coding Standards + +*C++ coding style and conventions used in QET* + +### Commit Messages + +*Guidelines for clear, descriptive commit messages* + +### Comments & Documentation + +*When and how to add comments; docstring conventions* + +### Testing + +*How to write tests for your changes* + +--- + +## Review Process + +1. **Automatic checks** run (tests, linting) +2. **Maintainers review** your code for: + - Correctness + - Code quality + - Compatibility + - Performance +3. **Address feedback** by pushing new commits +4. **Merge** once approved โœ… + +--- + +## Code of Conduct + +We're committed to providing a welcoming community. Please: + +- Be respectful and constructive +- Welcome different viewpoints +- Report inappropriate behavior to maintainers +- Focus on the code, not the person + +--- + +## Questions? + +- **[Forum](https://forum.qelectrotech.org/)** โ€” Ask the community +- **[Discussions](https://github.com/qelectrotech/qelectrotech-source-mirror/discussions)** โ€” Open-ended questions +- **Maintainers** โ€” Direct questions about contributions + +Thank you for helping make QElectroTech better! ๐ŸŽ‰ diff --git a/development_roadmap.md b/development_roadmap.md new file mode 100644 index 0000000..d53e415 --- /dev/null +++ b/development_roadmap.md @@ -0,0 +1,140 @@ +# Development Roadmap + +Current development efforts and planned features for QElectroTech. + +## Current Focus + +### Active Development Areas + +*What the team is actively working on right now* + +--- + +## Planned Features + +### Near-term (Next Release) + +*Features planned for the upcoming release* + +### Medium-term (Future Releases) + +*Features planned for future versions* + +### Long-term Vision + +*The overall direction and goals for QElectroTech* + +--- + +## Recent Improvements + +### Latest Release + +*Major improvements and features added in the latest version* + +### In Development + +*Work that's in progress but not yet released* + +--- + +## Known Issues + +### High Priority + +*Critical bugs being addressed* + +### Medium Priority + +*Important issues in the backlog* + +### Community Reports + +*Notable issues reported by users awaiting fixes* + +--- + +## Roadmap by Feature Area + +### User Interface + +*Planned UI/UX improvements* + +### Performance + +*Performance optimization efforts* + +### File Formats & Compatibility + +*Plans for XML format improvements and compatibility* + +### Elements & Symbols + +*Expanding element libraries and symbol support* + +### Documentation + +*Plans to improve documentation and help* + +### Scripting & Automation + +*Planned automation and extensibility features* + +### Multi-user & Collaboration + +*Features to support team workflows* + +--- + +## Contributing to the Roadmap + +### Proposing Features + +Have an idea? **[Share it!](https://github.com/qelectrotech/qelectrotech-source-mirror/discussions)** + +### Voting on Features + +Interested users can voice support for features on the forum and GitHub discussions. + +### Implementing Features + +Ready to code? **[See how to contribute](contributing)**. + +--- + +## Release Schedule + +*Information about release frequency and timing (if available)* + +--- + +## Development Setup + +To participate in development: + +1. **[Build QET from source](building)** +2. **[Read developer documentation](https://de-backer.github.io/qelectrotech-source-mirror/html/pages.html)** +3. **[Start contributing](contributing)** + +--- + +## Communication + +- **[Forum](https://forum.qelectrotech.org/)** โ€” Discuss roadmap and ideas +- **[GitHub Discussions](https://github.com/qelectrotech/qelectrotech-source-mirror/discussions)** โ€” Feature requests and roadmap discussion +- **[GitHub Issues](https://github.com/qelectrotech/qelectrotech-source-mirror/issues)** โ€” Bug reports and tracking +- **[Community](community)** โ€” Connect with developers and users + +--- + +## Historical Context + +See **[History](history)** for how QElectroTech has evolved. + +--- + +## More Information + +- **[Contributing](contributing)** โ€” How to get involved +- **[Community](community)** โ€” The people behind QET +- **[Building QET](building)** โ€” Development setup diff --git a/faq.md b/faq.md new file mode 100644 index 0000000..4d954e5 --- /dev/null +++ b/faq.md @@ -0,0 +1,112 @@ +# Frequently Asked Questions + +Quick answers to common questions about QElectroTech. + +## Installation & Setup + +### Q: Where do I download QElectroTech? +A: Visit [qelectrotech.org/downloads](https://qelectrotech.org/downloads/) for official releases, or see [Building QET](building) to compile from source. + +### Q: What are the system requirements? +A: *System requirements for Windows, macOS, and Linux* + +### Q: How do I uninstall QElectroTech? +A: *Uninstall instructions for each operating system* + +### Q: Is QElectroTech free? +A: Yes! QElectroTech is free and open-source under the GNU GPL license. + +--- + +## Getting Started + +### Q: I just installed QET. How do I create my first diagram? +A: See the **[Quick Start Guide](quick_start_guide)** for a 5-minute tutorial. + +### Q: How do I add elements to my diagram? +A: Use the Elements panel on the right side. Search for what you need or browse by category, then drag elements onto your canvas. + +### Q: How do I connect elements with wires? +A: Use the Wire tool from the toolbar, then click on connection terminals on each element. + +### Q: How do I add labels to wires and elements? +A: Double-click on a wire or element to add text. + +--- + +## Creating Diagrams + +### Q: What file format does QElectroTech use? +A: QElectroTech projects are saved as `.qet` files (XML format), and elements as `.elmt` files. + +### Q: Can I open QET files in other software? +A: `.qet` and `.elmt` are XML formats, so you can view and edit them in any text editor. See **[Project XML Structure](project_XML)** and **[Elements XML Structure](elements_XML)** for format details. + +### Q: How do I export my diagram? +A: Use **File โ†’ Export** to save as PNG, SVG, PDF, and other formats. + +### Q: How do I print my diagram? +A: Use **File โ†’ Print** or set up multi-page printing for large diagrams. + +### Q: Can I create custom elements? +A: Yes! See **[Creating Elements](elements_XML)** for instructions. + +--- + +## Projects & Organization + +### Q: How do I create multiple diagrams in one project? +A: *Instructions for managing multiple diagrams* + +### Q: How do I organize a large project? +A: See **[Tips & Tricks](tips_and_tricks)** for organization strategies. + +### Q: Can I share projects with other QET users? +A: Yes, `.qet` files are portable. You can email them or use version control (Git). See **[Tips & Tricks](tips_and_tricks)** for collaboration workflows. + +--- + +## Troubleshooting + +### Q: QET won't start / crashes on startup +A: *Common startup issues and solutions* + +### Q: My wires aren't connecting properly +A: *Tips for debugging wire connection problems* + +### Q: QET is running slowly with my large project +A: See the **[User Manual](user_manual)** Performance section. + +### Q: I accidentally deleted something. How do I undo? +A: Press Ctrl+Z (or Cmd+Z on macOS) to undo. You can undo multiple steps. + +### Q: My file won't open in a newer/older version of QET +A: *Compatibility issues and migration instructions* + +### Q: Where are project files stored? +A: QET files are saved wherever you choose. Look in your Documents folder or the last location you used. + +--- + +## Advanced Topics + +### Q: How do I write scripts for QElectroTech? +A: *Introduction to QET scripting (when available)* + +### Q: Can I use QElectroTech in an automated/headless workflow? +A: *Information about automation and command-line usage* + +### Q: How do I contribute to QElectroTech? +A: See **[Contributing](contributing)** for guidelines. + +### Q: Where can I get help with advanced topics? +A: Visit the **[Forum](https://forum.qelectrotech.org/)** or check the **[Community](community)** resources. + +--- + +## Didn't Find Your Answer? + +- **[User Manual](user_manual)** โ€” Detailed feature documentation +- **[Tips & Tricks](tips_and_tricks)** โ€” Advanced workflows +- **[Forum](https://forum.qelectrotech.org/)** โ€” Ask the community +- **[Issues](https://github.com/qelectrotech/qelectrotech-source-mirror/issues)** โ€” Report bugs or request features diff --git a/features.md b/features.md new file mode 100644 index 0000000..e5cc036 --- /dev/null +++ b/features.md @@ -0,0 +1,173 @@ +# QElectroTech Features + +A comprehensive overview of what QElectroTech can do. + +## Core Features + +### Diagram Creation & Editing + +- **Free-form drawing** โ€” Create electrical schematics with precision +- **Element library** โ€” Thousands of pre-made electrical symbols +- **Custom elements** โ€” Design your own symbols for specific needs +- **Wire routing** โ€” Connect elements with automatic or manual routing +- **Text & labels** โ€” Add descriptive text, signal names, and annotations +- **Grid & snap** โ€” Align elements perfectly with grid snapping + +### Organization + +- **Multiple diagrams** โ€” Organize large projects across multiple pages +- **Layers** โ€” Group elements on separate layers for complex diagrams +- **Page templates** โ€” Create standardized diagram layouts +- **Naming conventions** โ€” Support for reference designations (R1, C1, etc.) + +### Editing Tools + +- **Full undo/redo** โ€” Revert any action, step by step +- **Copy & paste** โ€” Duplicate elements and sections +- **Cut, copy, paste, delete** โ€” Standard editing operations +- **Multi-select** โ€” Select and edit multiple elements at once +- **Alignment tools** โ€” Align, distribute, and group elements +- **Zoom & pan** โ€” Navigate easily through large diagrams + +--- + +## File & Project Management + +### File Formats + +- **QET projects** (`.qet`) โ€” Native XML format for complete projects +- **Element files** (`.elmt`) โ€” XML format for custom elements +- **Import/Export** โ€” Support for multiple export formats + +### Export Options + +- **PNG** โ€” Raster export for sharing and documentation +- **SVG** โ€” Vector export for editing in other tools +- **PDF** โ€” Professional documents for printing +- **Other formats** โ€” Extensible export system + +### Printing + +- **Print preview** โ€” See how your diagram will look before printing +- **Multi-page printing** โ€” Print large diagrams across multiple pages +- **Page setup** โ€” Customize margins, scale, and orientation +- **Print-friendly options** โ€” Black & white, grayscale, quality settings + +--- + +## Advanced Features + +### Libraries & Repositories + +- **Element collections** โ€” Organize elements into categories +- **Element repository** โ€” Access community-created elements +- **Custom libraries** โ€” Create and manage your own symbol libraries + +### Electrical Properties + +- **Terminal connections** โ€” Define connection points on elements +- **Electrical properties** โ€” Track voltage, current, and signal information +- **Wire properties** โ€” Color, style, thickness, and electrical properties + +### Automation & Scripting + +- **Scripting API** โ€” Automate tasks with Python scripts +- **Batch operations** โ€” Process multiple files or elements +- **Custom workflows** โ€” Extend QET with custom functionality + +### Collaboration + +- **Version control** โ€” Work with Git and other VCS +- **File sharing** โ€” Portable `.qet` files for team collaboration +- **Import/merge** โ€” Combine work from multiple contributors + +--- + +## Standards & Compliance + +### Electrical Standards + +- **IEC 81346** โ€” Support for international labeling standards +- **DIN/European standards** โ€” Compliance with European conventions +- **Custom standards** โ€” Extensible system for organization-specific standards + +### File Compatibility + +- **Cross-platform** โ€” Windows, macOS, Linux +- **Format stability** โ€” `.qet` and `.elmt` files remain compatible +- **XML-based** โ€” Human-readable and tool-friendly formats + +--- + +## Interface & Usability + +### User Interface + +- **Customizable toolbars** โ€” Arrange tools to fit your workflow +- **Dockable panels** โ€” Elements, properties, navigator panels +- **Keyboard shortcuts** โ€” Fast access to common commands +- **Right-click menus** โ€” Context-sensitive commands + +### Internationalization + +- **Multiple languages** โ€” Translated interface for many languages +- **Localization** โ€” Regional preferences and standards +- **French origin** โ€” Maintained by French electrical engineers + +### Accessibility + +- **Zoom support** โ€” Enlarge interface and diagrams +- **Dark mode** โ€” Eye-friendly theme option +- **Keyboard navigation** โ€” Full keyboard control of interface + +--- + +## Performance & Reliability + +### Large Projects + +- **Efficient rendering** โ€” Handle diagrams with hundreds of elements +- **Responsive interface** โ€” Smooth interaction even with complex projects +- **Quick saves** โ€” Fast file I/O for large projects + +### Stability + +- **Robust error handling** โ€” Graceful handling of edge cases +- **Crash recovery** โ€” Automatic backups and recovery +- **Regular updates** โ€” Bug fixes and improvements + +--- + +## Developer Features + +### Open Source + +- **Free software** โ€” GPL license, free to use and modify +- **Source code access** โ€” Study and modify the code +- **Community contribution** โ€” Join development efforts + +### API & Extensibility + +- **Plugin system** โ€” Extend with custom functionality +- **XML formats** โ€” Easy to read and write programmatically +- **Scripting support** โ€” Automate with Python + +### Documentation + +- **Source documentation** โ€” Well-commented codebase +- **API docs** โ€” Doxygen-generated API reference +- **Architecture guides** โ€” Understanding the codebase + +--- + +## Coming Soon + +See **[Development Roadmap](development_roadmap)** for planned features and improvements. + +--- + +## Learn More + +- **[Quick Start Guide](quick_start_guide)** โ€” Get started today +- **[User Manual](user_manual)** โ€” Detailed feature documentation +- **[Tips & Tricks](tips_and_tricks)** โ€” Advanced workflows diff --git a/history.md b/history.md new file mode 100644 index 0000000..5707283 --- /dev/null +++ b/history.md @@ -0,0 +1,101 @@ +# History of QElectroTech + +The story of QElectroTech's development and evolution. + +## Origins + +*Early development and why QElectroTech was created* + +### The Beginning + +*Initial release, first features, and early goals* + +--- + +## Major Milestones + +### Version 0.x + +*Early versions and foundational features* + +### Version 1.0 + +*Major 1.0 release and key improvements* + +### Version 2.0 + +*Significant architectural changes and new capabilities* + +### Recent Development + +*Recent features, improvements, and current direction* + +--- + +## Key Features Over Time + +### UI & UX Evolution + +*How the interface has improved and evolved* + +### Core Functionality Additions + +*Major features added over the years* + +### Performance Improvements + +*Optimization and speed enhancements* + +### Platform Support + +*Support for Windows, macOS, Linux, and other platforms* + +--- + +## Community Growth + +### Early Community + +*Building the initial user and developer community* + +### Current Community + +*Today's active contributors and users* + +### Translations + +*Internationalization and language support* + +--- + +## Technical Evolution + +### Libraries & Dependencies + +*Qt, Python, and other key dependencies over time* + +### Architecture Changes + +*Major refactoring and architectural improvements* + +### Open Source Journey + +*The path to open source and collaborative development* + +--- + +## Notable Contributions + +*Recognition of major contributors and their work* + +--- + +## Future Direction + +See **[Development Roadmap](development_roadmap)** for current and planned work. + +--- + +## Want to Help? + +QElectroTech is built by volunteers. **[Learn how you can contribute](contributing)** to the project! diff --git a/license.md b/license.md new file mode 100644 index 0000000..7d9b9b6 --- /dev/null +++ b/license.md @@ -0,0 +1,108 @@ +# License Information + +QElectroTech's licensing and what it means for you. + +## GNU General Public License (GPL) + +QElectroTech is licensed under the **GNU General Public License v3.0 (GPLv3)**. + +### What This Means + +- โœ… **Free to use** โ€” You can use QElectroTech for any purpose, personal or commercial +- โœ… **Free to modify** โ€” You can modify the source code for your needs +- โœ… **Free to distribute** โ€” You can share copies with others +- โœ… **Access to source** โ€” The complete source code is available +- โš ๏ธ **Share-alike** โ€” If you modify and distribute QET, you must share your changes under the same GPL license + +### Your Responsibilities + +Under GPLv3, if you distribute modified versions of QElectroTech, you must: + +1. **Include the license** โ€” Provide a copy of the GPL license +2. **Document changes** โ€” Clearly mark modifications you've made +3. **Share source code** โ€” Provide the source code to users +4. **Use the same license** โ€” Modified versions must also be GPLv3 + +--- + +## What You Can Do + +### Personal Use + +You can use QElectroTech for personal projects without restrictions. + +### Educational Use + +Teachers and students can use QElectroTech freely in educational settings. + +### Commercial Use + +You can use QElectroTech in commercial projects. Your diagrams and projects are yours. + +**Important:** If you modify QET itself and sell software based on the modifications, you must provide source code and license those modifications under GPL. + +### Publishing Projects + +Your diagrams and projects are yours to use, sell, and distribute. The GPL license only applies to the QET software itself, not your work created with it. + +### Creating Elements + +You can create custom element libraries and share them. Choose your own license for your elements. + +--- + +## Open Source Compliance + +### Using QET in Your Project + +If your software uses QElectroTech: + +- **Unmodified QET** โ€” No license restrictions; use freely +- **Modified QET** โ€” You must share the modified source under GPL +- **Linking statically** โ€” May trigger GPL "copyleft" requirements; consult legal counsel + +### Distribution + +If you distribute QET (modified or unmodified): + +- Include a copy of the GPL license +- Provide or link to source code +- Document any modifications + +--- + +## Contributors & Attribution + +### How to Attribute QElectroTech + +If you use QET in your work, we appreciate attribution: + +> This project uses [QElectroTech](https://qelectrotech.org), licensed under the GNU GPL v3.0. + +### Contributing Your Changes + +By contributing code to QElectroTech, you agree that your contributions will be licensed under the GPL v3.0 license. + +--- + +## Full License Text + +For the complete license text, see: + +- **GitHub:** [LICENSE file](https://github.com/qelectrotech/qelectrotech-source-mirror/blob/main/LICENSE) +- **GNU.org:** [GPLv3 Text](https://www.gnu.org/licenses/gpl-3.0.html) + +--- + +## Questions About Licensing? + +- **[Forum](https://forum.qelectrotech.org/)** โ€” Ask the community +- **[GitHub Issues](https://github.com/qelectrotech/qelectrotech-source-mirror/issues)** โ€” Licensing questions +- **Maintainers** โ€” Contact project maintainers + +--- + +## Related Information + +- **[Contributing](contributing)** โ€” How to contribute code +- **[Community](community)** โ€” Who's behind QElectroTech diff --git a/quick_start_guide.md b/quick_start_guide.md new file mode 100644 index 0000000..46369f1 --- /dev/null +++ b/quick_start_guide.md @@ -0,0 +1,72 @@ +# Quick Start Guide + +Get QElectroTech running and create your first diagram in 5 minutes. + +## Step 1: Download & Install + +### Windows +1. Visit [qelectrotech.org/downloads](https://qelectrotech.org/downloads/) +2. Download the Windows installer +3. Run the installer and follow the prompts +4. Launch QElectroTech from your Start menu + +### macOS +1. Visit [qelectrotech.org/downloads](https://qelectrotech.org/downloads/) +2. Download the macOS package +3. Drag QElectroTech to Applications +4. Launch from Applications folder + +### Linux +```bash +# Ubuntu/Debian +sudo apt install qelectrotech + +# Fedora +sudo dnf install qelectrotech + +# Or compile from source - see [Building QET](building) +``` + +## Step 2: Create Your First Project + +1. Open QElectroTech +2. Click **File โ†’ New Project** +3. Choose your diagram size (A4, A3, etc.) +4. Click **OK** + +## Step 3: Draw Your First Diagram + +### Add Elements +1. Find the **Elements panel** on the right +2. Search for "switch" or browse categories +3. Drag an element onto your diagram +4. Repeat to add more elements + +### Connect with Wires +1. Click the **Wire tool** in the toolbar +2. Click on a terminal (connection point) on your first element +3. Click on a terminal on your second element +4. The wire is drawn automatically + +### Add Labels & Text +1. Double-click on a wire or element to add a label +2. Type your text and press Enter + +## Step 4: Save Your Work + +1. Click **File โ†’ Save** +2. Choose a location and enter a filename +3. QElectroTech saves as `.qet` format + +## Next Steps + +- Explore the **[User Manual](user_manual)** for detailed features +- Check out **[Tips & Tricks](tips_and_tricks)** for advanced workflows +- Learn to **[Create Custom Elements](elements_XML)** +- Join the **[Community](community)** for help + +## Getting Help + +- **[FAQ](faq)** โ€” Common questions +- **[Forum](https://forum.qelectrotech.org/)** โ€” Ask the community +- **[Issues](https://github.com/qelectrotech/qelectrotech-source-mirror/issues)** โ€” Report problems diff --git a/tips_and_tricks.md b/tips_and_tricks.md new file mode 100644 index 0000000..3894314 --- /dev/null +++ b/tips_and_tricks.md @@ -0,0 +1,128 @@ +# Tips & Tricks + +Advanced workflows and best practices for QElectroTech users. + +## Drawing Efficiently + +### Wire Drawing Tips + +*Shortcuts for faster wire drawing, auto-routing, and connection strategies* + +### Element Placement + +*Keyboard shortcuts for rotation, precise positioning, and alignment tricks* + +### Selection Tricks + +*Multi-select patterns, selecting by type, and selection filters* + +### Copy & Paste Workflows + +*Duplicating complex sections, pasting across diagrams, and reference libraries* + +## Organization & Navigation + +### Organizing Large Projects + +*Using multiple diagrams effectively, naming conventions, and structure* + +### Navigation Shortcuts + +*Zoom shortcuts, fit-to-page, and quick navigation between diagrams* + +### Layer Management + +*Using layers to organize complex diagrams* + +## Creating Professional Diagrams + +### Best Practices for Schematics + +*Standard conventions for electrical diagrams* + +### Naming Conventions + +*Reference designations (R1, C1, etc.) and signal naming* + +### Labeling Standards + +*IEC standards, wire labels, and documentation practices* + +### Page Layout + +*Multi-page projects, cross-references, and diagram indexing* + +## Working with Elements + +### Creating Custom Elements + +*Designing elements for your specific needs* + +### Building Element Libraries + +*Organizing and sharing custom element collections* + +### Editing Existing Elements + +*Modifying elements and maintaining consistency* + +## Performance & Optimization + +### Large Diagram Handling + +*Working efficiently with complex projects* + +### File Size Optimization + +*Reducing project file size and improving performance* + +### Backup & Recovery + +*Protecting your work and recovering from mistakes* + +## Collaboration + +### Sharing Projects + +*Exporting, version control, and team workflows* + +### Merging Changes + +*Combining work from multiple contributors* + +### Version Control Integration + +*Using Git with QElectroTech projects* + +## Advanced Techniques + +### Scripting & Automation + +*Writing scripts to automate repetitive tasks* + +### Batch Operations + +*Bulk editing and batch exports* + +### Custom Formatting + +*Advanced text formatting and styling options* + +## Troubleshooting & Tips + +### Common Gotchas + +*Avoiding common mistakes and understanding QET's behavior* + +### Performance Tips + +*Speeding up your workflow* + +### Keyboard Shortcuts You Should Know + +*Essential shortcuts for power users* + +## See Also + +- **[User Manual](user_manual)** โ€” Complete feature reference +- **[FAQ](faq)** โ€” Quick answers diff --git a/user_manual.md b/user_manual.md new file mode 100644 index 0000000..fa166c6 --- /dev/null +++ b/user_manual.md @@ -0,0 +1,237 @@ +# User Manual + +Comprehensive guide to using QElectroTech for creating electrical diagrams and schematics. + +## Table of Contents + +1. [Interface Overview](#interface-overview) +2. [Projects & Diagrams](#projects--diagrams) +3. [Working with Elements](#working-with-elements) +4. [Drawing Wires](#drawing-wires) +5. [Text & Labels](#text--labels) +6. [Editing & Formatting](#editing--formatting) +7. [Exporting & Printing](#exporting--printing) +8. [Advanced Features](#advanced-features) + +--- + +## Interface Overview + +*The QElectroTech workspace: menu bar, toolbars, panels, and diagram canvas* + +### Main Components + +- **Menu Bar** โ€” File, Edit, View, Insert, Tools, Windows, Help +- **Toolbar** โ€” Quick access to common tools (select, wire, text, etc.) +- **Elements Panel** (right) โ€” Browse and search available elements +- **Properties Panel** โ€” Adjust properties of selected objects +- **Diagram Canvas** โ€” Your working area for drawing +- **Status Bar** โ€” Information about current selection and zoom + +### Customizing the Interface + +*How to show/hide panels, customize toolbars, and arrange your workspace* + +--- + +## Projects & Diagrams + +### Creating a New Project + +*Steps to create a new project with custom settings* + +### Managing Multiple Diagrams + +*Adding, organizing, and navigating between diagrams in one project* + +### Project Settings + +*Page size, scale, printing options, and project properties* + +### Opening & Saving + +*File formats (.qet), autosave, backups, and version control* + +--- + +## Working with Elements + +### Finding Elements + +*Browsing by category, searching, and creating favorite elements* + +### Placing Elements + +*Drag and drop, rotation, alignment, and positioning* + +### Selecting & Deselecting + +*Single select, multi-select, selection tools, and filters* + +### Moving & Duplicating + +*Move, copy, paste, cut, and keyboard shortcuts* + +### Rotating & Flipping + +*Rotate elements 90ยฐ, flip horizontally/vertically* + +### Resizing & Grouping + +*Resize, group elements, lock position and properties* + +### Deleting Elements + +*Remove single or multiple elements from your diagram* + +--- + +## Drawing Wires + +### Wire Tool Basics + +*Selecting the wire tool and drawing connections* + +### Wire Modes + +*Orthogonal vs. free-form wires, and wire styles* + +### Connecting to Terminals + +*Finding connection points and ensuring valid connections* + +### Editing Wires + +*Moving, deleting, splitting, and joining wires* + +### Wire Properties + +*Color, thickness, style, and electrical properties* + +--- + +## Text & Labels + +### Adding Text + +*Text tool, entering text, and formatting options* + +### Wire Labels + +*Labeling wires with signal names, voltages, and notes* + +### Element Labels + +*Adding reference designations and descriptions to elements* + +### Dynamic Fields + +*Using variables like %id, %label, and %author* + +### Text Formatting + +*Font selection, size, color, and alignment* + +--- + +## Editing & Formatting + +### Undo & Redo + +*Reverting and re-applying changes* + +### Selection Tools + +*Select all, select by type, and deselect* + +### Alignment Tools + +*Align left, right, center, top, bottom, and distribute spacing* + +### Snap to Grid + +*Enable/disable, adjust grid size, and alignment options* + +### Zoom & Pan + +*Zoom in/out, fit to page, pan, and navigation shortcuts* + +--- + +## Exporting & Printing + +### Printing Diagrams + +*Print preview, page setup, scaling, and multi-page printing* + +### Exporting Formats + +*PNG, SVG, PDF, and other export options* + +### Batch Export + +*Export multiple diagrams at once* + +### Print-Friendly Settings + +*Color vs. black & white, margins, and quality settings* + +--- + +## Advanced Features + +### Custom Elements + +*Creating your own elements and element libraries* + +### Templates + +*Using project templates and diagram templates* + +### Scripting & Automation + +*Writing scripts to automate common tasks* + +### Database Integration + +*Importing component data and managing libraries* + +### Multi-User Projects + +*Collaboration features and version control integration* + +--- + +## Troubleshooting + +*Common issues and solutions* + +### Performance + +*Optimizing large diagrams and reducing file size* + +### Compatibility + +*Opening files from different QET versions* + +### Importing + +*Importing from other diagram tools* + +--- + +## Keyboard Shortcuts + +*Complete list of keyboard shortcuts for common tasks* + +--- + +## Tips & Best Practices + +See **[Tips & Tricks](tips_and_tricks)** for advanced workflows and best practices. + +## Need Help? + +- **[FAQ](faq)** โ€” Quick answers to common questions +- **[Forum](https://forum.qelectrotech.org/)** โ€” Ask the community +- **[Issues](https://github.com/qelectrotech/qelectrotech-source-mirror/issues)** โ€” Report bugs