OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
datafilespage.hpp
Go to the documentation of this file.
1 #ifndef DATAFILESPAGE_H
2 #define DATAFILESPAGE_H
3 
4 #include "ui_datafilespage.h"
5 #include <QWidget>
6 
7 
8 #include <QDir>
9 #include <QFile>
10 #include <QStringList>
11 
13 class QAbstractItemModel;
14 class QMenu;
15 
16 namespace Files { struct ConfigurationManager; }
17 namespace ContentSelectorView { class ContentSelector; }
18 namespace Config { class GameSettings;
19  class LauncherSettings; }
20 
21 namespace Launcher
22 {
23  class TextInputDialog;
24  class ProfilesComboBox;
25 
26  class DataFilesPage : public QWidget
27  {
28  Q_OBJECT
29 
31  Ui::DataFilesPage ui;
32 
33  public:
35  Config::LauncherSettings &launcherSettings, QWidget *parent = 0);
36 
38 
39  int profilesIndex() const;
40 
41  //void writeConfig(QString profile = QString());
42  void saveSettings(const QString &profile = "");
43  bool loadSettings();
44 
49  QStringList selectedFilePaths();
50 
51  signals:
52  void signalProfileChanged (int index);
53  void signalLoadedCellsChanged(QStringList selectedFiles);
54 
55  public slots:
56  void slotProfileChanged (int index);
57 
58  private slots:
59 
60  void slotProfileChangedByUser(const QString &previous, const QString &current);
61  void slotProfileRenamed(const QString &previous, const QString &current);
62  void slotProfileDeleted(const QString &item);
63  void slotAddonDataChanged ();
64 
65  void updateOkButton(const QString &text);
66 
69 
70  public:
72  const static char *mDefaultContentListName;
73 
74  private:
75 
77 
79 
82 
84  QStringList previousSelectedFiles;
85  QString mDataLocal;
86 
87  void setPluginsCheckstates(Qt::CheckState state);
88 
89  void buildView();
90  void setupConfig();
91  void readConfig();
92  void setProfile (int index, bool savePrevious);
93  void setProfile (const QString &previous, const QString &current, bool savePrevious);
94  void removeProfile (const QString &profile);
95  bool showDeleteMessageBox (const QString &text);
96  void addProfile (const QString &profile, bool setAsCurrent);
98  void populateFileViews(const QString& contentModelName);
99  void reloadCells(QStringList selectedFiles);
100 
102  {
103  QStringList::ConstIterator mCitEnd;
104  QStringList::ConstIterator mCitCurrent;
105  QStringList::ConstIterator mCitBegin;
106  QString mFile;
107  QString mFilePath;
108 
109  public:
110  PathIterator (const QStringList &list)
111  {
112  mCitBegin = list.constBegin();
114  mCitEnd = list.constEnd();
115  }
116 
117  QString findFirstPath (const QString &file)
118  {
120  mFile = file;
121  return path();
122  }
123 
124  QString findNextPath () { return path(); }
125 
126  private:
127 
128  QString path ()
129  {
130  bool success = false;
131  QDir dir;
132  QFileInfo file;
133 
134  while (!success)
135  {
136  if (mCitCurrent == mCitEnd)
137  break;
138 
139  dir.setPath (*(mCitCurrent++));
140  file.setFile (dir.absoluteFilePath (mFile));
141 
142  success = file.exists();
143  }
144 
145  if (success)
146  return file.absoluteFilePath();
147 
148  return "";
149  }
150 
151  };
152 
153  QStringList filesInProfile(const QString& profileName, PathIterator& pathIterator);
154  };
155 }
156 #endif
QString path()
Definition: datafilespage.hpp:128
Config::GameSettings & mGameSettings
Definition: datafilespage.hpp:80
void slotAddonDataChanged()
Definition: datafilespage.cpp:336
QString findFirstPath(const QString &file)
Definition: datafilespage.hpp:117
Definition: contentselector.hpp:13
void addProfile(const QString &profile, bool setAsCurrent)
Definition: datafilespage.cpp:264
QAbstractItemModel * profilesModel() const
Definition: datafilespage.cpp:174
void signalLoadedCellsChanged(QStringList selectedFiles)
void buildView()
Definition: datafilespage.cpp:58
bool showDeleteMessageBox(const QString &text)
Definition: datafilespage.cpp:320
static const struct @8 signals[]
static const char * mDefaultContentListName
Content List that is always present.
Definition: datafilespage.hpp:72
QStringList::ConstIterator mCitBegin
Definition: datafilespage.hpp:105
TextInputDialog * mProfileDialog
Definition: datafilespage.hpp:76
void on_newProfileAction_triggered()
Definition: datafilespage.cpp:247
int list(Bsa::BSAFile &bsa, Arguments &info)
Definition: bsatool.cpp:182
Definition: configurationmanager.hpp:20
Definition: datafilespage.hpp:101
int profilesIndex() const
Definition: datafilespage.cpp:179
QStringList previousSelectedFiles
Definition: datafilespage.hpp:84
Files::ConfigurationManager & mCfgMgr
Definition: datafilespage.hpp:78
void checkForDefaultProfile()
Definition: datafilespage.cpp:311
QString findNextPath()
Definition: datafilespage.hpp:124
void slotProfileRenamed(const QString &previous, const QString &current)
Definition: datafilespage.cpp:224
Config::LauncherSettings & mLauncherSettings
Definition: datafilespage.hpp:81
QStringList::ConstIterator mCitCurrent
Definition: datafilespage.hpp:104
QStringList selectedFilePaths()
Definition: datafilespage.cpp:158
Definition: profilescombobox.hpp:11
void setProfile(int index, bool savePrevious)
Definition: datafilespage.cpp:184
void updateOkButton(const QString &text)
Definition: datafilespage.cpp:298
Definition: datafilespage.hpp:26
void saveSettings(const QString &profile="")
Definition: datafilespage.cpp:137
DataFilesPage(Files::ConfigurationManager &cfg, Config::GameSettings &gameSettings, Config::LauncherSettings &launcherSettings, QWidget *parent=0)
Definition: datafilespage.cpp:30
QString mFilePath
Definition: datafilespage.hpp:107
void signalProfileChanged(int index)
bool loadSettings()
Definition: datafilespage.cpp:86
Definition: launchersettings.hpp:9
void setPluginsCheckstates(Qt::CheckState state)
void populateFileViews(const QString &contentModelName)
Definition: datafilespage.cpp:103
Definition: textinputdialog.hpp:12
ContentSelectorView::ContentSelector * mSelector
Definition: datafilespage.hpp:30
void slotProfileChanged(int index)
Definition: datafilespage.cpp:238
void reloadCells(QStringList selectedFiles)
Definition: datafilespage.cpp:351
QStringList filesInProfile(const QString &profileName, PathIterator &pathIterator)
Definition: datafilespage.cpp:121
QStringList::ConstIterator mCitEnd
Definition: datafilespage.hpp:103
Ui::DataFilesPage ui
Definition: datafilespage.hpp:31
void removeProfile(const QString &profile)
Definition: datafilespage.cpp:169
void slotProfileDeleted(const QString &item)
Definition: datafilespage.cpp:213
void on_deleteProfileAction_triggered()
Definition: datafilespage.cpp:276
QString mFile
Definition: datafilespage.hpp:106
void slotProfileChangedByUser(const QString &previous, const QString &current)
Definition: datafilespage.cpp:218
PathIterator(const QStringList &list)
Definition: datafilespage.hpp:110
QString mDataLocal
Definition: datafilespage.hpp:85
QString mPreviousProfile
Definition: datafilespage.hpp:83
Definition: gamesettings.hpp:20