From dfca8be71b15bc13997110cc8777dd5a84a1fde7 Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 21 Sep 2013 19:25:33 +0200 Subject: - esp reader now handles invalid files more gracefully - files moved will now also be treated as "deleted" in the old location so a newly created file with that same name is not created in overwrite - introduced a mechanism by which MO can recognize if it crashed before when attempting to load a plugin. That plugin can be blacklisted so it doesn't get loaded again - plugins can now programaticaly change their settings - plugins can now store data persistently without exposing that data as settings - requesting an unset-setting from a plugin is no longer treated as a bug - clarified warning message for when files are in overwrite directory - the proxyPython plugin will now discover if python initialization crashed MO on a previous session and give the user a chance to fix it or disable the plugin - bugfix: GetModuleFileName modified the buffer past the zero termination. While this doesn't violate the API documentation it is different from the regular windows implementation - bugfix: proxy plugins couldn't access the parent widget - bugfix: when moving a file from overwrite to a mod the in-memory file structure wasn't updated - bugfix: name input dialog for profiles allowed names that weren't valid directory names - bugfix: profile dialog wasn't able to delete profiles if the name started or ended in whitespaces - bugfix: The name-cells for plugin settings could be changed (without effect) - removed a few obsolete files from the repository --- src/archivetree.cpp | 98 ----------------------------------------------------- 1 file changed, 98 deletions(-) delete mode 100644 src/archivetree.cpp (limited to 'src/archivetree.cpp') diff --git a/src/archivetree.cpp b/src/archivetree.cpp deleted file mode 100644 index 0484b241..00000000 --- a/src/archivetree.cpp +++ /dev/null @@ -1,98 +0,0 @@ -/* -Copyright (C) 2012 Sebastian Herbord. All rights reserved. - -This file is part of Mod Organizer. - -Mod Organizer is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -Mod Organizer is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Mod Organizer. If not, see . -*/ - -#include "archivetree.h" -#include - -ArchiveTree::ArchiveTree(QWidget *parent) : - QTreeWidget(parent) -{ -} - - -bool ArchiveTree::testMovePossible(QTreeWidgetItem *source, QTreeWidgetItem *target) -{ - if ((target == NULL) || - (source == NULL)) { - return false; - } - - if ((source == target) || - (source->parent() == target)) { - return false; - } - - return true; -} - -void ArchiveTree::dragEnterEvent(QDragEnterEvent *event) -{ - QTreeWidgetItem *source = this->currentItem(); - if ((source == NULL) || (source->parent() == NULL)) { - // can't change top level - event->ignore(); - return; - } else { - QTreeWidget::dragEnterEvent(event); - } - -} - -void ArchiveTree::dragMoveEvent(QDragMoveEvent *event) -{ - if (!testMovePossible(this->currentItem(), itemAt(event->pos()))) { - event->ignore(); - } else { - QTreeWidget::dragMoveEvent(event); - } -} - - -void ArchiveTree::dropEvent(QDropEvent *event) -{ - event->ignore(); - - QTreeWidgetItem *target = itemAt(event->pos()); - - QList sourceItems = this->selectedItems(); - for (QList::iterator iter = sourceItems.begin(); - iter != sourceItems.end(); ++iter) { - QTreeWidgetItem *source = *iter; - if ((source->parent() != NULL) && - testMovePossible(source, target)) { - source->parent()->removeChild(source); - if (target->data(0, Qt::UserRole).toInt() != 0) { - // target is a file - if (target->parent() == NULL) { - // this should really not happen, how should a - // file get to the top level? - return; - } - int index = target->parent()->indexOfChild(target); - target->parent()->insertChild(index, source); - emit changed(); - } else { - // target is a directory - target->insertChild(target->childCount(), source); - emit changed(); - } - } - } - -} -- cgit v1.3.1