aboutsummaryrefslogtreecommitdiffstats
path: root/src/shared
diff options
context:
space:
mode:
authorEike Ziller <[email protected]>2011-11-25 09:48:25 +0100
committerEike Ziller <[email protected]>2011-11-25 09:48:25 +0100
commite2b0835b58aefdab91edda097c1180dae08058f6 (patch)
tree5c26a165c4956d87b3d9cc5568b590276541f5e0 /src/shared
parent84aa93c2bbdd4b9e9bb84df78261abd343c07471 (diff)
parent7ff81c435af06179fd64147a72f55e884e299cef (diff)
Merge remote-tracking branch 'origin/2.4'
Conflicts: qtcreator.pri src/libs/qmljs/qmljstypedescriptionreader.cpp src/plugins/analyzerbase/startremotedialog.ui src/plugins/qmldesigner/designercore/include/rewriterview.h src/plugins/qt4projectmanager/makestep.cpp Change-Id: If9d15a8c8f73106585fd8ce6ac47c253a40af6b1
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/qrceditor/qrceditor.cpp1
-rw-r--r--src/shared/qrceditor/resourcefile.cpp29
-rw-r--r--src/shared/qrceditor/resourcefile_p.h1
-rw-r--r--src/shared/qrceditor/resourceview.cpp5
-rw-r--r--src/shared/qrceditor/resourceview.h1
5 files changed, 27 insertions, 10 deletions
diff --git a/src/shared/qrceditor/qrceditor.cpp b/src/shared/qrceditor/qrceditor.cpp
index 8ac36dc299c..82751b81583 100644
--- a/src/shared/qrceditor/qrceditor.cpp
+++ b/src/shared/qrceditor/qrceditor.cpp
@@ -417,6 +417,7 @@ void QrcEditor::onAddFiles()
: m_treeview->model()->parent(current).row();
int const cursorFileArrayIndex = currentIsPrefixNode ? 0 : current.row();
QStringList fileNames = m_treeview->fileNamesToAdd();
+ fileNames = m_treeview->existingFilesSubtracted(prefixArrayIndex, fileNames);
resolveLocationIssues(fileNames);
if (fileNames.isEmpty())
return;
diff --git a/src/shared/qrceditor/resourcefile.cpp b/src/shared/qrceditor/resourcefile.cpp
index 9b2466c8b96..9699632b462 100644
--- a/src/shared/qrceditor/resourcefile.cpp
+++ b/src/shared/qrceditor/resourcefile.cpp
@@ -793,36 +793,45 @@ QModelIndex ResourceModel::addFiles(const QModelIndex &model_idx, const QStringL
return index(lastFileArrayIndex, 0, prefixModelIndex);
}
+QStringList ResourceModel::existingFilesSubtracted(int prefixIndex, const QStringList &fileNames) const
+{
+ const QModelIndex prefixModelIdx = index(prefixIndex, 0, QModelIndex());
+ QStringList uniqueList;
+
+ if (prefixModelIdx.isValid()) {
+ foreach (const QString &file, fileNames) {
+ if (!m_resource_file.contains(prefixIndex, file) && !uniqueList.contains(file))
+ uniqueList.append(file);
+ }
+ }
+ return uniqueList;
+}
+
void ResourceModel::addFiles(int prefixIndex, const QStringList &fileNames, int cursorFile,
int &firstFile, int &lastFile)
{
Q_UNUSED(cursorFile)
const QModelIndex prefix_model_idx = index(prefixIndex, 0, QModelIndex());
- const QStringList &file_list = fileNames;
firstFile = -1;
lastFile = -1;
if (!prefix_model_idx.isValid()) {
return;
}
- const int prefix_idx = prefixIndex;
- QStringList unique_list;
- foreach (const QString &file, file_list) {
- if (!m_resource_file.contains(prefix_idx, file) && !unique_list.contains(file))
- unique_list.append(file);
- }
+ QStringList unique_list = existingFilesSubtracted(prefixIndex, fileNames);
if (unique_list.isEmpty()) {
return;
}
- const int cnt = m_resource_file.fileCount(prefix_idx);
+
+ const int cnt = m_resource_file.fileCount(prefixIndex);
beginInsertRows(prefix_model_idx, cnt, cnt + unique_list.count() - 1); // ### FIXME
foreach (const QString &file, unique_list)
- m_resource_file.addFile(prefix_idx, file);
+ m_resource_file.addFile(prefixIndex, file);
- const QFileInfo fi(file_list.last());
+ const QFileInfo fi(unique_list.last());
m_lastResourceDir = fi.absolutePath();
endInsertRows();
diff --git a/src/shared/qrceditor/resourcefile_p.h b/src/shared/qrceditor/resourcefile_p.h
index 4ae20763090..ebcde729d8d 100644
--- a/src/shared/qrceditor/resourcefile_p.h
+++ b/src/shared/qrceditor/resourcefile_p.h
@@ -216,6 +216,7 @@ public:
virtual QModelIndex addNewPrefix();
virtual QModelIndex addFiles(const QModelIndex &idx, const QStringList &file_list);
+ QStringList existingFilesSubtracted(int prefixIndex, const QStringList &fileNames) const;
void addFiles(int prefixIndex, const QStringList &fileNames, int cursorFile, int &firstFile, int &lastFile);
void insertPrefix(int prefixIndex, const QString &prefix, const QString &lang);
void insertFile(int prefixIndex, int fileIndex, const QString &fileName, const QString &alias);
diff --git a/src/shared/qrceditor/resourceview.cpp b/src/shared/qrceditor/resourceview.cpp
index 07fd1f36b38..4437a7fad5e 100644
--- a/src/shared/qrceditor/resourceview.cpp
+++ b/src/shared/qrceditor/resourceview.cpp
@@ -305,6 +305,11 @@ EntryBackup * ResourceView::removeEntry(const QModelIndex &index)
return m_qrcModel->removeEntry(index);
}
+QStringList ResourceView::existingFilesSubtracted(int prefixIndex, const QStringList &fileNames) const
+{
+ return m_qrcModel->existingFilesSubtracted(prefixIndex, fileNames);
+}
+
void ResourceView::addFiles(int prefixIndex, const QStringList &fileNames, int cursorFile,
int &firstFile, int &lastFile)
{
diff --git a/src/shared/qrceditor/resourceview.h b/src/shared/qrceditor/resourceview.h
index a00afd95a47..5b8a458fa9b 100644
--- a/src/shared/qrceditor/resourceview.h
+++ b/src/shared/qrceditor/resourceview.h
@@ -117,6 +117,7 @@ public:
void findSamePlacePostDeletionModelIndex(int &row, QModelIndex &parent) const;
EntryBackup *removeEntry(const QModelIndex &index);
+ QStringList existingFilesSubtracted(int prefixIndex, const QStringList &fileNames) const;
void addFiles(int prefixIndex, const QStringList &fileNames, int cursorFile,
int &firstFile, int &lastFile);
void removeFiles(int prefixIndex, int firstFileIndex, int lastFileIndex);