File indexing completed on 2024-05-19 05:08:37

0001 /*
0002     SPDX-FileCopyrightText: 2009-2011 Laurent Montel <montel@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 TRANSACTIONSORTOPTIONIMPL_H
0008 #define TRANSACTIONSORTOPTIONIMPL_H
0009 
0010 #include "kmm_base_widgets_export.h"
0011 
0012 // ----------------------------------------------------------------------------
0013 // QT Includes
0014 
0015 #include <QWidget>
0016 
0017 // ----------------------------------------------------------------------------
0018 // KDE Includes
0019 
0020 // ----------------------------------------------------------------------------
0021 // Project Includes
0022 
0023 namespace Ui {
0024 class TransactionSortOption;
0025 }
0026 namespace eWidgets {
0027 enum class SortField;
0028 }
0029 
0030 class QListWidget;
0031 class QListWidgetItem;
0032 class KMM_BASE_WIDGETS_EXPORT TransactionSortOption : public QWidget
0033 {
0034     Q_OBJECT
0035     Q_DISABLE_COPY(TransactionSortOption)
0036 
0037 public:
0038     explicit TransactionSortOption(QWidget* parent);
0039     ~TransactionSortOption();
0040     QString settings() const;
0041 
0042 public Q_SLOTS:
0043     void setSettings(const QString& settings);
0044 
0045 protected:
0046     QListWidgetItem* addEntry(QListWidget* p, QListWidgetItem* after, int idx);
0047     void setDirectionIcon(QListWidgetItem* item);
0048 
0049 protected Q_SLOTS:
0050     void slotUpdateButtons();
0051     void slotAddItem();
0052     void slotRemoveItem();
0053     void slotUpItem();
0054     void slotDownItem();
0055     void slotToggleDirection();
0056 
0057 Q_SIGNALS:
0058     void settingsChanged(const QString&);
0059 
0060 private:
0061     static eWidgets::SortField textToSortOrder(const QString& text);
0062     static QString sortOrderToText(eWidgets::SortField idx);
0063     Ui::TransactionSortOption* ui;
0064 };
0065 
0066 #endif /* TRANSACTIONSORTOPTIONIMPL_H */