Skip to content

cworld1/ext-case-converter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

File Extension Case Converter Logo

File Extension Case Converter

A simple tool to convert file extension cases between uppercase and lowercase πŸ”„

GitHub License

Introduction

This application helps you batch convert file extensions between uppercase and lowercase formats. Built with Rust and Slint UI framework, it provides a clean and intuitive interface for managing file extension cases.

Application Screenshot

Features

  • Batch Processing: Convert multiple files at once
  • Recursive Directory Support: Process files in subdirectories
  • Drag & Drop Interface: Simply drag files or folders into the application
  • Multilingual Support: Available in English and Chinese
  • Cross-Platform: Works on Windows, macOS, and Linux
  • Safe Operations: Preview changes before applying them

Local Development

Prerequisites

  1. Install Rust by following its getting-started guide. Once this is done, you should have the rustc compiler and the cargo build system installed in your PATH.

Setup

Clone the repository and navigate to the project directory:

git clone https://github.com/cworld1/ext-case-converter.git
cd ext-case-converter

Development Server

Build and run the application:

# Build the project
cargo build

# Run the application
cargo run

For development with hot reload and better debugging experience:

cargo run --features dev

Production

Build the application for production:

# Release build
cargo build --release

# The executable will be available at:
# target/release/slint-rust-template.exe (Windows)
# target/release/slint-rust-template (Unix)

IDE Integration

We recommend using an IDE for development, along with LSP-based IDE integration for .slint files. You can also load this project directly in Visual Studio Code and install the Slint extension.

Technical Stack

  • Backend: Rust
  • UI Framework: Slint
  • File Handling: walkdir for recursive directory traversal
  • File Dialogs: rfd for native file selection dialogs
  • Configuration: TOML-based configuration system
  • Internationalization: Built-in gettext support

Project Structure

β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ main.rs           # Application entry point
β”‚   β”œβ”€β”€ config.rs         # Configuration management
β”‚   β”œβ”€β”€ file_handler.rs   # File processing logic
β”‚   └── ui_handlers.rs    # UI event handlers
β”œβ”€β”€ ui/
β”‚   β”œβ”€β”€ main.slint        # Main UI components
β”‚   β”œβ”€β”€ app-window.slint  # Application window
β”‚   β”œβ”€β”€ settings.slint    # Settings dialog
β”‚   └── about.slint       # About dialog
β”œβ”€β”€ lang/                 # Translation files
β”‚   β”œβ”€β”€ zh_CN/            # Chinese translations
β”‚   └── en_US/            # English translations
└── target/               # Build artifacts

Contributions

To spend more time coding and less time fiddling with whitespace, this project uses code conventions and styles to encourage consistency. Code with a consistent style is easier (and less error-prone!) to review, maintain, and understand.

Development Guidelines

  • Follow Rust standard formatting with cargo fmt
  • Run cargo clippy to catch common mistakes
  • Ensure all tests pass with cargo test
  • Update translations when adding new UI text

License

This project is licensed under the GPL-3 License.

About

A simple tool to convert file extension cases between uppercase and lowercase πŸ”„

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published