Skip to content

Refactor/Update welcome window UI and recent projects flow#205

Open
kykyrudza wants to merge 6 commits into
munirov:devfrom
kykyrudza-coding:main
Open

Refactor/Update welcome window UI and recent projects flow#205
kykyrudza wants to merge 6 commits into
munirov:devfrom
kykyrudza-coding:main

Conversation

@kykyrudza

Copy link
Copy Markdown

English

Summary

This PR updates the Welcome Window design, restructures the project selection flow, and improves how recent projects are stored globally.

What Changed

  • Reworked the old single-file Welcome Window into separate components:
    • WelcomeForm
    • RecentProjectsPage
    • CreateProjectPage
    • ProjectCard
  • Replaced the simple recent-project path list with project cards.
  • Extended global recent project storage from a plain list of paths to a JSON-based structure with project metadata:
    • project path
    • project name
    • selected language
    • last opened timestamp
  • Project history is now persisted globally in a JSON file, making it easier to reuse and extend this data across the application.
  • Added a dedicated project creation page with validation.
  • Added a separate welcome.qss stylesheet for Welcome Window-specific styling.
  • Updated CMake and resources to include the new Welcome Window files.

Why

The old Welcome Window kept project selection, project creation, validation, and history rendering in one class, while recent project history only stored basic path data. The new structure makes the UI easier to maintain, gives users a clearer project selection experience, and stores richer project metadata in a global JSON history file.

Screenshots

Before:

изображение изображение

After:

изображение изображение

Русский

Кратко

Этот PR обновляет дизайн Welcome Window, перерабатывает поток выбора проекта и улучшает глобальное хранение недавних проектов.

Что изменено

  • Старая монолитная реализация Welcome Window разделена на отдельные компоненты:
    • WelcomeForm
    • RecentProjectsPage
    • CreateProjectPage
    • ProjectCard
  • Простой список путей к недавним проектам заменён на карточки проектов.
  • Глобальная история недавних проектов расширена: вместо простого списка путей теперь используется JSON-структура с метаданными проекта:
    • путь проекта
    • имя проекта
    • выбранный язык
    • время последнего открытия
  • История проектов теперь глобально сохраняется в JSON-файле, что упрощает повторное использование и дальнейшее расширение этих данных в приложении.
  • Создание проекта вынесено на отдельную страницу с валидацией.
  • Добавлен отдельный welcome.qss для стилей Welcome Window.
  • Обновлены CMake и ресурсы для подключения новых файлов.

Зачем

Раньше выбор проекта, создание проекта, валидация и отображение истории находились в одном классе, а история недавних проектов хранила только базовые данные о путях. Новая структура упрощает поддержку кода, делает стартовое окно более информативным для пользователя и сохраняет больше данных о проектах в глобальном JSON-файле.

Скриншоты

До:

изображение изображение

После:

изображение изображение

Kleshzz and others added 6 commits May 7, 2026 18:49
Bump sccache to version 0.0.10 and update CI workflow
Removed a bug task and a long-term task from the roadmap.
Removed a bug task and a long-term task from the roadmap.
@kykyrudza kykyrudza changed the title Update welcome window UI and recent projects flow Refactor/Update welcome window UI and recent projects flow May 12, 2026
Comment on lines +35 to +48
QFile file(getDefaultPathLocation());

if (!file.exists()) {
return projects;
}

if (!file.open(QIODevice::ReadOnly)) {
return projects;
}

const auto data = file.readAll();
file.close();

const auto document = QJsonDocument::fromJson(data);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

File Manager can work with json files. Why u don't use him?

@faketri33

Copy link
Copy Markdown
Contributor

You've opened a pull request from the master branch to the dev branch and hijacked someone else's commits. Switch to the dev branch and use git cherry-pick commit-id to push your commit to the dev branch.

Do not change file naming signatures in the project

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants