diff options
| author | Tannin <devnull@localhost> | 2013-09-21 19:25:33 +0200 |
|---|---|---|
| committer | Tannin <devnull@localhost> | 2013-09-21 19:25:33 +0200 |
| commit | dfca8be71b15bc13997110cc8777dd5a84a1fde7 (patch) | |
| tree | aac3cf02be006c1f5a15c48872db965fa6f7b10f /src/archivetree.cpp | |
| parent | 08037bf876659d52b8bb8be26c7aca362555ef85 (diff) | |
- 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
Diffstat (limited to 'src/archivetree.cpp')
| -rw-r--r-- | src/archivetree.cpp | 98 |
1 files changed, 0 insertions, 98 deletions
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 <http://www.gnu.org/licenses/>. -*/ - -#include "archivetree.h"
-#include <QDragMoveEvent>
-
-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<QTreeWidgetItem*> sourceItems = this->selectedItems();
- for (QList<QTreeWidgetItem*>::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();
- }
- }
- }
-
-}
|
