1
0
Fork 0

Fix a bug when removing all favtools and then add 1 favtool old tools appear, save toolbar position

This commit is contained in:
torusrxxx 2020-09-28 16:33:32 +08:00 committed by Duncan Ogilvie
parent 3207b38f4b
commit ce2d9f1b67
2 changed files with 35 additions and 7 deletions

View File

@ -409,7 +409,8 @@ void FavouriteTools::on_btnClearShortcut_clicked()
void FavouriteTools::on_btnOK_clicked()
{
for(int i = 1; i <= ui->listTools->rowCount(); i++)
int i;
for(i = 1; i <= ui->listTools->rowCount(); i++)
{
BridgeSettingSet("Favourite", QString("Tool%1").arg(i).toUtf8().constData(), ui->listTools->item(i - 1, 0)->text().toUtf8().constData());
BridgeSettingSet("Favourite", QString("ToolShortcut%1").arg(i).toUtf8().constData(), ui->listTools->item(i - 1, 1)->text().toUtf8().constData());
@ -422,12 +423,17 @@ void FavouriteTools::on_btnOK_clicked()
BridgeSettingSet("Favourite", "ToolDescription1", "");
}
else
for(int i = ui->listTools->rowCount() + 1; i <= originalToolsCount; i++)
{
i = ui->listTools->rowCount() + 1;
do // Run this at least once to ensure no old tools can be brought to live
{
BridgeSettingSet("Favourite", QString("Tool%1").arg(i).toUtf8().constData(), "");
BridgeSettingSet("Favourite", QString("ToolShortcut%1").arg(i).toUtf8().constData(), "");
BridgeSettingSet("Favourite", QString("ToolDescription%1").arg(i).toUtf8().constData(), "");
i++;
}
while(i <= originalToolsCount);
}
for(int i = 1; i <= ui->listScript->rowCount(); i++)
{
BridgeSettingSet("Favourite", QString("Script%1").arg(i).toUtf8().constData(), ui->listScript->item(i - 1, 0)->text().toUtf8().constData());
@ -441,12 +447,17 @@ void FavouriteTools::on_btnOK_clicked()
BridgeSettingSet("Favourite", "ScriptDescription1", "");
}
else
for(int i = ui->listScript->rowCount() + 1; i <= originalScriptCount; i++)
{
i = ui->listScript->rowCount() + 1;
do
{
BridgeSettingSet("Favourite", QString("Script%1").arg(i).toUtf8().constData(), "");
BridgeSettingSet("Favourite", QString("ScriptShortcut%1").arg(i).toUtf8().constData(), "");
BridgeSettingSet("Favourite", QString("ScriptDescription%1").arg(i).toUtf8().constData(), "");
i++;
}
while(i <= originalScriptCount);
}
for(int i = 1; i <= ui->listCommand->rowCount(); i++)
{
BridgeSettingSet("Favourite", QString("Command%1").arg(i).toUtf8().constData(), ui->listCommand->item(i - 1, 0)->text().toUtf8().constData());
@ -458,11 +469,16 @@ void FavouriteTools::on_btnOK_clicked()
BridgeSettingSet("Favourite", "CommandShortcut1", "");
}
else
for(int i = ui->listCommand->rowCount() + 1; i <= originalCommandCount; i++)
{
i = ui->listCommand->rowCount() + 1;
do
{
BridgeSettingSet("Favourite", QString("Command%1").arg(i).toUtf8().constData(), "");
BridgeSettingSet("Favourite", QString("CommandShortcut%1").arg(i).toUtf8().constData(), "");
i++;
}
while(i <= originalCommandCount);
}
this->done(QDialog::Accepted);
}

View File

@ -363,8 +363,7 @@ MainWindow::MainWindow(QWidget* parent)
// Menu stuff
actionManageFavourites = nullptr;
mFavouriteToolbar = new QToolBar(tr("Favourite ToolBar"), this);
mFavouriteToolbar->hide();
mFavouriteToolbar = new QToolBar(tr("Favourite Toolbox"), this);
updateFavouriteTools();
setupLanguagesMenu();
setupThemesMenu();
@ -747,6 +746,11 @@ void MainWindow::saveWindowSettings()
mWidgetList[i].widget->parentWidget()->saveGeometry().toBase64().data());
}
// Save favourite toolbar
BridgeSettingSetUint("Main Window Settings", "FavToolbarPositionX", mFavouriteToolbar->x());
BridgeSettingSetUint("Main Window Settings", "FavToolbarPositionY", mFavouriteToolbar->y());
BridgeSettingSetUint("Main Window Settings", "FavToolbarVisible", mFavouriteToolbar->isVisible() ? 1 : 0);
mCpuWidget->saveWindowSettings();
mSymbolView->saveWindowSettings();
}
@ -791,6 +795,14 @@ void MainWindow::loadWindowSettings()
mTabWidget->DeleteTab(mTabWidget->indexOf(mWidgetList[i].widget));
}
// Load favourite toolbar
duint posx = 0, posy = 0, isVisible = 0;
BridgeSettingGetUint("Main Window Settings", "FavToolbarPositionX", &posx);
BridgeSettingGetUint("Main Window Settings", "FavToolbarPositionY", &posy);
BridgeSettingGetUint("Main Window Settings", "FavToolbarVisible", &isVisible);
mFavouriteToolbar->move(posx, posy);
mFavouriteToolbar->setVisible(isVisible == 1);
mCpuWidget->loadWindowSettings();
mSymbolView->loadWindowSettings();
}
@ -1885,7 +1897,7 @@ void MainWindow::updateFavouriteTools()
for(unsigned int i = 1; BridgeSettingGet("Favourite", QString("Tool%1").arg(i).toUtf8().constData(), buffer); i++)
{
QString toolPath = QString(buffer);
QAction* newAction = new QAction(actionManageFavourites);
QAction* newAction = new QAction(actionManageFavourites); // Auto delete these actions on updateFavouriteTools()
// Set up user data to be used in clickFavouriteTool()
newAction->setData(QVariant(QString("Tool,%1").arg(toolPath)));
if(BridgeSettingGet("Favourite", QString("ToolShortcut%1").arg(i).toUtf8().constData(), buffer))