- enhancement: Tooltip support for '->' operator on std iterators.
- enhancement: Close other editors.
This commit is contained in:
parent
4746d1b63c
commit
dfed4accf6
2
NEWS.md
2
NEWS.md
|
@ -2,6 +2,8 @@ Red Panda C++ Version 2.23
|
|||
|
||||
- fix: When selection is availalbe, Ctrl+Click shouldn't jump to declaration/definition.
|
||||
- enhancement: Code completion for '->' operator on std iterators.
|
||||
- enhancement: Tooltip support for '->' operator on std iterators.
|
||||
- enhancement: Close other editors.
|
||||
|
||||
Red Panda C++ Version 2.22
|
||||
|
||||
|
|
|
@ -387,6 +387,25 @@ bool EditorList::closeAll(bool force) {
|
|||
return true;
|
||||
}
|
||||
|
||||
bool EditorList::closeOthers(Editor *editor)
|
||||
{
|
||||
QList<Editor*> editors;
|
||||
for (int i=0;i<mLeftPageWidget->count();i++) {
|
||||
editors.append(static_cast<Editor*>(mLeftPageWidget->widget(i)));
|
||||
}
|
||||
for (int i=0;i<mRightPageWidget->count();i++) {
|
||||
editors.append(static_cast<Editor*>(mRightPageWidget->widget(i)));
|
||||
}
|
||||
for (Editor* e: editors ) {
|
||||
if (e!=editor) {
|
||||
if (!closeEditor(e,false,false)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
void EditorList::forceCloseEditor(Editor *editor)
|
||||
{
|
||||
beginUpdate();
|
||||
|
|
|
@ -56,6 +56,7 @@ public:
|
|||
void clearProjectEditorsModified();
|
||||
|
||||
bool closeAll(bool force = false);
|
||||
bool closeOthers(Editor* editor);
|
||||
|
||||
void forceCloseEditor(Editor* editor);
|
||||
|
||||
|
|
|
@ -589,6 +589,7 @@ void MainWindow::updateEditorActions(const Editor *e)
|
|||
|
||||
ui->actionClose->setEnabled(false);
|
||||
ui->actionClose_All->setEnabled(false);
|
||||
ui->actionClose_Others->setEnabled(false);
|
||||
|
||||
ui->actionAdd_bookmark->setEnabled(false);
|
||||
ui->actionRemove_Bookmark->setEnabled(false);
|
||||
|
@ -650,6 +651,7 @@ void MainWindow::updateEditorActions(const Editor *e)
|
|||
|
||||
ui->actionClose->setEnabled(true);
|
||||
ui->actionClose_All->setEnabled(true);
|
||||
ui->actionClose_Others->setEnabled(mEditorList->pageCount()>1);
|
||||
|
||||
int line = e->caretY();
|
||||
ui->actionAdd_bookmark->setEnabled(e->document()->count()>0 && !e->hasBookmark(line));
|
||||
|
@ -1725,6 +1727,7 @@ void MainWindow::updateActionIcons()
|
|||
ui->actionClose->setIcon(pIconsManager->getIcon(IconsManager::ACTION_FILE_CLOSE));
|
||||
ui->actionClose_Project->setIcon(pIconsManager->getIcon(IconsManager::ACTION_PROJECT_CLOSE));
|
||||
ui->actionClose_All->setIcon(pIconsManager->getIcon(IconsManager::ACTION_FILE_CLOSE_ALL));
|
||||
ui->actionClose_Others->setIcon(pIconsManager->getIcon(IconsManager::ACTION_FILE_CLOSE_ALL));
|
||||
ui->actionPrint->setIcon(pIconsManager->getIcon(IconsManager::ACTION_FILE_PRINT));
|
||||
|
||||
ui->actionUndo->setIcon(pIconsManager->getIcon(IconsManager::ACTION_EDIT_UNDO));
|
||||
|
@ -4989,6 +4992,7 @@ void MainWindow::onEditorTabContextMenu(QTabWidget* tabWidget, const QPoint &pos
|
|||
}
|
||||
menu.addAction(ui->actionClose);
|
||||
menu.addAction(ui->actionClose_All);
|
||||
menu.addAction(ui->actionClose_Others);
|
||||
menu.addSeparator();
|
||||
menu.addAction(ui->actionToggle_Readonly);
|
||||
menu.addSeparator();
|
||||
|
@ -9920,3 +9924,14 @@ void MainWindow::on_actionGoto_File_End_and_Select_triggered()
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::on_actionClose_Others_triggered()
|
||||
{
|
||||
mClosing = true;
|
||||
Editor* e = mEditorList->getEditor();
|
||||
if (e) {
|
||||
mEditorList->closeOthers(e);
|
||||
}
|
||||
mClosing = false;
|
||||
}
|
||||
|
||||
|
|
|
@ -841,6 +841,8 @@ private slots:
|
|||
|
||||
void on_actionGoto_File_End_and_Select_triggered();
|
||||
|
||||
void on_actionClose_Others_triggered();
|
||||
|
||||
private:
|
||||
Ui::MainWindow *ui;
|
||||
bool mFullInitialized;
|
||||
|
|
|
@ -3510,6 +3510,14 @@
|
|||
<enum>QAction::NoRole</enum>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionClose_Others">
|
||||
<property name="text">
|
||||
<string>Close Others</string>
|
||||
</property>
|
||||
<property name="menuRole">
|
||||
<enum>QAction::NoRole</enum>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
|
|
|
@ -531,6 +531,29 @@ PStatement CppParser::doFindStatementOf(const QString &fileName, const QStringLi
|
|||
return statement;
|
||||
}
|
||||
return PStatement();
|
||||
} else if (ownerEvalStatement->typeStatement
|
||||
&& STLIterators.contains(ownerEvalStatement->typeStatement->command)
|
||||
&& memberOperator=="->"
|
||||
) {
|
||||
PStatement parentScope = ownerEvalStatement->typeStatement->parentScope.lock();
|
||||
if (STLContainers.contains(parentScope->fullName)) {
|
||||
QString typeName=doFindFirstTemplateParamOf(fileName,ownerEvalStatement->templateParams, parentScope);
|
||||
PStatement typeStatement=doFindTypeDefinitionOf(fileName, typeName,parentScope);
|
||||
if (typeStatement) {
|
||||
return findMemberOfStatement(phrase, typeStatement);
|
||||
} else {
|
||||
return PStatement();
|
||||
}
|
||||
} else if (STLMaps.contains(parentScope->fullName)) {
|
||||
QString typeName=doFindTemplateParamOf(fileName,ownerEvalStatement->templateParams,1,parentScope);
|
||||
// qDebug()<<"typeName"<<typeName<<lastResult->baseStatement->type<<lastResult->baseStatement->command;
|
||||
PStatement typeStatement=doFindTypeDefinitionOf(fileName, typeName,parentScope);
|
||||
if (typeStatement) {
|
||||
return findMemberOfStatement(phrase, typeStatement);
|
||||
} else {
|
||||
return PStatement();
|
||||
}
|
||||
}
|
||||
}
|
||||
return findMemberOfStatement(phrase, ownerEvalStatement->effectiveTypeStatement);
|
||||
}
|
||||
|
|
|
@ -5267,6 +5267,10 @@
|
|||
<source>Goto File End and Select</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close Others</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MemoryModel</name>
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -4992,6 +4992,10 @@
|
|||
<source>Goto File End and Select</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Close Others</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>MemoryModel</name>
|
||||
|
|
Loading…
Reference in New Issue