summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTannin <devnull@localhost>2014-07-17 20:04:22 +0200
committerTannin <devnull@localhost>2014-07-17 20:04:22 +0200
commit4e5a67fc063243c4c10e04b5f601108dd01357f3 (patch)
treee327a00a93b6d72c286830a7769cd7be9b15e3f0
parent67b0268e700072b9ee273a40251b422a8f55c3ba (diff)
- bugfix: broke qt4 compatibility in trying to support qt5
- bugfix: overwrite dialog displayed system drives if the overwrite directory didn't exist - bugfix: ini tweak activation wasn't saved
-rw-r--r--src/mainwindow.cpp20
-rw-r--r--src/modinfodialog.cpp2
-rw-r--r--src/overwriteinfodialog.cpp18
-rw-r--r--src/overwriteinfodialog.h2
-rw-r--r--src/shared/directoryentry.cpp2
5 files changed, 30 insertions, 14 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 8287b93d..1936bdb1 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -3174,14 +3174,20 @@ void MainWindow::displayModInformation(ModInfo::Ptr modInfo, unsigned int index,
std::vector<ModInfo::EFlag> flags = modInfo->getFlags();
if (std::find(flags.begin(), flags.end(), ModInfo::FLAG_OVERWRITE) != flags.end()) {
QDialog *dialog = this->findChild<QDialog*>("__overwriteDialog");
- if (dialog == NULL) {
- dialog = new OverwriteInfoDialog(modInfo, this);
- dialog->setObjectName("__overwriteDialog");
+ try {
+ if (dialog == NULL) {
+ dialog = new OverwriteInfoDialog(modInfo, this);
+ dialog->setObjectName("__overwriteDialog");
+ } else {
+ qobject_cast<OverwriteInfoDialog*>(dialog)->setModInfo(modInfo);
+ }
+ dialog->show();
+ dialog->raise();
+ dialog->activateWindow();
+ connect(dialog, SIGNAL(finished(int)), this, SLOT(overwriteClosed(int)));
+ } catch (const std::exception &e) {
+ reportError(tr("Failed to display overwrite dialog: %1").arg(e.what()));
}
- dialog->show();
- dialog->raise();
- dialog->activateWindow();
- connect(dialog, SIGNAL(finished(int)), this, SLOT(overwriteClosed(int)));
} else {
modInfo->saveMeta();
ModInfoDialog dialog(modInfo, m_DirectoryStructure, modInfo->hasFlag(ModInfo::FLAG_FOREIGN), this);
diff --git a/src/modinfodialog.cpp b/src/modinfodialog.cpp
index db6c7123..b18dc58c 100644
--- a/src/modinfodialog.cpp
+++ b/src/modinfodialog.cpp
@@ -101,11 +101,11 @@ ModInfoDialog::ModInfoDialog(ModInfo::Ptr modInfo, const DirectoryEntry *directo
ui->tabWidget->setTabEnabled(TAB_NOTES, false);
} else {
initFiletree(modInfo);
- initINITweaks();
addCategories(CategoryFactory::instance(), modInfo->getCategories(), ui->categoriesTree->invisibleRootItem(), 0);
refreshPrimaryCategoriesBox();
}
refreshLists();
+ initINITweaks();
ui->tabWidget->setTabEnabled(TAB_TEXTFILES, ui->textFileList->count() != 0);
ui->tabWidget->setTabEnabled(TAB_IMAGES, ui->thumbnailArea->count() != 0);
diff --git a/src/overwriteinfodialog.cpp b/src/overwriteinfodialog.cpp
index 2ba81633..16242506 100644
--- a/src/overwriteinfodialog.cpp
+++ b/src/overwriteinfodialog.cpp
@@ -72,19 +72,17 @@ private:
OverwriteInfoDialog::OverwriteInfoDialog(ModInfo::Ptr modInfo, QWidget *parent)
: QDialog(parent), ui(new Ui::OverwriteInfoDialog), m_FileSystemModel(NULL),
- m_DeleteAction(NULL), m_RenameAction(NULL), m_OpenAction(NULL),
- m_ModInfo(modInfo)
+ m_DeleteAction(NULL), m_RenameAction(NULL), m_OpenAction(NULL)
{
ui->setupUi(this);
this->setWindowModality(Qt::NonModal);
- QString path = modInfo->absolutePath();
m_FileSystemModel = new MyFileSystemModel(this);
m_FileSystemModel->setReadOnly(false);
- m_FileSystemModel->setRootPath(path);
+ setModInfo(modInfo);
ui->filesView->setModel(m_FileSystemModel);
- ui->filesView->setRootIndex(m_FileSystemModel->index(path));
+ ui->filesView->setRootIndex(m_FileSystemModel->index(modInfo->absolutePath()));
ui->filesView->setColumnWidth(0, 250);
m_DeleteAction = new QAction(tr("&Delete"), ui->filesView);
@@ -102,6 +100,16 @@ OverwriteInfoDialog::~OverwriteInfoDialog()
delete ui;
}
+void OverwriteInfoDialog::setModInfo(ModInfo::Ptr modInfo)
+{
+ m_ModInfo = modInfo;
+ if (QDir(modInfo->absolutePath()).exists()) {
+ m_FileSystemModel->setRootPath(modInfo->absolutePath());
+ } else {
+ throw MyException(tr("%1 not found").arg(modInfo->absolutePath()));
+ }
+}
+
bool OverwriteInfoDialog::recursiveDelete(const QModelIndex &index)
{
for (int childRow = 0; childRow < m_FileSystemModel->rowCount(index); ++childRow) {
diff --git a/src/overwriteinfodialog.h b/src/overwriteinfodialog.h
index 34e86219..0726f1f9 100644
--- a/src/overwriteinfodialog.h
+++ b/src/overwriteinfodialog.h
@@ -39,6 +39,8 @@ public:
ModInfo::Ptr modInfo() const { return m_ModInfo; }
+ void setModInfo(ModInfo::Ptr modInfo);
+
private:
void openFile(const QModelIndex &index);
diff --git a/src/shared/directoryentry.cpp b/src/shared/directoryentry.cpp
index 87431ea8..aead0cca 100644
--- a/src/shared/directoryentry.cpp
+++ b/src/shared/directoryentry.cpp
@@ -499,7 +499,7 @@ static bool SupportOptimizedFind()
::VerSetConditionMask(0, VER_MAJORVERSION, VER_GREATER_EQUAL),
VER_MINORVERSION, VER_GREATER_EQUAL);
- bool res = ::VerifyVersionInfo(&versionInfo, VER_MAJORVERSION | VER_MINORVERSION, mask);
+ bool res = ::VerifyVersionInfo(&versionInfo, VER_MAJORVERSION | VER_MINORVERSION, mask) == TRUE;
return res;
}