<table><tr><td style="">astan created this revision.<br />astan added a reviewer: Breeze.<br />Restricted Application added a project: Plasma.<br />Restricted Application added a subscriber: plasma-devel.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D4406" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>Instead of always adding space for the sorting indicator in item view<br />
headers, only add it if sorting is enabled. Without this fix, operations<br />
such as QTreeView::resizeColumnToContents(..) will not result in a snug<br />
fit when the header section is wider than all items in the column.</p></div></div><br /><div><strong>TEST PLAN</strong><div><p>#include <QApplication>                                                                                                               <br />
#include <QTreeView><br />
#include <QStandardItemModel><br />
#include <QStandardItem></p>

<p>int main(int argc, char *argv[])<br />
{</p>

<div class="remarkup-code-block" style="margin: 12px 0;" data-code-lang="text" data-sigil="remarkup-code-block"><pre class="remarkup-code" style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; padding: 12px; margin: 0; background: rgba(71, 87, 120, 0.08);">QApplication app(argc, argv);

// Test model
QStandardItemModel model(3, 2);
model.setHorizontalHeaderLabels({ "Header 1", "Header 2" });
for (int row = 0; row < 3; ++row) {
    for (int column = 0; column < 2; ++column) {
        model.setItem(row, column, new QStandardItem("Foo"));
    }
}

// View with sorting disabled
QTreeView view;
view.setWindowTitle("Sorting Disabled");
view.setModel(&model);
view.show();
view.resizeColumnToContents(0);

// View with sorting enabled
QTreeView viewWithSorting;
viewWithSorting.setWindowTitle("Sorting Enabled");
viewWithSorting.setModel(&model);
viewWithSorting.setSortingEnabled(true);
viewWithSorting.show();
viewWithSorting.resizeColumnToContents(0);

return app.exec();</pre></div>

<p>}</p>

<p>Notice how before applying this fix, there's space reserved for the sorting<br />
indicator even on the QTreeView that has sorting disabled.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R31 Breeze</div></div></div><br /><div><strong>BRANCH</strong><div><div>fix-unsortable-item-view-header-size (branched from master)</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D4406" rel="noreferrer">https://phabricator.kde.org/D4406</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>kstyle/breezestyle.cpp</div></div></div><br /><div><strong>EMAIL PREFERENCES</strong><div><a href="https://phabricator.kde.org/settings/panel/emailpreferences/" rel="noreferrer">https://phabricator.kde.org/settings/panel/emailpreferences/</a></div></div><br /><div><strong>To: </strong>astan, Breeze<br /><strong>Cc: </strong>plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas<br /></div>