Skip to content
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
61360f9
fix: remove unused dependencies sentry-native and tracy from conanfile
ahmedhussein89 Jan 19, 2026
2e266ec
Refactor QtMainWindow and related classes into a new directory structure
ahmedhussein89 Jan 19, 2026
0953abd
feat: add MouseReleaseFilter and QtViewToggle classes for enhanced mo…
ahmedhussein89 Jan 19, 2026
84e01fb
feat: implement chat functionality with ChatView and QtChatView compo…
ahmedhussein89 Jan 21, 2026
3069353
feat: enhance chat functionality with message handling and UI updates
ahmedhussein89 Jan 21, 2026
ca6879c
feat: implement signal-slot connections for chat message handling in …
ahmedhussein89 Jan 21, 2026
2e0bd69
feat: enhance chat functionality with error handling and message disp…
ahmedhussein89 Jan 21, 2026
0879eb1
feat: add ILLMService interface and implementation for LLM service ab…
ahmedhussein89 Jan 23, 2026
4e92d49
feat: add ChatMessage class for representing chat messages
ahmedhussein89 Jan 23, 2026
54b81e8
feat: add ChatModel class for managing chat messages in a Qt model
ahmedhussein89 Jan 23, 2026
f1b5247
feat: update ChatView class with widget creation and refresh methods,…
ahmedhussein89 Jan 23, 2026
45f13d2
refactor: streamline Controller class by renaming member variable and…
ahmedhussein89 Jan 23, 2026
f87443a
feat: add MessageBubbleWidget for displaying chat messages with impro…
ahmedhussein89 Jan 23, 2026
d1c0812
feat: implement MessageBubbleWidget for displaying chat messages with…
ahmedhussein89 Jan 23, 2026
6d61716
feat: enhance ChatController with user message handling and LLM integ…
ahmedhussein89 Jan 23, 2026
02a5b25
feat: integrate ChatModel into ChatView creation in QtViewFactory
ahmedhussein89 Jan 23, 2026
8acb000
feat: refactor QtChatView to integrate ChatModel and enhance message …
ahmedhussein89 Jan 23, 2026
6d8a31f
feat: update createChatComponent to integrate ChatModel and ILLMServi…
ahmedhussein89 Jan 23, 2026
d3640e2
feat: enhance QtCodeView constructor and header for improved focus ha…
ahmedhussein89 Jan 23, 2026
79ccd41
feat: update header inclusions and improve member variable naming for…
ahmedhussein89 Jan 23, 2026
7f9a447
feat: remove createWidgetWrapper from ChatView and implement in QtCha…
ahmedhussein89 Jan 23, 2026
6742bd9
feat: update ComponentFactory to integrate LlmCoordinator and modify …
ahmedhussein89 Feb 24, 2026
5739893
feat: refactor ChatController to integrate LlmCoordinator and improve…
ahmedhussein89 Feb 24, 2026
c51efc3
fix: correct template usage in addMessage method for better error han…
ahmedhussein89 Feb 24, 2026
38bb4ea
feat: implement ILLMService interface and restructure CMakeLists for …
ahmedhussein89 Feb 24, 2026
0c44dc9
feat: add LlmCoordinator class to manage LLM service providers and us…
ahmedhussein89 Feb 24, 2026
8460e22
feat: add LlmContextBuilder and related structures for context manage…
ahmedhussein89 Feb 24, 2026
bfa899c
refactor: update ChatModel to use QStandardItemModel for message stor…
ahmedhussein89 Feb 24, 2026
6c55bb1
feat: add MessageBubbleDelegate for custom rendering of chat messages…
ahmedhussein89 Feb 24, 2026
4696622
feat: refactor QtChatView to use QListView for chat message display a…
ahmedhussein89 Feb 24, 2026
5f31c4f
feat: integrate ChatModel and LlmCoordinator into chat component crea…
ahmedhussein89 Feb 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat: remove createWidgetWrapper from ChatView and implement in QtCha…
…tView for improved widget management
  • Loading branch information
ahmedhussein89 committed Jan 23, 2026
commit 7f9a4473dad7185ff9d7c26bb417f2006a2efa42
2 changes: 0 additions & 2 deletions src/lib/component/view/ChatView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,4 @@ std::string ChatView::getName() const {
return "ChatView";
}

void ChatView::createWidgetWrapper() {}

void ChatView::refreshView() {}
2 changes: 0 additions & 2 deletions src/lib/component/view/ChatView.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ class ChatView

[[nodiscard]] std::string getName() const override;

void createWidgetWrapper() override;

void refreshView() override;

signals:
Expand Down
15 changes: 9 additions & 6 deletions src/lib_gui/qt/view/QtChatView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,18 @@


QtChatView::QtChatView(ViewLayout* viewLayout, std::shared_ptr<ChatModel> model)
: ChatView{viewLayout}, mModel{std::move(model)}, mWidget{std::make_unique<QWidget>()} {
setWidgetWrapper(std::make_shared<QtViewWidgetWrapper>(mWidget.get()));
: ChatView{viewLayout}, mModel{std::move(model)}, mWidget{new QWidget} {
setupUI();
setupConnections();
loadStyleSheet();
}

QtChatView::~QtChatView() = default;

void QtChatView::createWidgetWrapper() {
setWidgetWrapper(std::make_shared<QtViewWidgetWrapper>(mWidget));
}

void QtChatView::setInputEnabled(bool enabled) {
if(mInputField) {
mInputField->setEnabled(enabled);
Expand All @@ -47,7 +50,7 @@ void QtChatView::focusInput() {
}

void QtChatView::setupUI() {
auto* mainLayout = new QVBoxLayout{mWidget.get()};
auto* mainLayout = new QVBoxLayout{mWidget};
mainLayout->setContentsMargins(0, 0, 0, 0);
mainLayout->setSpacing(0);

Expand Down Expand Up @@ -182,7 +185,7 @@ void QtChatView::loadStyleSheet() {
}

QWidget* QtChatView::createHeader() {
auto* header = new QFrame{mWidget.get()};
auto* header = new QFrame{mWidget};
header->setObjectName("header");

auto* layout = new QHBoxLayout{header};
Expand All @@ -208,7 +211,7 @@ QWidget* QtChatView::createHeader() {
}

QWidget* QtChatView::createChatArea() {
mScrollArea = new QScrollArea{mWidget.get()};
mScrollArea = new QScrollArea{mWidget};
mScrollArea->setWidgetResizable(true);
mScrollArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
mScrollArea->setFrameShape(QFrame::NoFrame);
Expand All @@ -225,7 +228,7 @@ QWidget* QtChatView::createChatArea() {
}

QWidget* QtChatView::createInputArea() {
auto* inputWidget = new QFrame{mWidget.get()};
auto* inputWidget = new QFrame{mWidget};
inputWidget->setObjectName("inputArea");

auto* layout = new QHBoxLayout{inputWidget};
Expand Down
4 changes: 3 additions & 1 deletion src/lib_gui/qt/view/QtChatView.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ class QtChatView final : public ChatView {
Q_DISABLE_COPY_MOVE(QtChatView)
~QtChatView() override;

void createWidgetWrapper() override;

// ChatView interface - pure presentation updates
void setInputEnabled(bool enabled) override;
void clearInput() override;
Expand Down Expand Up @@ -60,7 +62,7 @@ private slots:
void handleSubmit();

std::shared_ptr<ChatModel> mModel;
std::unique_ptr<QWidget> mWidget;
QWidget* mWidget{nullptr};

// Non-owning pointers to widgets owned by Qt parent-child
QVBoxLayout* mChatLayout{nullptr};
Expand Down
2 changes: 1 addition & 1 deletion src/lib_gui/qt/view/QtViewWidgetWrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ class QtViewWidgetWrapper : public ViewWidgetWrapper {
[[nodiscard]] QWidget* getWidget() const;

private:
QWidget* mWidget;
QWidget* mWidget = nullptr;
};
Loading