Skip to content

Generate keystore & find in files#214

Merged
vaibhavpandeyvpz merged 2 commits into
masterfrom
VPZ/generate-keystore
Jan 5, 2026
Merged

Generate keystore & find in files#214
vaibhavpandeyvpz merged 2 commits into
masterfrom
VPZ/generate-keystore

Conversation

@vaibhavpandeyvpz
Copy link
Copy Markdown
Owner

This PR introduces two major features to improve the developer workflow in APK Studio:

  1. Find in Files Dialog - A comprehensive search functionality for searching across project files
  2. Generate Keystore from within IDE - Ability to generate Android keystores directly from the IDE

🎯 Find in Files Dialog

Features

  • Full-text search across project files with support for multiple file types (Java, XML, Smali, C++, JavaScript, and more)
  • Search options:
    • Case-sensitive search
    • Whole words matching
    • Regular expression support
  • Results display:
    • Grouped results by file with match counts
    • Line-by-line match preview with line numbers
    • Clickable results that open files and navigate to matching lines
    • Split-pane view with search results and code preview
  • Theme-aware UI:
    • Proper styling for both light and dark themes
    • File header rows use theme-appropriate colors for readability
    • Match items use neutral styling for clear distinction

Technical Details

  • Recursive directory scanning with configurable file type filtering
  • Real-time progress indication during search
  • Efficient text matching with support for regex and whole-word matching
  • Integration with main window for opening files and highlighting matches
  • Responsive layout with proper space allocation (options/status use minimal space, results take remaining area)

UI Improvements

  • Options group and status label use QSizePolicy::Maximum to prevent unnecessary expansion
  • Splitter expands to fill available vertical space
  • File name headers use QPalette::AlternateBase for theme-adaptive background
  • Match items explicitly use QPalette::Base and QPalette::Text for consistent neutral styling

🔐 Generate Keystore from within IDE

Features

  • Keystore generation dialog integrated into the signing configuration workflow
  • User-friendly interface for creating new keystores with:
    • Keystore file path selection
    • Password configuration
    • Key alias and validity period settings
  • Background worker for non-blocking keystore generation
  • Integration with existing signing configuration widget

Technical Details

  • Uses Java keytool command-line utility
  • Asynchronous keystore generation to prevent UI blocking
  • Proper error handling and user feedback
  • Seamless integration with signing configuration workflow

📝 Files Changed

Find in Files Dialog

  • sources/findinfilesdialog.cpp - Main dialog implementation (449 lines)
  • sources/findinfilesdialog.h - Dialog class definition (67 lines)
  • sources/mainwindow.cpp - Integration with main window
  • sources/mainwindow.h - Method declarations
  • sources/themedsyntaxhighlighter.cpp - Syntax highlighting improvements
  • CMakeLists.txt - Build configuration updates

Generate Keystore

  • sources/keystoregeneratedialog.cpp - Keystore generation dialog (161 lines)
  • sources/keystoregeneratedialog.h - Dialog class definition (40 lines)
  • sources/keystoregenerateworker.cpp - Background worker implementation (120 lines)
  • sources/keystoregenerateworker.h - Worker class definition (36 lines)
  • sources/signingconfigwidget.cpp - Integration with signing configuration (103 lines added)
  • sources/signingconfigwidget.h - Widget updates (13 lines)

🧪 Testing

  • Find in Files dialog works with various search patterns
  • Theme-aware styling displays correctly in both light and dark modes
  • File navigation from search results works correctly
  • Keystore generation completes successfully
  • UI remains responsive during long searches and keystore generation

🎨 UI/UX Improvements

  • Improved layout spacing and sizing for better space utilization
  • Theme-consistent colors for better readability in both light and dark modes
  • Clear visual distinction between file headers and match items
  • Proper status feedback during operations

@vaibhavpandeyvpz vaibhavpandeyvpz self-assigned this Jan 5, 2026
@vaibhavpandeyvpz vaibhavpandeyvpz merged commit c6e2724 into master Jan 5, 2026
3 checks passed
@vaibhavpandeyvpz vaibhavpandeyvpz deleted the VPZ/generate-keystore branch January 5, 2026 04:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant