File indexing completed on 2024-05-05 03:58:34

0001 /*
0002     SPDX-FileCopyrightText: KDE Developers
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #ifndef KATEVI_CONFIG_TAB_H
0008 #define KATEVI_CONFIG_TAB_H
0009 
0010 #include <dialogs/kateconfigpage.h>
0011 #include <vimode/mappings.h>
0012 
0013 class QTableWidget;
0014 
0015 namespace KateVi
0016 {
0017 namespace Ui
0018 {
0019 class ConfigWidget;
0020 }
0021 
0022 class ConfigTab : public KateConfigPage
0023 {
0024 public:
0025     explicit ConfigTab(QWidget *parent, Mappings *mappings);
0026     ~ConfigTab() override;
0027 
0028     QString name() const override;
0029 
0030 protected:
0031     Ui::ConfigWidget *ui;
0032 
0033 private:
0034     void applyTab(QTableWidget *mappingsTable, Mappings::MappingMode mode);
0035     void reloadTab(QTableWidget *mappingsTable, Mappings::MappingMode mode);
0036 
0037 public:
0038     void apply() override;
0039     void reload() override;
0040     void reset() override;
0041     void defaults() override;
0042 
0043 private:
0044     void showWhatsThis(const QString &text);
0045     void addMappingRow();
0046     void removeSelectedMappingRows();
0047     void importNormalMappingRow();
0048 
0049 private:
0050     Mappings *m_mappings;
0051 };
0052 }
0053 
0054 #endif /* KATEVI_CONFIG_TAB_H */