mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-03-17 10:21:11 +00:00
Merge pull request #2391 from Capostrophic/contentselector
Content selector: don't add file namesakes (bug #2395)
This commit is contained in:
commit
4fcbc1c96b
@ -2,6 +2,7 @@
|
|||||||
------
|
------
|
||||||
|
|
||||||
Bug #1515: Opening console masks dialogue, inventory menu
|
Bug #1515: Opening console masks dialogue, inventory menu
|
||||||
|
Bug #2395: Duplicated plugins in the launcher when multiple data directories provide the same plugin
|
||||||
Bug #2969: Scripted items can stack
|
Bug #2969: Scripted items can stack
|
||||||
Bug #2987: Editor: some chance and AI data fields can overflow
|
Bug #2987: Editor: some chance and AI data fields can overflow
|
||||||
Bug #3006: 'else if' operator breaks script compilation
|
Bug #3006: 'else if' operator breaks script compilation
|
||||||
|
@ -109,15 +109,14 @@ void Launcher::DataFilesPage::populateFileViews(const QString& contentModelName)
|
|||||||
{
|
{
|
||||||
QStringList paths = mGameSettings.getDataDirs();
|
QStringList paths = mGameSettings.getDataDirs();
|
||||||
|
|
||||||
foreach(const QString &path, paths)
|
|
||||||
mSelector->addFiles(path);
|
|
||||||
|
|
||||||
mDataLocal = mGameSettings.getDataLocal();
|
mDataLocal = mGameSettings.getDataLocal();
|
||||||
|
|
||||||
if (!mDataLocal.isEmpty())
|
if (!mDataLocal.isEmpty())
|
||||||
mSelector->addFiles(mDataLocal);
|
paths.insert(0, mDataLocal);
|
||||||
|
|
||||||
|
foreach(const QString &path, paths)
|
||||||
|
mSelector->addFiles(path);
|
||||||
|
|
||||||
paths.insert(0, mDataLocal);
|
|
||||||
PathIterator pathIterator(paths);
|
PathIterator pathIterator(paths);
|
||||||
|
|
||||||
mSelector->setProfileContent(filesInProfile(contentModelName, pathIterator));
|
mSelector->setProfileContent(filesInProfile(contentModelName, pathIterator));
|
||||||
|
@ -28,8 +28,6 @@ CS::Editor::Editor (int argc, char **argv)
|
|||||||
|
|
||||||
mViewManager = new CSVDoc::ViewManager(mDocumentManager);
|
mViewManager = new CSVDoc::ViewManager(mDocumentManager);
|
||||||
|
|
||||||
setupDataFiles (config.first);
|
|
||||||
|
|
||||||
NifOsg::Loader::setShowMarkers(true);
|
NifOsg::Loader::setShowMarkers(true);
|
||||||
|
|
||||||
mDocumentManager.setFileData(mFsStrict, config.first, config.second);
|
mDocumentManager.setFileData(mFsStrict, config.first, config.second);
|
||||||
@ -79,15 +77,6 @@ CS::Editor::~Editor ()
|
|||||||
remove(mPid.string().c_str())); // ignore any error
|
remove(mPid.string().c_str())); // ignore any error
|
||||||
}
|
}
|
||||||
|
|
||||||
void CS::Editor::setupDataFiles (const Files::PathContainer& dataDirs)
|
|
||||||
{
|
|
||||||
for (Files::PathContainer::const_iterator iter = dataDirs.begin(); iter != dataDirs.end(); ++iter)
|
|
||||||
{
|
|
||||||
QString path = QString::fromUtf8 (iter->string().c_str());
|
|
||||||
mFileDialog.addFiles(path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
std::pair<Files::PathContainer, std::vector<std::string> > CS::Editor::readConfig(bool quiet)
|
std::pair<Files::PathContainer, std::vector<std::string> > CS::Editor::readConfig(bool quiet)
|
||||||
{
|
{
|
||||||
boost::program_options::variables_map variables;
|
boost::program_options::variables_map variables;
|
||||||
@ -160,7 +149,7 @@ std::pair<Files::PathContainer, std::vector<std::string> > CS::Editor::readConfi
|
|||||||
dataDirs.insert (dataDirs.end(), dataLocal.begin(), dataLocal.end());
|
dataDirs.insert (dataDirs.end(), dataLocal.begin(), dataLocal.end());
|
||||||
|
|
||||||
//iterate the data directories and add them to the file dialog for loading
|
//iterate the data directories and add them to the file dialog for loading
|
||||||
for (Files::PathContainer::const_iterator iter = dataDirs.begin(); iter != dataDirs.end(); ++iter)
|
for (Files::PathContainer::const_reverse_iterator iter = dataDirs.rbegin(); iter != dataDirs.rend(); ++iter)
|
||||||
{
|
{
|
||||||
QString path = QString::fromUtf8 (iter->string().c_str());
|
QString path = QString::fromUtf8 (iter->string().c_str());
|
||||||
mFileDialog.addFiles(path);
|
mFileDialog.addFiles(path);
|
||||||
@ -199,8 +188,7 @@ void CS::Editor::createAddon()
|
|||||||
mStartup.hide();
|
mStartup.hide();
|
||||||
|
|
||||||
mFileDialog.clearFiles();
|
mFileDialog.clearFiles();
|
||||||
std::pair<Files::PathContainer, std::vector<std::string> > config = readConfig(/*quiet*/true);
|
readConfig(/*quiet*/true);
|
||||||
setupDataFiles (config.first);
|
|
||||||
|
|
||||||
mFileDialog.showDialog (CSVDoc::ContentAction_New);
|
mFileDialog.showDialog (CSVDoc::ContentAction_New);
|
||||||
}
|
}
|
||||||
@ -224,8 +212,7 @@ void CS::Editor::loadDocument()
|
|||||||
mStartup.hide();
|
mStartup.hide();
|
||||||
|
|
||||||
mFileDialog.clearFiles();
|
mFileDialog.clearFiles();
|
||||||
std::pair<Files::PathContainer, std::vector<std::string> > config = readConfig(/*quiet*/true);
|
readConfig(/*quiet*/true);
|
||||||
setupDataFiles (config.first);
|
|
||||||
|
|
||||||
mFileDialog.showDialog (CSVDoc::ContentAction_Edit);
|
mFileDialog.showDialog (CSVDoc::ContentAction_Edit);
|
||||||
}
|
}
|
||||||
|
@ -55,8 +55,6 @@ namespace CS
|
|||||||
CSVTools::Merge mMerge;
|
CSVTools::Merge mMerge;
|
||||||
CSVDoc::ViewManager* mViewManager;
|
CSVDoc::ViewManager* mViewManager;
|
||||||
|
|
||||||
void setupDataFiles (const Files::PathContainer& dataDirs);
|
|
||||||
|
|
||||||
std::pair<Files::PathContainer, std::vector<std::string> > readConfig(bool quiet=false);
|
std::pair<Files::PathContainer, std::vector<std::string> > readConfig(bool quiet=false);
|
||||||
///< \return data paths
|
///< \return data paths
|
||||||
|
|
||||||
|
@ -428,7 +428,7 @@ void ContentSelectorModel::ContentModel::addFiles(const QString &path)
|
|||||||
{
|
{
|
||||||
QFileInfo info(dir.absoluteFilePath(path2));
|
QFileInfo info(dir.absoluteFilePath(path2));
|
||||||
|
|
||||||
if (item(info.absoluteFilePath()) != 0)
|
if (item(info.fileName()))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user