mirror of
				https://github.com/TES3MP/openmw-tes3mp.git
				synced 2025-11-04 00:26:45 +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
					
				
					 5 changed files with 9 additions and 24 deletions
				
			
		| 
						 | 
				
			
			@ -2,6 +2,7 @@
 | 
			
		|||
------
 | 
			
		||||
 | 
			
		||||
    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 #2987: Editor: some chance and AI data fields can overflow
 | 
			
		||||
    Bug #3006: 'else if' operator breaks script compilation
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -109,15 +109,14 @@ void Launcher::DataFilesPage::populateFileViews(const QString& contentModelName)
 | 
			
		|||
{
 | 
			
		||||
    QStringList paths = mGameSettings.getDataDirs();
 | 
			
		||||
 | 
			
		||||
    foreach(const QString &path, paths)
 | 
			
		||||
        mSelector->addFiles(path);
 | 
			
		||||
 | 
			
		||||
    mDataLocal = mGameSettings.getDataLocal();
 | 
			
		||||
 | 
			
		||||
    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);
 | 
			
		||||
 | 
			
		||||
    mSelector->setProfileContent(filesInProfile(contentModelName, pathIterator));
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -28,8 +28,6 @@ CS::Editor::Editor (int argc, char **argv)
 | 
			
		|||
 | 
			
		||||
    mViewManager = new CSVDoc::ViewManager(mDocumentManager);
 | 
			
		||||
 | 
			
		||||
    setupDataFiles (config.first);
 | 
			
		||||
 | 
			
		||||
    NifOsg::Loader::setShowMarkers(true);
 | 
			
		||||
 | 
			
		||||
    mDocumentManager.setFileData(mFsStrict, config.first, config.second);
 | 
			
		||||
| 
						 | 
				
			
			@ -79,15 +77,6 @@ CS::Editor::~Editor ()
 | 
			
		|||
        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)
 | 
			
		||||
{
 | 
			
		||||
    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());
 | 
			
		||||
 | 
			
		||||
    //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());
 | 
			
		||||
        mFileDialog.addFiles(path);
 | 
			
		||||
| 
						 | 
				
			
			@ -199,8 +188,7 @@ void CS::Editor::createAddon()
 | 
			
		|||
    mStartup.hide();
 | 
			
		||||
 | 
			
		||||
    mFileDialog.clearFiles();
 | 
			
		||||
    std::pair<Files::PathContainer, std::vector<std::string> > config = readConfig(/*quiet*/true);
 | 
			
		||||
    setupDataFiles (config.first);
 | 
			
		||||
    readConfig(/*quiet*/true);
 | 
			
		||||
 | 
			
		||||
    mFileDialog.showDialog (CSVDoc::ContentAction_New);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -224,8 +212,7 @@ void CS::Editor::loadDocument()
 | 
			
		|||
    mStartup.hide();
 | 
			
		||||
 | 
			
		||||
    mFileDialog.clearFiles();
 | 
			
		||||
    std::pair<Files::PathContainer, std::vector<std::string> > config = readConfig(/*quiet*/true);
 | 
			
		||||
    setupDataFiles (config.first);
 | 
			
		||||
    readConfig(/*quiet*/true);
 | 
			
		||||
 | 
			
		||||
    mFileDialog.showDialog (CSVDoc::ContentAction_Edit);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -55,8 +55,6 @@ namespace CS
 | 
			
		|||
            CSVTools::Merge mMerge;
 | 
			
		||||
            CSVDoc::ViewManager* mViewManager;
 | 
			
		||||
 | 
			
		||||
            void setupDataFiles (const Files::PathContainer& dataDirs);
 | 
			
		||||
 | 
			
		||||
            std::pair<Files::PathContainer, std::vector<std::string> > readConfig(bool quiet=false);
 | 
			
		||||
            ///< \return data paths
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -428,7 +428,7 @@ void ContentSelectorModel::ContentModel::addFiles(const QString &path)
 | 
			
		|||
    {
 | 
			
		||||
        QFileInfo info(dir.absoluteFilePath(path2));
 | 
			
		||||
 | 
			
		||||
        if (item(info.absoluteFilePath()) != 0)
 | 
			
		||||
        if (item(info.fileName()))
 | 
			
		||||
            continue;
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue