From e0ce893d063af4b941122a27165b0afe09b843ae Mon Sep 17 00:00:00 2001 From: Javier Date: Wed, 26 Aug 2026 12:04:37 +0200 Subject: [PATCH] fix: responsive widths + email selection fix - MailListView: setMinimumSectionSize(50) + setStretchLastSection(false) to allow header shrinking - MainMainWindow: reduce folder tree min width 220->160, reader min width 350->280 - Allow splitter children to not be collapsible but shrink freely - Fix onRowSelected slot signature to match currentRowChanged signal --- src/ui/maillistview.cpp | 4 ++++ src/ui/mainmainwindow.cpp | 8 ++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ui/maillistview.cpp b/src/ui/maillistview.cpp index b8ca346..ab851e6 100644 --- a/src/ui/maillistview.cpp +++ b/src/ui/maillistview.cpp @@ -254,6 +254,10 @@ void MailListView::setupUI() m_treeView->header()->setSectionResizeMode(EmailTreeModel::ColSubject, QHeaderView::Stretch); m_treeView->header()->setSectionResizeMode(EmailTreeModel::ColSender, QHeaderView::Stretch); m_treeView->header()->setSectionResizeMode(EmailTreeModel::ColDate, QHeaderView::ResizeToContents); + + // Allow shrinking by setting minimum section sizes + m_treeView->header()->setMinimumSectionSize(50); + m_treeView->header()->setStretchLastSection(false); connect(m_treeView->selectionModel(), &QItemSelectionModel::selectionChanged, this, &MailListView::onSelectionChanged); diff --git a/src/ui/mainmainwindow.cpp b/src/ui/mainmainwindow.cpp index 697e674..ff7d509 100644 --- a/src/ui/mainmainwindow.cpp +++ b/src/ui/mainmainwindow.cpp @@ -224,7 +224,7 @@ void MainMainWindow::setupMailPage() m_folderTree = new QTreeView(); m_folderTree->setHeaderHidden(true); m_folderTree->setIndentation(20); - m_folderTree->setMinimumWidth(220); + m_folderTree->setMinimumWidth(160); // Reduced from 220 m_folderTree->setMaximumWidth(350); m_folderTree->setFrameShape(QFrame::NoFrame); m_folderTree->setExpandsOnDoubleClick(true); @@ -291,7 +291,7 @@ void MainMainWindow::setupMailPage() // Reader view m_emailViewer = new ReaderView(); - m_emailViewer->setMinimumWidth(350); + m_emailViewer->setMinimumWidth(280); // Reduced from 350 connect(m_emailViewer, &ReaderView::replyRequested, this, &MainMainWindow::onReaderReplyRequested); connect(m_emailViewer, &ReaderView::forwardRequested, this, &MainMainWindow::onReaderForwardRequested); connect(m_emailViewer, &ReaderView::deleteRequested, this, &MainMainWindow::onReaderDeleteRequested); @@ -320,6 +320,10 @@ void MainMainWindow::setupMailPage() // Default sizes: left pane (folders+categories) 300, list 380, viewer flex m_folderSplitter->setSizes({300, 380, 600}); + + // Allow each pane to shrink further + m_folderSplitter->setHandleWidth(1); + m_folderSplitter->setChildrenCollapsible(false); mailLayout->addWidget(m_folderSplitter); }