"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "src/MainFormDlgImpl.cpp" between
MP3Diags-unstable-1.3.04.tar.gz and MP3Diags-unstable-1.5.01.tar.gz

About: MP3 Diags finds problems in MP3 files and helps the user to fix many of them (with a GUI). Also includes a tag editor and a file renamer.

MainFormDlgImpl.cpp  (MP3Diags-unstable-1.3.04):MainFormDlgImpl.cpp  (MP3Diags-unstable-1.5.01)
skipping to change at line 420 skipping to change at line 420
} }
//ttt2 add checkbox to uninst on wnd to remove data and settings; //ttt2 uninst should remove log file as well, including the file created when "debug/log trans f" is turned on //ttt2 add checkbox to uninst on wnd to remove data and settings; //ttt2 uninst should remove log file as well, including the file created when "debug/log trans f" is turned on
//static QString s_strAssertTitle ("Assertion failure"); //static QString s_strAssertTitle ("Assertion failure");
//static QString s_strCrashWarnTitle ("Crash detected"); //static QString s_strCrashWarnTitle ("Crash detected");
static QString s_qstrErrorMsg; static QString s_qstrErrorMsg;
static bool s_bMainAssertOut; static bool s_bMainAssertOut;
static QString g_qstrCrashMail ("<a href=\"mailto:mp3diags@gmail.com?subject=000 MP3 Diags crash/\">mp3diags@gmail.com</a>"); static QString g_qstrCrashMail ("<a href=\"mailto:mp3diags@gmail.com?subject=000 MP3 Diags crash/\">mp3diags@gmail.com</a>");
static QString g_qstrSupportMail ("<a href=\"mailto:mp3diags@gmail.com?subject=0 00 MP3 Diags support note/\">mp3diags@gmail.com</a>"); static QString g_qstrSupportMail ("<a href=\"mailto:mp3diags@gmail.com?subject=0 00 MP3 Diags support note/\">mp3diags@gmail.com</a>");
static QString g_qstrBugReport ("<a href=\"http://sourceforge.net/apps/mantisbt/ mp3diags/\">http://sourceforge.net/apps/mantisbt/mp3diags/</a>"); static QString g_qstrBugReport ("<a href=\"http://sourceforge.net/apps/mantisbt/ mp3diags/\">http://sourceforge.net/apps/mantisbt/mp3diags/</a>");//ttt0 replace mantis references
static void showAssertMsg(QWidget* pParent) static void showAssertMsg(QWidget* pParent)
{ {
HtmlMsg::msg(pParent, 0, 0, 0, HtmlMsg::SHOW_SYS_INFO, MainFormDlgImpl::tr(" Assertion failure"), HtmlMsg::msg(pParent, 0, 0, 0, HtmlMsg::SHOW_SYS_INFO, MainFormDlgImpl::tr(" Assertion failure"),
Qt::escape(s_qstrErrorMsg) + s_qstrErrorMsg.toHtmlEscaped() +
"<p style=\"margin-bottom:1px; margin-top:12px; \">" + "<p style=\"margin-bottom:1px; margin-top:12px; \">" +
( (
s_fileTracer.getStepFiles().empty() ? s_fileTracer.getStepFiles().empty() ?
MainFormDlgImpl::tr("Plese report this problem to the projec t's Issue Tracker at %1").arg(g_qstrBugReport) : MainFormDlgImpl::tr("Plese report this problem to the projec t's Issue Tracker at %1").arg(g_qstrBugReport) :
MainFormDlgImpl::tr("Please restart the application for inst ructions about how to report this issue") MainFormDlgImpl::tr("Please restart the application for inst ructions about how to report this issue")
) + ) +
"</p>", "</p>",
750, 300, MainFormDlgImpl::tr("Exit")); 750, 300, MainFormDlgImpl::tr("Exit"));
} }
skipping to change at line 806 skipping to change at line 806
QString qstrFiles ("<p style=\"margin-bottom:8px; margin-top :1px; \">" + tr("MP3 Diags is restarting after a crash.")); QString qstrFiles ("<p style=\"margin-bottom:8px; margin-top :1px; \">" + tr("MP3 Diags is restarting after a crash."));
switch (v.size()) switch (v.size())
{ {
case 1: case 1:
qstrFiles += tr("Information in the file %1%5%2 may help identify the cause of the crash so please make it available to the develope r by mailing it to %3, by reporting an issue to the project's Issue Tracker at % 4 and attaching the files to the report, or by some other means (like putting it on a file sharing site.)", "%1 and %2 are HTML elements") qstrFiles += tr("Information in the file %1%5%2 may help identify the cause of the crash so please make it available to the develope r by mailing it to %3, by reporting an issue to the project's Issue Tracker at % 4 and attaching the files to the report, or by some other means (like putting it on a file sharing site.)", "%1 and %2 are HTML elements")
.arg("<b>") .arg("<b>")
.arg("</b>") .arg("</b>")
.arg(g_qstrCrashMail) .arg(g_qstrCrashMail)
.arg(g_qstrBugReport) .arg(g_qstrBugReport)
.arg(Qt::escape(toNativeSeparators(convStr(v[0]) ))); .arg(toNativeSeparators(convStr(v[0])).toHtmlEsc aped());
break; break;
case 2: case 2:
qstrFiles += tr("Information in the files %1%5%2 and %1% 6%2 may help identify the cause of the crash so please make them available to th e developer by mailing them to %3, by reporting an issue to the project's Issue Tracker at %4 and attaching the files to the report, or by some other means (lik e putting them on a file sharing site.)", "%1 and %2 are HTML elements") qstrFiles += tr("Information in the files %1%5%2 and %1% 6%2 may help identify the cause of the crash so please make them available to th e developer by mailing them to %3, by reporting an issue to the project's Issue Tracker at %4 and attaching the files to the report, or by some other means (lik e putting them on a file sharing site.)", "%1 and %2 are HTML elements")
.arg("<b>") .arg("<b>")
.arg("</b>") .arg("</b>")
.arg(g_qstrCrashMail) .arg(g_qstrCrashMail)
.arg(g_qstrBugReport) .arg(g_qstrBugReport)
.arg(Qt::escape(toNativeSeparators(convStr(v[0]) .arg(toNativeSeparators(convStr(v[0])).toHtmlEsc
))) aped())
.arg(Qt::escape(toNativeSeparators(convStr(v[1]) .arg(toNativeSeparators(convStr(v[1])).toHtmlEsc
))); aped());
break; break;
case 3: case 3:
qstrFiles += tr("Information in the files %1%5%2, %1%6%2 , and %1%7%2 may help identify the cause of the crash so please make them availa ble to the developer by mailing them to %3, by reporting an issue to the project 's Issue Tracker at %4 and attaching the files to the report, or by some other m eans (like putting them on a file sharing site.)", "%1 and %2 are HTML elements" ) qstrFiles += tr("Information in the files %1%5%2, %1%6%2 , and %1%7%2 may help identify the cause of the crash so please make them availa ble to the developer by mailing them to %3, by reporting an issue to the project 's Issue Tracker at %4 and attaching the files to the report, or by some other m eans (like putting them on a file sharing site.)", "%1 and %2 are HTML elements" )
.arg("<b>") .arg("<b>")
.arg("</b>") .arg("</b>")
.arg(g_qstrCrashMail) .arg(g_qstrCrashMail)
.arg(g_qstrBugReport) .arg(g_qstrBugReport)
.arg(Qt::escape(toNativeSeparators(convStr(v[0]) .arg(toNativeSeparators(convStr(v[0])).toHtmlEsc
))) aped())
.arg(Qt::escape(toNativeSeparators(convStr(v[1]) .arg(toNativeSeparators(convStr(v[1])).toHtmlEsc
))) aped())
.arg(Qt::escape(toNativeSeparators(convStr(v[2]) .arg(toNativeSeparators(convStr(v[2])).toHtmlEsc
))); aped());
break; break;
} }
qstrFiles += " </p>"; qstrFiles += " </p>";
showRestartAfterCrashMsg(qstrFiles + showRestartAfterCrashMsg(qstrFiles +
"<p style=\"margin-bottom:8px; marg in-top:1px; \">" + tr("These are plain text files, which you can review before s ending, if you have privacy concerns.") + "</p>" "<p style=\"margin-bottom:8px; marg in-top:1px; \">" + tr("These are plain text files, which you can review before s ending, if you have privacy concerns.") + "</p>"
"<p style=\"margin-bottom:8px; marg in-top:1px; \">" + tr("After getting the files, the developer will probably want to contact you for more details, so please check back on the status of your rep ort.") + "</p>" "<p style=\"margin-bottom:8px; marg in-top:1px; \">" + tr("After getting the files, the developer will probably want to contact you for more details, so please check back on the status of your rep ort.") + "</p>"
"<p style=\"margin-bottom:8px; marg in-top:1px; \">" + tr("Note that these files <b>will be removed</b> when you clo se this window.") + "</p>" + "<p style=\"margin-bottom:8px; marg in-top:1px; \">" + tr("Note that these files <b>will be removed</b> when you clo se this window.") + "</p>" +
(m_pCommonData->isTraceToFileEnable d() ? (m_pCommonData->isTraceToFileEnable d() ?
"<p style=\"margin-bottom:8px; margin-top:1px; \">" + tr("If there is a name of an MP3 file at the end of <b>% 1</b>, that might be a file that consistently causes a crash. Please check if it is so. Then, if confirmed, please make that file available by mailing it to %2 or by putting it on a file sharing site.").arg(Qt::escape(toNativeSeparators(con vStr(v[0])))).arg(g_qstrCrashMail) + "</p>" : "<p style=\"margin-bottom:8px; margin-top:1px; \">" + tr("If there is a name of an MP3 file at the end of <b>% 1</b>, that might be a file that consistently causes a crash. Please check if it is so. Then, if confirmed, please make that file available by mailing it to %2 or by putting it on a file sharing site.").arg(toNativeSeparators(convStr(v[0])) ).toHtmlEscaped().arg(g_qstrCrashMail) + "</p>" :
"<p style=\"margin-bottom:8px; margin-top:1px; \">" + tr("Please also try to <b>repeat the steps that led to t he crash</b> before reporting the crash, which will probably result in a new set of files being generated; these files are more likely to contain relevant infor mation than the current set of files, because they will also have information on what happened before the crash, while the current files only tell where the cra sh occured.") + "</p>" "<p style=\"margin-bottom:8px; margin-top:1px; \">" + tr("Please also try to <b>repeat the steps that led to t he crash</b> before reporting the crash, which will probably result in a new set of files being generated; these files are more likely to contain relevant infor mation than the current set of files, because they will also have information on what happened before the crash, while the current files only tell where the cra sh occured.") + "</p>"
) )
+ "<p style=\"margin-bottom:8px; ma rgin-top:1px; \">" + tr("You should include in your report any other details tha t seem relevant (what might have caused the failure, steps to reproduce it, ...) ") + "</p>", tr("Remove these files and continue")); + "<p style=\"margin-bottom:8px; ma rgin-top:1px; \">" + tr("You should include in your report any other details tha t seem relevant (what might have caused the failure, steps to reproduce it, ...) ") + "</p>", tr("Remove these files and continue"));
} }
else else
{ {
showRestartAfterCrashMsg("<p style=\"margin-bottom:8px; marg in-top:1px; \">" + tr("MP3 Diags is restarting after a crash. There was supposed to be some information about what led to the crash in the file <b>%1</b>, but t hat file cannot be found. Please report this issue to the project's Issue Tracke r at %2.").arg(Qt::escape(toNativeSeparators(convStr(s_fileTracer.getTraceFile() )))).arg(g_qstrBugReport) + "</p>" showRestartAfterCrashMsg("<p style=\"margin-bottom:8px; marg in-top:1px; \">" + tr("MP3 Diags is restarting after a crash. There was supposed to be some information about what led to the crash in the file <b>%1</b>, but t hat file cannot be found. Please report this issue to the project's Issue Tracke r at %2.").arg(toNativeSeparators(convStr(s_fileTracer.getTraceFile())).toHtmlEs caped()).arg(g_qstrBugReport) + "</p>"
+ "<p style=\"margin-bottom:8px; ma rgin-top:1px; \">" + tr("The developer will probably want to contact you for mor e details, so please check back on the status of your report.</p><p style=\"marg in-bottom:8px; margin-top:1px; \">Make sure to include the data below, as well a s any other detail that seems relevant (what might have caused the failure, step s to reproduce it, ...)") + "</p>", "OK"); + "<p style=\"margin-bottom:8px; ma rgin-top:1px; \">" + tr("The developer will probably want to contact you for mor e details, so please check back on the status of your report.</p><p style=\"marg in-bottom:8px; margin-top:1px; \">Make sure to include the data below, as well a s any other detail that seems relevant (what might have caused the failure, step s to reproduce it, ...)") + "</p>", "OK");
} }
} }
if (!m_pCommonData->isTraceToFileEnabled()) if (!m_pCommonData->isTraceToFileEnabled())
{ {
showRestartAfterCrashMsg("<p style=\"margin-bottom:8px; margin-t op:1px; \">" + tr("MP3 Diags is restarting after a crash. To help determine the reason for the crash, the <i>Log program state to _trace and _step files</i> opt ion has been activated. This logs to 3 files what the program is doing, which mi ght make it slightly slower.") + "</p><p style=\"margin-bottom:8px; margin-top:1 px; \">" + tr("It is recommended to not process more than several thousand MP3 f iles while this option is turned on. You can turn it off manually, in the config uration dialog, in the <i>Others</i> tab, but keeping it turned on may provide v ery useful feedback to the developer, should the program crash again. With this feedback, future versions of MP3 Diags will get closer to being bug free.") + "< /p>", "OK"); showRestartAfterCrashMsg("<p style=\"margin-bottom:8px; margin-t op:1px; \">" + tr("MP3 Diags is restarting after a crash. To help determine the reason for the crash, the <i>Log program state to _trace and _step files</i> opt ion has been activated. This logs to 3 files what the program is doing, which mi ght make it slightly slower.") + "</p><p style=\"margin-bottom:8px; margin-top:1 px; \">" + tr("It is recommended to not process more than several thousand MP3 f iles while this option is turned on. You can turn it off manually, in the config uration dialog, in the <i>Others</i> tab, but keeping it turned on may provide v ery useful feedback to the developer, should the program crash again. With this feedback, future versions of MP3 Diags will get closer to being bug free.") + "< /p>", "OK");
m_pCommonData->setTraceToFile(true); m_pCommonData->setTraceToFile(true);
m_settings.saveMiscConfigSettings(m_pCommonData); m_settings.saveMiscConfigSettings(m_pCommonData);
skipping to change at line 892 skipping to change at line 892
m_pFilesG->setModel(m_pCommonData->m_pFilesModel); m_pFilesG->setModel(m_pCommonData->m_pFilesModel);
FilesGDelegate* pDel (new FilesGDelegate(m_pCommonData, m_pFilesG)); FilesGDelegate* pDel (new FilesGDelegate(m_pCommonData, m_pFilesG));
m_pFilesG->setItemDelegate(pDel); m_pFilesG->setItemDelegate(pDel);
m_pFilesG->setHorizontalHeader(new FileHeaderView(m_pCommonData, m_pFile sG)); m_pFilesG->setHorizontalHeader(new FileHeaderView(m_pCommonData, m_pFile sG));
m_pFilesG->horizontalHeader()->setMinimumSectionSize(CELL_WIDTH); m_pFilesG->horizontalHeader()->setMinimumSectionSize(CELL_WIDTH);
m_pFilesG->verticalHeader()->setMinimumSectionSize(CELL_HEIGHT); m_pFilesG->verticalHeader()->setMinimumSectionSize(CELL_HEIGHT);
m_pFilesG->verticalHeader()->setDefaultSectionSize(CELL_HEIGHT); m_pFilesG->verticalHeader()->setDefaultSectionSize(CELL_HEIGHT);
decreaseRowHeaderFont(*m_pFilesG);
connect(m_pFilesG->selectionModel(), SIGNAL(selectionChanged(const QItem Selection&, const QItemSelection&)), m_pCommonData->m_pFilesModel, SLOT(onFilesG SelChanged())); connect(m_pFilesG->selectionModel(), SIGNAL(selectionChanged(const QItem Selection&, const QItemSelection&)), m_pCommonData->m_pFilesModel, SLOT(onFilesG SelChanged()));
connect(m_pFilesG, SIGNAL(clicked(const QModelIndex &)), m_pCommonData-> m_pFilesModel, SLOT(onFilesGSelChanged())); connect(m_pFilesG, SIGNAL(clicked(const QModelIndex &)), m_pCommonData-> m_pFilesModel, SLOT(onFilesGSelChanged()));
m_pFilesG->horizontalHeader()->setDefaultSectionSize(CELL_WIDTH); m_pFilesG->horizontalHeader()->setDefaultSectionSize(CELL_WIDTH);
m_pFilesG->verticalHeader()->setDefaultSectionSize(CELL_HEIGHT); m_pFilesG->verticalHeader()->setDefaultSectionSize(CELL_HEIGHT);
m_pFilesG->verticalHeader()->setDefaultAlignment(Qt::AlignRight | Qt::Al ignVCenter); m_pFilesG->verticalHeader()->setDefaultAlignment(Qt::AlignRight | Qt::Al ignVCenter);
connect(m_pCommonData->m_pFilesModel, SIGNAL(currentFileChanged()), this , SLOT(onCrtFileChanged())); connect(m_pCommonData->m_pFilesModel, SIGNAL(currentFileChanged()), this , SLOT(onCrtFileChanged()));
skipping to change at line 913 skipping to change at line 914
} }
{ {
m_pCommonData->m_pNotesModel = new NotesModel(m_pCommonData); m_pCommonData->m_pNotesModel = new NotesModel(m_pCommonData);
m_pNotesG->setModel(m_pCommonData->m_pNotesModel); m_pNotesG->setModel(m_pCommonData->m_pNotesModel);
NotesGDelegate* pNotesGDelegate = new NotesGDelegate(m_pCommonData); NotesGDelegate* pNotesGDelegate = new NotesGDelegate(m_pCommonData);
m_pNotesG->setItemDelegate(pNotesGDelegate); m_pNotesG->setItemDelegate(pNotesGDelegate);
m_pNotesG->horizontalHeader()->setMinimumSectionSize(CELL_WIDTH + 10); m_pNotesG->horizontalHeader()->setMinimumSectionSize(CELL_WIDTH + 10);
m_pNotesG->verticalHeader()->setMinimumSectionSize(CELL_HEIGHT);
m_pNotesG->verticalHeader()->setDefaultSectionSize(CELL_HEIGHT); /*QFont font (m_pNotesG->verticalHeader()->font());
auto sz(font.pointSizeF());
font.setPointSizeF(sz * 0.85);
m_pNotesG->verticalHeader()->setFont(font);*/
//m_pNotesG->verticalHeader()->setMinimumSectionSize(CELL_HEIGHT + 10);
//m_pNotesG->verticalHeader()->setDefaultSectionSize(CELL_HEIGHT + 10);
m_pNotesG->verticalHeader()->setMinimumSectionSize(CELL_HEIGHT);
m_pNotesG->verticalHeader()->setDefaultSectionSize(CELL_HEIGHT);
decreaseRowHeaderFont(*m_pNotesG);
m_pNotesG->verticalHeader()->setDefaultAlignment(Qt::AlignRight | Qt::Al ignVCenter); m_pNotesG->verticalHeader()->setDefaultAlignment(Qt::AlignRight | Qt::Al ignVCenter);
connect(m_pNotesG->selectionModel(), SIGNAL(selectionChanged(const QItem Selection&, const QItemSelection&)), m_pCommonData->m_pNotesModel, SLOT(onNotesG SelChanged())); connect(m_pNotesG->selectionModel(), SIGNAL(selectionChanged(const QItem Selection&, const QItemSelection&)), m_pCommonData->m_pNotesModel, SLOT(onNotesG SelChanged()));
connect(m_pNotesG, SIGNAL(clicked(const QModelIndex &)), m_pCommonData-> m_pNotesModel, SLOT(onNotesGSelChanged())); connect(m_pNotesG, SIGNAL(clicked(const QModelIndex &)), m_pCommonData-> m_pNotesModel, SLOT(onNotesGSelChanged()));
connect(m_pNotesG->horizontalHeader(), SIGNAL(sectionResized(int, int, i nt)), m_pNotesG, SLOT(resizeRowsToContents())); connect(m_pNotesG->horizontalHeader(), SIGNAL(sectionResized(int, int, i nt)), m_pNotesG, SLOT(resizeRowsToContents()));
} }
{ {
m_pCommonData->m_pStreamsModel = new StreamsModel(m_pCommonData); m_pCommonData->m_pStreamsModel = new StreamsModel(m_pCommonData);
m_pStreamsG->setModel(m_pCommonData->m_pStreamsModel); m_pStreamsG->setModel(m_pCommonData->m_pStreamsModel);
StreamsGDelegate* pStreamsGDelegate = new StreamsGDelegate(m_pCommonData ); StreamsGDelegate* pStreamsGDelegate = new StreamsGDelegate(m_pCommonData );
m_pStreamsG->setItemDelegate(pStreamsGDelegate); m_pStreamsG->setItemDelegate(pStreamsGDelegate);
m_pStreamsG->horizontalHeader()->setMinimumSectionSize(CELL_WIDTH + 10); m_pStreamsG->horizontalHeader()->setMinimumSectionSize(CELL_WIDTH + 10);
m_pStreamsG->verticalHeader()->setMinimumSectionSize(CELL_HEIGHT); m_pStreamsG->verticalHeader()->setMinimumSectionSize(CELL_HEIGHT);
m_pStreamsG->verticalHeader()->setDefaultSectionSize(CELL_HEIGHT); m_pStreamsG->verticalHeader()->setDefaultSectionSize(CELL_HEIGHT);
decreaseRowHeaderFont(*m_pStreamsG);
m_pStreamsG->verticalHeader()->setDefaultAlignment(Qt::AlignRight | Qt:: AlignVCenter); m_pStreamsG->verticalHeader()->setDefaultAlignment(Qt::AlignRight | Qt:: AlignVCenter);
connect(m_pStreamsG->selectionModel(), SIGNAL(selectionChanged(const QIt emSelection&, const QItemSelection&)), m_pCommonData->m_pStreamsModel, SLOT(onSt reamsGSelChanged())); connect(m_pStreamsG->selectionModel(), SIGNAL(selectionChanged(const QIt emSelection&, const QItemSelection&)), m_pCommonData->m_pStreamsModel, SLOT(onSt reamsGSelChanged()));
connect(m_pStreamsG, SIGNAL(clicked(const QModelIndex &)), m_pCommonData ->m_pStreamsModel, SLOT(onStreamsGSelChanged())); connect(m_pStreamsG, SIGNAL(clicked(const QModelIndex &)), m_pCommonData ->m_pStreamsModel, SLOT(onStreamsGSelChanged()));
connect(m_pStreamsG->horizontalHeader(), SIGNAL(sectionResized(int, int, int)), m_pStreamsG, SLOT(resizeRowsToContents())); connect(m_pStreamsG->horizontalHeader(), SIGNAL(sectionResized(int, int, int)), m_pStreamsG, SLOT(resizeRowsToContents()));
} }
{ {
m_pCommonData->m_pUniqueNotesModel = new UniqueNotesModel(m_pCommonData) ; m_pCommonData->m_pUniqueNotesModel = new UniqueNotesModel(m_pCommonData) ;
m_pUniqueNotesG->setModel(m_pCommonData->m_pUniqueNotesModel); m_pUniqueNotesG->setModel(m_pCommonData->m_pUniqueNotesModel);
UniqueNotesGDelegate* pDel = new UniqueNotesGDelegate(m_pCommonData); UniqueNotesGDelegate* pDel = new UniqueNotesGDelegate(m_pCommonData);
m_pUniqueNotesG->setItemDelegate(pDel); m_pUniqueNotesG->setItemDelegate(pDel);
m_pUniqueNotesG->horizontalHeader()->setMinimumSectionSize(CELL_WIDTH + 10); m_pUniqueNotesG->horizontalHeader()->setMinimumSectionSize(CELL_WIDTH + 10);
m_pUniqueNotesG->verticalHeader()->setMinimumSectionSize(CELL_HEIGHT); m_pUniqueNotesG->verticalHeader()->setMinimumSectionSize(CELL_HEIGHT);
m_pUniqueNotesG->verticalHeader()->setDefaultSectionSize(CELL_HEIGHT); m_pUniqueNotesG->verticalHeader()->setDefaultSectionSize(CELL_HEIGHT);
decreaseRowHeaderFont(*m_pUniqueNotesG);
m_pUniqueNotesG->verticalHeader()->setDefaultAlignment(Qt::AlignRight | Qt::AlignVCenter); m_pUniqueNotesG->verticalHeader()->setDefaultAlignment(Qt::AlignRight | Qt::AlignVCenter);
connect(m_pUniqueNotesG->horizontalHeader(), SIGNAL(sectionResized(int, int, int)), m_pUniqueNotesG, SLOT(resizeRowsToContents())); connect(m_pUniqueNotesG->horizontalHeader(), SIGNAL(sectionResized(int, int, int)), m_pUniqueNotesG, SLOT(resizeRowsToContents()));
} }
m_pTagDetailsLayout = new QHBoxLayout(m_pTagDetailsTab); m_pTagDetailsLayout = new QHBoxLayout(m_pTagDetailsTab);
m_pTagDetailsTab->setLayout(m_pTagDetailsLayout); m_pTagDetailsTab->setLayout(m_pTagDetailsLayout);
m_pTagDetailsW = new QWidget(m_pTagDetailsTab); m_pTagDetailsW = new QWidget(m_pTagDetailsTab);
skipping to change at line 1170 skipping to change at line 1181
} }
m_pCommonData->m_nMainWndIconSize = nIconSize; m_pCommonData->m_nMainWndIconSize = nIconSize;
{ {
if (nNotesGW0 < CELL_WIDTH + 8) { nNotesGW0 = CELL_WIDTH + 8; } if (nNotesGW0 < CELL_WIDTH + 8) { nNotesGW0 = CELL_WIDTH + 8; }
if (nNotesGW2 < 10) { nNotesGW2 = 65; } if (nNotesGW2 < 10) { nNotesGW2 = 65; }
m_pNotesG->horizontalHeader()->resizeSection(0, nNotesGW0); // ttt2 appa rently a call to resizeColumnsToContents() in NotesModel::updateCurrentNotes() s hould make columns 0 and 2 have the right size, but that's not the case at all; (see further notes there) m_pNotesG->horizontalHeader()->resizeSection(0, nNotesGW0); // ttt2 appa rently a call to resizeColumnsToContents() in NotesModel::updateCurrentNotes() s hould make columns 0 and 2 have the right size, but that's not the case at all; (see further notes there)
m_pNotesG->horizontalHeader()->resizeSection(2, nNotesGW2); m_pNotesG->horizontalHeader()->resizeSection(2, nNotesGW2);
m_pNotesG->horizontalHeader()->setResizeMode(1, QHeaderView::Stretch); m_pNotesG->horizontalHeader()->setSectionResizeMode(1, QHeaderView::Stre
//m_pNotesG->horizontalHeader()->setResizeMode(2, QHeaderView::Stretch); tch);
//m_pNotesG->horizontalHeader()->setSectionResizeMode(2, QHeaderView::St
retch);
} }
{ {
if (nStrmsGW0 < 10) { nStrmsGW0 = 80; } // ttt2 "80" hard-coded if (nStrmsGW0 < 10) { nStrmsGW0 = 80; } // ttt2 "80" hard-coded
if (nStrmsGW1 < 10) { nStrmsGW1 = 80; } if (nStrmsGW1 < 10) { nStrmsGW1 = 80; }
if (nStrmsGW2 < 10) { nStrmsGW2 = 80; } if (nStrmsGW2 < 10) { nStrmsGW2 = 80; }
if (nStrmsGW3 < 10) { nStrmsGW3 = 110; } if (nStrmsGW3 < 10) { nStrmsGW3 = 110; }
m_pStreamsG->horizontalHeader()->resizeSection(0, nStrmsGW0); m_pStreamsG->horizontalHeader()->resizeSection(0, nStrmsGW0);
m_pStreamsG->horizontalHeader()->resizeSection(1, nStrmsGW1); m_pStreamsG->horizontalHeader()->resizeSection(1, nStrmsGW1);
m_pStreamsG->horizontalHeader()->resizeSection(2, nStrmsGW2); m_pStreamsG->horizontalHeader()->resizeSection(2, nStrmsGW2);
m_pStreamsG->horizontalHeader()->resizeSection(3, nStrmsGW3); m_pStreamsG->horizontalHeader()->resizeSection(3, nStrmsGW3);
m_pStreamsG->horizontalHeader()->setResizeMode(4, QHeaderView::Stretch); m_pStreamsG->horizontalHeader()->setSectionResizeMode(4, QHeaderView::St retch);
} }
{ {
if (nUnotesGW0 < CELL_WIDTH + 8) { nUnotesGW0 = CELL_WIDTH + 8; } // ttt 2 replace CELL_WIDTH if (nUnotesGW0 < CELL_WIDTH + 8) { nUnotesGW0 = CELL_WIDTH + 8; } // ttt 2 replace CELL_WIDTH
m_pUniqueNotesG->horizontalHeader()->resizeSection(0, nUnotesGW0); m_pUniqueNotesG->horizontalHeader()->resizeSection(0, nUnotesGW0);
m_pUniqueNotesG->horizontalHeader()->setResizeMode(1, QHeaderView::Stret ch); m_pUniqueNotesG->horizontalHeader()->setSectionResizeMode(1, QHeaderView ::Stretch);
} }
{ {
if (!stateMainSpl.isNull()) if (!stateMainSpl.isNull())
{ {
m_pMainSplitter->restoreState(stateMainSpl); m_pMainSplitter->restoreState(stateMainSpl);
} }
m_pMainSplitter->setOpaqueResize(false); m_pMainSplitter->setOpaqueResize(false);
if (!stateLwrSpl.isNull()) if (!stateLwrSpl.isNull())
skipping to change at line 3149 skipping to change at line 3160
vpAct.push_back(pAct); vpAct.push_back(pAct);
} }
QAction* p (menu.exec(QPoint(m_nGlobalX, m_nGlobalY + 10))); QAction* p (menu.exec(QPoint(m_nGlobalX, m_nGlobalY + 10)));
if (0 != p) if (0 != p)
{ {
int nIndex (std::find(vpAct.begin(), vpAct.end(), p) - vpAct.begin()); int nIndex (std::find(vpAct.begin(), vpAct.end(), p) - vpAct.begin());
//qDebug("pressed %d", nIndex); //qDebug("pressed %d", nIndex);
if (0 == nIndex) if (0 == nIndex)
{ {
CB_ASSERT (0 != m_pCommonData->getCrtMp3Handler()); //ttt0 triggered according to mail on 2015.03.07 CB_ASSERT (0 != m_pCommonData->getCrtMp3Handler()); //ttt0 triggered according to mail on 2015.03.07 // ttt0 2018.04.29 one way to toggle this is be in an empty folder (e.g. by starting from CLI)
QString qstrDir (convStr(m_pCommonData->getCrtMp3Handler()->getDir() )); QString qstrDir (convStr(m_pCommonData->getCrtMp3Handler()->getDir() ));
#if defined(WIN32) || defined(__OS2__) #if defined(WIN32) || defined(__OS2__)
//qstrDir = QDir::toNativeSeparators(qstrDir); //qstrDir = QDir::toNativeSeparators(qstrDir);
QDesktopServices::openUrl(QUrl("file:///" + qstrDir, QUrl::TolerantM ode)); QDesktopServices::openUrl(QUrl("file:///" + qstrDir, QUrl::TolerantM ode));
#else #else
QDesktopServices::openUrl(QUrl("file://" + qstrDir, QUrl::TolerantMo de)); QDesktopServices::openUrl(QUrl("file://" + qstrDir, QUrl::TolerantMo de));
#endif #endif
} }
else else
{ // ttt1 copied from void MainFormDlgImpl::transform(std::vector<Transf ormation*>& vpTransf, Subset eSubset) { // ttt1 copied from void MainFormDlgImpl::transform(std::vector<Transf ormation*>& vpTransf, Subset eSubset)
skipping to change at line 3413 skipping to change at line 3424
//ttt2 individual color for each note //ttt2 individual color for each note
//ttt2 copy ID3V2 to ID3V1 //ttt2 copy ID3V2 to ID3V1
//ttt2 start an older version and it shows errors about transforms not found, th en crashes; 2016.06.22: not sure anything can be done: the "transforms not found " are not relevant, and what matters is the ".dat" file, which causes a SIGSEGV rather than some (expected) serialization exception; since it's hard to tell wha t is messed up, it's probably better to not try to handle the signal, which caus es the program to crash and in turn triggers a rescan next time it's started; si nce both versions were built with the same libraries, the cause is probably fail ure to account for extra fields in the newer version (but still, this should pro bably have been serialization exception rather than segfault) //ttt2 start an older version and it shows errors about transforms not found, th en crashes; 2016.06.22: not sure anything can be done: the "transforms not found " are not relevant, and what matters is the ".dat" file, which causes a SIGSEGV rather than some (expected) serialization exception; since it's hard to tell wha t is messed up, it's probably better to not try to handle the signal, which caus es the program to crash and in turn triggers a rescan next time it's started; si nce both versions were built with the same libraries, the cause is probably fail ure to account for extra fields in the newer version (but still, this should pro bably have been serialization exception rather than segfault)
//ttt1 freedb.org //ttt1 freedb.org
//ttt1 https://sourceforge.net/p/mp3diags/discussion/947206/thread/cb3417ae/?lim it=25#ef4c/6e05 //ttt1 https://sourceforge.net/p/mp3diags/discussion/947206/thread/cb3417ae/?lim it=25#ef4c/6e05
//ttt0 blind accessible - https://sourceforge.net/p/mp3diags/tickets/3099/ //ttt0 blind accessible - https://sourceforge.net/p/mp3diags/tickets/3099/
//ttt0 symlinks not handled correctly when choosing dirs: select something on /d
and /video gets used; the issue is worse when you want to unselect: there is no
thing checked
//ttt0 https://sourceforge.net/p/mp3diags/tickets/3102/
//ttt0 simulate crash in opening the session dialog at startup to se what and wh
ere gets logged; see mail on 2017.02.14
//ttt0 make patterns accept "-" (see "/d/test_mp3/1/tmp2/crt_test/PatternTest/ar
tist1 - 2000 - alb1" and https://sourceforge.net/p/mp3diags/discussion/947206/th
read/3ca2d0f8/?limit=25#a622
//ttt1 <li><a href="https://tecnoarena.net/come-riparare-file-mp3-danneggiati-co
n-mp3-diags/">tecnoarena.net</a></li>
 End of changes. 16 change blocks. 
22 lines changed or deleted 35 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)