File indexing completed on 2024-05-12 16:44:04

0001 /*
0002     SPDX-FileCopyrightText: 2006-2018 Thomas Baumgart <tbaumgart@kde.org>
0003     SPDX-FileCopyrightText: 2017 Łukasz Wojniłowicz <lukasz.wojnilowicz@gmail.com>
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #ifndef KMYMONEYSELECTOR_P_H
0008 #define KMYMONEYSELECTOR_P_H
0009 
0010 #include "kmymoneyselector.h"
0011 
0012 // ----------------------------------------------------------------------------
0013 // QT Includes
0014 
0015 #include <QTreeWidget>
0016 #include <QHBoxLayout>
0017 #include <QHeaderView>
0018 
0019 // ----------------------------------------------------------------------------
0020 // KDE Includes
0021 
0022 // ----------------------------------------------------------------------------
0023 // Project Includes
0024 
0025 class QHBoxLayout;
0026 
0027 class KMyMoneySelectorPrivate
0028 {
0029     Q_DISABLE_COPY(KMyMoneySelectorPrivate)
0030     Q_DECLARE_PUBLIC(KMyMoneySelector)
0031 
0032 public:
0033     explicit KMyMoneySelectorPrivate(KMyMoneySelector *qq) :
0034         q_ptr(qq),
0035         m_treeWidget(nullptr),
0036         m_selMode(QTreeWidget::SingleSelection),
0037         m_layout(nullptr)
0038     {
0039     }
0040 
0041     void init()
0042     {
0043         Q_Q(KMyMoneySelector);
0044         q->setAutoFillBackground(true);
0045 
0046         m_selMode = QTreeWidget::SingleSelection;
0047 
0048         m_treeWidget = new QTreeWidget(q);
0049         // don't show horizontal scroll bar
0050         m_treeWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
0051 
0052         m_treeWidget->setSortingEnabled(false);
0053         m_treeWidget->setAlternatingRowColors(true);
0054 
0055         m_treeWidget->setAllColumnsShowFocus(true);
0056 
0057         m_layout = new QHBoxLayout(q);
0058         m_layout->setSpacing(0);
0059         m_layout->setMargin(0);
0060 
0061         m_treeWidget->header()->hide();
0062 
0063         m_layout->addWidget(m_treeWidget);
0064 
0065         // force init
0066         m_selMode = QTreeWidget::MultiSelection;
0067         q->setSelectionMode(QTreeWidget::SingleSelection);
0068 
0069         q->connect(m_treeWidget, &QTreeWidget::itemPressed, q, &KMyMoneySelector::slotItemPressed);
0070         q->connect(m_treeWidget, &QTreeWidget::itemChanged, q, &KMyMoneySelector::stateChanged);
0071     }
0072 
0073     KMyMoneySelector          *q_ptr;
0074     QTreeWidget*               m_treeWidget;
0075     QStringList                m_itemList;
0076     QString                    m_baseName;
0077     QTreeWidget::SelectionMode m_selMode;
0078     QHBoxLayout*               m_layout;
0079 };
0080 
0081 #endif