GUI: add human readable names to exceptions tab
This commit is contained in:
		
							parent
							
								
									93794bf8cf
								
							
						
					
					
						commit
						515c08823e
					
				| 
						 | 
				
			
			@ -609,13 +609,38 @@ void SettingsDialog::UpdateExceptionListWidget()
 | 
			
		|||
{
 | 
			
		||||
    qSort(settings.exceptionFilters->begin(), settings.exceptionFilters->end(), ExceptionFilterLess());
 | 
			
		||||
    ui->listExceptions->clear();
 | 
			
		||||
 | 
			
		||||
    if(exceptionNames.empty() && DbgFunctions()->EnumExceptions)
 | 
			
		||||
    {
 | 
			
		||||
        BridgeList<CONSTANTINFO> exceptions;
 | 
			
		||||
        DbgFunctions()->EnumExceptions(&exceptions);
 | 
			
		||||
        for(int i = 0; i < exceptions.Count(); i++)
 | 
			
		||||
        {
 | 
			
		||||
            exceptionNames.insert({exceptions[i].value, exceptions[i].name});
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    for(int i = 0; i < settings.exceptionFilters->size(); i++)
 | 
			
		||||
    {
 | 
			
		||||
        const ExceptionFilter & filter = settings.exceptionFilters->at(i);
 | 
			
		||||
        if(filter.range.start == 0 && filter.range.start == filter.range.end)
 | 
			
		||||
            ui->listExceptions->addItem(QString("Unknown exceptions"));
 | 
			
		||||
        else
 | 
			
		||||
            ui->listExceptions->addItem(QString().asprintf("%.8X-%.8X", filter.range.start, filter.range.end));
 | 
			
		||||
        {
 | 
			
		||||
            const bool bSingleItemRange = filter.range.start == filter.range.end;
 | 
			
		||||
            if(!bSingleItemRange)
 | 
			
		||||
            {
 | 
			
		||||
                ui->listExceptions->addItem(QString().asprintf("%.8X-%.8X", filter.range.start, filter.range.end));
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                auto found = exceptionNames.find(filter.range.start);
 | 
			
		||||
                if(found == exceptionNames.end())
 | 
			
		||||
                    ui->listExceptions->addItem(QString().asprintf("%.8X", filter.range.start));
 | 
			
		||||
                else
 | 
			
		||||
                    ui->listExceptions->addItem(QString().asprintf("%.8X\n  %s", filter.range.start, found->second));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -250,6 +250,7 @@ private:
 | 
			
		|||
    Ui::SettingsDialog* ui;
 | 
			
		||||
    SettingsStruct settings;
 | 
			
		||||
    QList<ExceptionFilter> realExceptionFilters;
 | 
			
		||||
    std::unordered_map<duint, const char*> exceptionNames;
 | 
			
		||||
    bool bJitOld;
 | 
			
		||||
    bool bJitAutoOld;
 | 
			
		||||
    bool bGuiOptionsUpdated;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue