Skip to content

Commit

Permalink
src:fix move to another tab and float actions crash
Browse files Browse the repository at this point in the history
Signed-off-by: xiaoming <2014500726@smail.xtu.edu.cn>
QQxiaoming committed Nov 8, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
1 parent 16d3816 commit c8bd0b7
Showing 1 changed file with 12 additions and 24 deletions.
36 changes: 12 additions & 24 deletions src/mainwindow.cpp
Original file line number Diff line number Diff line change
@@ -214,21 +214,20 @@ MainWindow::MainWindow(QString dir, StartupUIMode mode, QLocale::Language lang,
lockSessionWindow->showUnlock();
});
} else {
auto moveToAnotherTab = [&](int src,int dst, int index) {
QIcon icon = mainWidgetGroupList.at(src)->sessionTab->tabIcon(index);
int newIndex = mainWidgetGroupList.at(dst)->sessionTab->addTab(
mainWidgetGroupList.at(src)->sessionTab->widget(index),
mainWidgetGroupList.at(src)->sessionTab->tabTitle(index));
mainWidgetGroupList.at(dst)->sessionTab->setTabIcon(newIndex,icon);
mainWidgetGroupList.at(dst)->sessionTab->setCurrentIndex(
mainWidgetGroupList.at(dst)->sessionTab->count()-1);
mainWidgetGroupList.at(src)->sessionTab->setCurrentIndex(
mainWidgetGroupList.at(src)->sessionTab->count()-1);
};
QAction *moveToAnotherTabAction = new QAction(tr("Move to another Tab"),this);
menu->addAction(moveToAnotherTabAction);
connect(moveToAnotherTabAction,&QAction::triggered,this,[=](){
auto moveToAnotherTab = [&](int src,int dst, int index) {
QIcon icon = mainWidgetGroupList.at(src)->sessionTab->tabIcon(index);
int newIndex = mainWidgetGroupList.at(dst)->sessionTab->addTab(
mainWidgetGroupList.at(src)->sessionTab->widget(index),
mainWidgetGroupList.at(src)->sessionTab->tabTitle(index));
mainWidgetGroupList.at(dst)->sessionTab->setTabIcon(newIndex,icon);
mainWidgetGroupList.at(src)->sessionTab->removeTab(index);
mainWidgetGroupList.at(dst)->sessionTab->setCurrentIndex(
mainWidgetGroupList.at(dst)->sessionTab->count()-1);
mainWidgetGroupList.at(src)->sessionTab->setCurrentIndex(
mainWidgetGroupList.at(src)->sessionTab->count()-1);
};
if(mainWidgetGroup == mainWidgetGroupList.at(0)) {
moveToAnotherTab(0,1,index);
} else {
@@ -239,20 +238,9 @@ MainWindow::MainWindow(QString dir, StartupUIMode mode, QLocale::Language lang,
menu->addAction(floatAction);
menu->addSeparator();
connect(floatAction,&QAction::triggered,this,[=](){
auto moveToAnotherTab = [&](int src,int dst, int index) {
QIcon icon = mainWidgetGroupList.at(src)->sessionTab->tabIcon(index);
int newIndex = mainWidgetGroupList.at(dst)->sessionTab->addTab(
mainWidgetGroupList.at(src)->sessionTab->widget(index),
mainWidgetGroupList.at(src)->sessionTab->tabTitle(index));
mainWidgetGroupList.at(dst)->sessionTab->setTabIcon(newIndex,icon);
mainWidgetGroupList.at(src)->sessionTab->removeTab(index);
mainWidgetGroupList.at(dst)->sessionTab->setCurrentIndex(
mainWidgetGroupList.at(dst)->sessionTab->count()-1);
mainWidgetGroupList.at(src)->sessionTab->setCurrentIndex(
mainWidgetGroupList.at(src)->sessionTab->count()-1);
};
QDialog *dialog = new QDialog(this);
dialog->setWindowFlags(Qt::Window);
dialog->resize(800,480);
dialog->setLayout(new QVBoxLayout);
MainWidgetGroup *group = new MainWidgetGroup(dialog);
mainWidgetGroupList.append(group);

0 comments on commit c8bd0b7

Please sign in to comment.