summaryrefslogtreecommitdiff
path: root/src/filedialogmemory.cpp
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2013-02-22 19:28:54 +0100
committerTannin <devnull@localhost>2013-02-22 19:28:54 +0100
commit8b4e11060b37ad70754aa665ad59744eadd2dd1e (patch)
tree3e0dd354a519a6c6af18fe6d233d03fdb1f6ca62 /src/filedialogmemory.cpp
parentcb297d20b616e49803470396c21dd5747370cfaf (diff)
- bugfix: update on overwrite directory leads files incorrectly being assigned to it
- bugfix: getfullpathname reroute now correctly handles relative paths - bugfix: cwd change to overwrite is now handled too - bugfix: using the external fomod installer to merge a mod caused error messages because directories couldn't be renamed - bugfix: The memory for file dialogs wasn't saved to the ini file - file category (main, update, optional, old) is now stored with the download for future use - when overwriting a mod, the version of the mod is only increased, never reduced. This is less correct for the unusual case that the user is downgrading but more correct for the more commen case he is installing an optional file with incorrect version number - the install mod dialog now uses the file dialog memory
Diffstat (limited to 'src/filedialogmemory.cpp')
-rw-r--r--src/filedialogmemory.cpp150
1 files changed, 75 insertions, 75 deletions
diff --git a/src/filedialogmemory.cpp b/src/filedialogmemory.cpp
index 86bf22c3..f614e76d 100644
--- a/src/filedialogmemory.cpp
+++ b/src/filedialogmemory.cpp
@@ -17,78 +17,78 @@ You should have received a copy of the GNU General Public License
along with Mod Organizer. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "filedialogmemory.h"
-#include <QFileDialog>
-
-
-FileDialogMemory::FileDialogMemory()
-{
-}
-
-
-void FileDialogMemory::save(QSettings &settings)
-{
- settings.remove("recentDirectories");
- settings.beginWriteArray("recentDirectories");
- int index = 0;
- for (std::map<QString, QString>::const_iterator iter = instance().m_Cache.begin();
- iter != instance().m_Cache.end(); ++iter) {
- settings.setArrayIndex(index++);
- settings.setValue("name", iter->first);
- settings.setValue("directory", iter->second);
- }
- settings.endArray();
-}
-
-
-void FileDialogMemory::restore(QSettings &settings)
-{
- int size = settings.beginReadArray("recentDirectories");
- for (int i = 0; i < size; ++i) {
- settings.setArrayIndex(i);
- QVariant name = settings.value("name");
- QVariant dir = settings.value("directory");
- if (name.isValid() && dir.isValid()) {
- instance().m_Cache.insert(std::make_pair(name.toString(), dir.toString()));
- }
- }
- settings.endArray();
-}
-
-
-QString FileDialogMemory::getOpenFileName(const QString &dirID, QWidget *parent,
- const QString &caption, const QString &dir,
- const QString &filter, QString *selectedFilter,
- QFileDialog::Options options)
-{
- std::pair<std::map<QString, QString>::iterator, bool> currentDir =
- instance().m_Cache.insert(std::make_pair(dirID, dir));
-
- QString result = QFileDialog::getOpenFileName(parent, caption, currentDir.first->second,
- filter, selectedFilter, options);
- if (!result.isNull()) {
- instance().m_Cache[dirID] = QFileInfo(result).path();
- }
- return result;
-}
-
-
-QString FileDialogMemory::getExistingDirectory(const QString &dirID, QWidget *parent,
- const QString &caption, const QString &dir, QFileDialog::Options options)
-{
- std::pair<std::map<QString, QString>::iterator, bool> currentDir =
- instance().m_Cache.insert(std::make_pair(dirID, dir));
-
- QString result = QFileDialog::getExistingDirectory(parent, caption, currentDir.first->second, options);
- if (!result.isNull()) {
- instance().m_Cache[dirID] = QFileInfo(result).path();
- }
- return result;
-}
-
-
-FileDialogMemory &FileDialogMemory::instance()
-{
- static FileDialogMemory instance;
- return instance;
-}
+#include "filedialogmemory.h"
+#include <QFileDialog>
+
+
+FileDialogMemory::FileDialogMemory()
+{
+}
+
+
+void FileDialogMemory::save(QSettings &settings)
+{
+ settings.remove("recentDirectories");
+ settings.beginWriteArray("recentDirectories");
+ int index = 0;
+ for (std::map<QString, QString>::const_iterator iter = instance().m_Cache.begin();
+ iter != instance().m_Cache.end(); ++iter) {
+ settings.setArrayIndex(index++);
+ settings.setValue("name", iter->first);
+ settings.setValue("directory", iter->second);
+ }
+ settings.endArray();
+}
+
+
+void FileDialogMemory::restore(QSettings &settings)
+{
+ int size = settings.beginReadArray("recentDirectories");
+ for (int i = 0; i < size; ++i) {
+ settings.setArrayIndex(i);
+ QVariant name = settings.value("name");
+ QVariant dir = settings.value("directory");
+ if (name.isValid() && dir.isValid()) {
+ instance().m_Cache.insert(std::make_pair(name.toString(), dir.toString()));
+ }
+ }
+ settings.endArray();
+}
+
+
+QString FileDialogMemory::getOpenFileName(const QString &dirID, QWidget *parent,
+ const QString &caption, const QString &dir,
+ const QString &filter, QString *selectedFilter,
+ QFileDialog::Options options)
+{
+ std::pair<std::map<QString, QString>::iterator, bool> currentDir =
+ instance().m_Cache.insert(std::make_pair(dirID, dir));
+
+ QString result = QFileDialog::getOpenFileName(parent, caption, currentDir.first->second,
+ filter, selectedFilter, options);
+ if (!result.isNull()) {
+ instance().m_Cache[dirID] = QFileInfo(result).path();
+ }
+ return result;
+}
+
+
+QString FileDialogMemory::getExistingDirectory(const QString &dirID, QWidget *parent,
+ const QString &caption, const QString &dir, QFileDialog::Options options)
+{
+ std::pair<std::map<QString, QString>::iterator, bool> currentDir =
+ instance().m_Cache.insert(std::make_pair(dirID, dir));
+
+ QString result = QFileDialog::getExistingDirectory(parent, caption, currentDir.first->second, options);
+ if (!result.isNull()) {
+ instance().m_Cache[dirID] = QFileInfo(result).path();
+ }
+ return result;
+}
+
+
+FileDialogMemory &FileDialogMemory::instance()
+{
+ static FileDialogMemory instance;
+ return instance;
+}