File indexing completed on 2024-04-21 03:51:09
0001 /* 0002 SPDX-FileCopyrightText: 1999-2001 Ewald Arnold <kvoctrain@ewald-arnold.de> 0003 SPDX-FileCopyrightText: 2005-2007 Peter Hedlund <peter.hedlund@kdemail.net> 0004 SPDX-FileCopyrightText: 2008-2010 Frederik Gladhorn <gladhorn@kde.org> 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef STATISTICSMAINWINDOW_H 0009 #define STATISTICSMAINWINDOW_H 0010 0011 #include <memory> 0012 0013 #include <KXmlGuiWindow> 0014 0015 class ConjugationOptions; 0016 class StatisticsModel; 0017 class KEduVocDocument; 0018 class ParleyMainWindow; 0019 namespace Ui 0020 { 0021 class StatisticsMainWindow; 0022 } 0023 0024 class StatisticsMainWindow : public KXmlGuiWindow 0025 { 0026 Q_OBJECT 0027 public: 0028 StatisticsMainWindow(const std::shared_ptr<KEduVocDocument> &doc, ParleyMainWindow *parent); 0029 ~StatisticsMainWindow() override; 0030 0031 void setDocument(const std::shared_ptr<KEduVocDocument> &doc); 0032 0033 void syncConfig(); 0034 0035 Q_SIGNALS: 0036 void languagesChanged(int, int); 0037 0038 private Q_SLOTS: 0039 void configurePractice(); 0040 void languagesChanged(); 0041 void practiceModeSelected(int mode); 0042 void practiceDirectionChanged(int mode); 0043 void rememberPracticeDirectionChanged(bool checked); 0044 void updateVisibleColumns(); 0045 void updateModelSettings(); 0046 0047 private: 0048 void initActions(); 0049 void initPracticeModeSelection(); 0050 void initLanguages(); 0051 void initPracticeMode(); 0052 void showConjugationOptions(bool visible = true); 0053 int practiceDirectionForPracticeMode(int mode) const; 0054 void setPracticeDirectionForPracticeMode(int direction, int mode); 0055 0056 ParleyMainWindow *m_mainWindow{nullptr}; 0057 std::shared_ptr<KEduVocDocument> m_doc; 0058 StatisticsModel *m_statisticsModel{nullptr}; 0059 Ui::StatisticsMainWindow *m_ui{nullptr}; 0060 ConjugationOptions *m_conjugationOptions{nullptr}; 0061 }; 0062 0063 #endif