diff options
| author | Tannin <Tannin@Miranda> | 2013-02-16 19:09:57 +0100 |
|---|---|---|
| committer | Tannin <Tannin@Miranda> | 2013-02-16 19:09:57 +0100 |
| commit | 5d1154c24e2475ed2b7ac248de27ab7b501a1e5e (patch) | |
| tree | 265341b9c8d057da46b56ad9fde40c9b39963ebb /src/baincomplexinstallerdialog.cpp | |
| parent | 44b96e6fb5f484e9a60fe03b99021a1c5f78488d (diff) | |
- 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
Diffstat (limited to 'src/baincomplexinstallerdialog.cpp')
| -rw-r--r-- | src/baincomplexinstallerdialog.cpp | 202 |
1 files changed, 101 insertions, 101 deletions
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 <http://www.gnu.org/licenses/>. */ -#include "baincomplexinstallerdialog.h"
-#include "textviewer.h"
-#include "ui_baincomplexinstallerdialog.h"
-
-#include <QDir>
-
-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<QListWidgetItem*> 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 <QDir> + +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<QListWidgetItem*> 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(); +} |
