From 5d1154c24e2475ed2b7ac248de27ab7b501a1e5e Mon Sep 17 00:00:00 2001 From: Tannin Date: Sat, 16 Feb 2013 19:09:57 +0100 Subject: - hooks for CreateHardLink - createprocess hook will now reroute the cwd (fixes SUM, may break other tools?) - profile code moved to separate file - executables can now be linked to toolbar - category filters are now represented as a tree - csv export of mod list - ModInfoDialog is now "window modal" instead of "application modal" - nexus dialog now updates the mod-id field while browsing - right-click in nexus browser allows to open in external browser - ini viewer is no longer modal - bugfix: another attempt to fix processing of invalid header lines in fomod xmls (bom now handled) - bugfix: integrated fomod installer will no longer overwrite detected mod name by the one from the xml - bugfix: "hide file" from conflicted files list now updates that list - bugfix: conflicted files list no longer offers to hide files in BSAs - bugfix: pressing delete on the mod list with multiplie files selected offered to delete the wrong files - regression: mod name guessing with the old regular expression was less likely to lead to an empty mod name. Now both are tried --- src/baincomplexinstallerdialog.cpp | 202 ++++++++++++++++++------------------- 1 file changed, 101 insertions(+), 101 deletions(-) (limited to 'src/baincomplexinstallerdialog.cpp') diff --git a/src/baincomplexinstallerdialog.cpp b/src/baincomplexinstallerdialog.cpp index c21fa5ad..9b282c82 100644 --- a/src/baincomplexinstallerdialog.cpp +++ b/src/baincomplexinstallerdialog.cpp @@ -17,104 +17,104 @@ You should have received a copy of the GNU General Public License along with Mod Organizer. If not, see . */ -#include "baincomplexinstallerdialog.h" -#include "textviewer.h" -#include "ui_baincomplexinstallerdialog.h" - -#include - -BainComplexInstallerDialog::BainComplexInstallerDialog(DirectoryTree *tree, const QString &modName, bool hasPackageTXT, QWidget *parent) - : TutorableDialog("BainInstaller", parent), ui(new Ui::BainComplexInstallerDialog), m_Manual(false) -{ - ui->setupUi(this); - - ui->nameEdit->setText(modName); - - for (DirectoryTree::const_node_iterator iter = tree->nodesBegin(); iter != tree->nodesEnd(); ++iter) { - const QString &dirName = (*iter)->getData().name; - if ((dirName.compare("fomod", Qt::CaseInsensitive) == 0) || - (dirName.startsWith("--"))) { - continue; - } - - QListWidgetItem *item = new QListWidgetItem(ui->optionsList); - item->setText((*iter)->getData().name); - item->setFlags(item->flags() | Qt::ItemIsUserCheckable); - item->setCheckState(item->text().mid(0, 2) == "00" ? Qt::Checked : Qt::Unchecked); - item->setData(Qt::UserRole, qVariantFromValue((void*)(*iter))); - ui->optionsList->addItem(item); - } - - ui->packageBtn->setEnabled(hasPackageTXT); -} - - -BainComplexInstallerDialog::~BainComplexInstallerDialog() -{ - delete ui; -} - - -QString BainComplexInstallerDialog::getName() const -{ - return ui->nameEdit->text(); -} - - -void BainComplexInstallerDialog::moveTreeUp(DirectoryTree *target, DirectoryTree::Node *child) -{ - for (DirectoryTree::const_node_iterator iter = child->nodesBegin(); - iter != child->nodesEnd();) { - target->addNode(*iter, true); - iter = child->detach(iter); - } - - for (DirectoryTree::const_leaf_reverse_iterator iter = child->leafsRBegin(); - iter != child->leafsREnd(); ++iter) { - target->addLeaf(*iter); - } -} - - -DirectoryTree *BainComplexInstallerDialog::updateTree(DirectoryTree *tree) -{ - DirectoryTree *newTree = new DirectoryTree; - - for (DirectoryTree::const_node_reverse_iterator iter = tree->nodesRBegin(); - iter != tree->nodesREnd();) { - QList items = ui->optionsList->findItems((*iter)->getData().name, Qt::MatchFixedString); - if ((items.count() == 1) && (items.at(0)->checkState() == Qt::Checked)) { - moveTreeUp(newTree, *iter); - } - iter = tree->erase(iter); - } - - return newTree; -} - - -void BainComplexInstallerDialog::on_okBtn_clicked() -{ - this->accept(); -} - - -void BainComplexInstallerDialog::on_cancelBtn_clicked() -{ - this->reject(); -} - - -void BainComplexInstallerDialog::on_manualBtn_clicked() -{ - m_Manual = true; - this->reject(); -} - -void BainComplexInstallerDialog::on_packageBtn_clicked() -{ - TextViewer viewer(this); - viewer.setDescription(""); - viewer.addFile(QDir::tempPath().append("/package.txt"), false); - viewer.exec(); -} +#include "baincomplexinstallerdialog.h" +#include "textviewer.h" +#include "ui_baincomplexinstallerdialog.h" + +#include + +BainComplexInstallerDialog::BainComplexInstallerDialog(DirectoryTree *tree, const QString &modName, bool hasPackageTXT, QWidget *parent) + : TutorableDialog("BainInstaller", parent), ui(new Ui::BainComplexInstallerDialog), m_Manual(false) +{ + ui->setupUi(this); + + ui->nameEdit->setText(modName); + + for (DirectoryTree::const_node_iterator iter = tree->nodesBegin(); iter != tree->nodesEnd(); ++iter) { + const QString &dirName = (*iter)->getData().name; + if ((dirName.compare("fomod", Qt::CaseInsensitive) == 0) || + (dirName.startsWith("--"))) { + continue; + } + + QListWidgetItem *item = new QListWidgetItem(ui->optionsList); + item->setText((*iter)->getData().name); + item->setFlags(item->flags() | Qt::ItemIsUserCheckable); + item->setCheckState(item->text().mid(0, 2) == "00" ? Qt::Checked : Qt::Unchecked); + item->setData(Qt::UserRole, qVariantFromValue((void*)(*iter))); + ui->optionsList->addItem(item); + } + + ui->packageBtn->setEnabled(hasPackageTXT); +} + + +BainComplexInstallerDialog::~BainComplexInstallerDialog() +{ + delete ui; +} + + +QString BainComplexInstallerDialog::getName() const +{ + return ui->nameEdit->text(); +} + + +void BainComplexInstallerDialog::moveTreeUp(DirectoryTree *target, DirectoryTree::Node *child) +{ + for (DirectoryTree::const_node_iterator iter = child->nodesBegin(); + iter != child->nodesEnd();) { + target->addNode(*iter, true); + iter = child->detach(iter); + } + + for (DirectoryTree::const_leaf_reverse_iterator iter = child->leafsRBegin(); + iter != child->leafsREnd(); ++iter) { + target->addLeaf(*iter); + } +} + + +DirectoryTree *BainComplexInstallerDialog::updateTree(DirectoryTree *tree) +{ + DirectoryTree *newTree = new DirectoryTree; + + for (DirectoryTree::const_node_reverse_iterator iter = tree->nodesRBegin(); + iter != tree->nodesREnd();) { + QList items = ui->optionsList->findItems((*iter)->getData().name, Qt::MatchFixedString); + if ((items.count() == 1) && (items.at(0)->checkState() == Qt::Checked)) { + moveTreeUp(newTree, *iter); + } + iter = tree->erase(iter); + } + + return newTree; +} + + +void BainComplexInstallerDialog::on_okBtn_clicked() +{ + this->accept(); +} + + +void BainComplexInstallerDialog::on_cancelBtn_clicked() +{ + this->reject(); +} + + +void BainComplexInstallerDialog::on_manualBtn_clicked() +{ + m_Manual = true; + this->reject(); +} + +void BainComplexInstallerDialog::on_packageBtn_clicked() +{ + TextViewer viewer("package.txt", this); + viewer.setDescription(""); + viewer.addFile(QDir::tempPath().append("/package.txt"), false); + viewer.exec(); +} -- cgit v1.3.1