Browse Source

Introjucer: tweaked document focus behaviour.

tags/2021-05-28
jules 13 years ago
parent
commit
baecac82d9
7 changed files with 30 additions and 20 deletions
  1. +2
    -0
      extras/Introjucer/Source/Application/jucer_AppearanceSettings.h
  2. +1
    -1
      extras/Introjucer/Source/Application/jucer_Application.h
  3. +3
    -3
      extras/Introjucer/Source/Application/jucer_MainWindow.cpp
  4. +1
    -1
      extras/Introjucer/Source/Application/jucer_MainWindow.h
  5. +20
    -12
      extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp
  6. +2
    -2
      extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h
  7. +1
    -1
      extras/Introjucer/Source/Project/jucer_TreeViewTypes.cpp

+ 2
- 0
extras/Introjucer/Source/Application/jucer_AppearanceSettings.h View File

@@ -144,6 +144,8 @@ public:
} }
Rectangle<int> getPropertyComponentContentPosition (PropertyComponent&); Rectangle<int> getPropertyComponentContentPosition (PropertyComponent&);
bool areScrollbarButtonsVisible() { return false; }
}; };


+ 1
- 1
extras/Introjucer/Source/Application/jucer_Application.h View File

@@ -180,7 +180,7 @@ public:
OpenDocumentManager::Document* doc = getApp().openDocumentManager.getOpenDocument (menuItemID - activeDocumentsBaseID); OpenDocumentManager::Document* doc = getApp().openDocumentManager.getOpenDocument (menuItemID - activeDocumentsBaseID);
jassert (doc != nullptr); jassert (doc != nullptr);
getApp().mainWindowList.openDocument (doc);
getApp().mainWindowList.openDocument (doc, true);
} }
else if (menuItemID >= colourSchemeBaseID && menuItemID < colourSchemeBaseID + 200) else if (menuItemID >= colourSchemeBaseID && menuItemID < colourSchemeBaseID + 200)
{ {


+ 3
- 3
extras/Introjucer/Source/Application/jucer_MainWindow.cpp View File

@@ -199,7 +199,7 @@ bool MainWindow::openFile (const File& file)
} }
else if (file.exists()) else if (file.exists())
{ {
return getProjectContentComponent()->showEditorForFile (file);
return getProjectContentComponent()->showEditorForFile (file, true);
} }
return false; return false;
@@ -349,10 +349,10 @@ void MainWindowList::closeWindow (MainWindow* w)
} }
} }
void MainWindowList::openDocument (OpenDocumentManager::Document* doc)
void MainWindowList::openDocument (OpenDocumentManager::Document* doc, bool grabFocus)
{ {
MainWindow* w = getOrCreateFrontmostWindow(); MainWindow* w = getOrCreateFrontmostWindow();
w->getProjectContentComponent()->showDocument (doc);
w->getProjectContentComponent()->showDocument (doc, grabFocus);
} }
bool MainWindowList::openFile (const File& file) bool MainWindowList::openFile (const File& file)


+ 1
- 1
extras/Introjucer/Source/Application/jucer_MainWindow.h View File

@@ -102,7 +102,7 @@ public:
void closeWindow (MainWindow*); void closeWindow (MainWindow*);
void createWindowIfNoneAreOpen(); void createWindowIfNoneAreOpen();
void openDocument (OpenDocumentManager::Document*);
void openDocument (OpenDocumentManager::Document*, bool grabFocus);
bool openFile (const File& file); bool openFile (const File& file);
MainWindow* createNewMainWindow(); MainWindow* createNewMainWindow();


+ 20
- 12
extras/Introjucer/Source/Project/jucer_ProjectContentComponent.cpp View File

@@ -274,7 +274,7 @@ void ProjectContentComponent::reloadLastOpenDocuments()
if (xml != nullptr) if (xml != nullptr)
{ {
recentDocumentList.restoreFromXML (*project, *xml); recentDocumentList.restoreFromXML (*project, *xml);
showDocument (recentDocumentList.getCurrentDocument());
showDocument (recentDocumentList.getCurrentDocument(), true);
} }
} }
} }
@@ -297,10 +297,10 @@ void ProjectContentComponent::updateMissingFileStatuses()
p->checkFileStatus(); p->checkFileStatus();
} }
bool ProjectContentComponent::showEditorForFile (const File& f)
bool ProjectContentComponent::showEditorForFile (const File& f, bool grabFocus)
{ {
return getCurrentFile() == f return getCurrentFile() == f
|| showDocument (JucerApplication::getApp().openDocumentManager.openFile (project, f));
|| showDocument (JucerApplication::getApp().openDocumentManager.openFile (project, f), grabFocus);
} }
File ProjectContentComponent::getCurrentFile() const File ProjectContentComponent::getCurrentFile() const
@@ -309,7 +309,7 @@ File ProjectContentComponent::getCurrentFile() const
: File::nonexistent; : File::nonexistent;
} }
bool ProjectContentComponent::showDocument (OpenDocumentManager::Document* doc)
bool ProjectContentComponent::showDocument (OpenDocumentManager::Document* doc, bool grabFocus)
{ {
if (doc == nullptr) if (doc == nullptr)
return false; return false;
@@ -319,13 +319,21 @@ bool ProjectContentComponent::showDocument (OpenDocumentManager::Document* doc)
if (doc == getCurrentDocument() && contentView != nullptr) if (doc == getCurrentDocument() && contentView != nullptr)
{ {
contentView->grabKeyboardFocus();
if (grabFocus)
contentView->grabKeyboardFocus();
return true; return true;
} }
recentDocumentList.newDocumentOpened (doc); recentDocumentList.newDocumentOpened (doc);
return setEditorComponent (doc->createEditor(), doc);
bool opened = setEditorComponent (doc->createEditor(), doc);
if (opened && grabFocus)
contentView->grabKeyboardFocus();
return opened;
} }
void ProjectContentComponent::hideEditor() void ProjectContentComponent::hideEditor()
@@ -343,13 +351,14 @@ void ProjectContentComponent::hideDocument (OpenDocumentManager::Document* doc)
OpenDocumentManager::Document* replacement = recentDocumentList.getClosestPreviousDocOtherThan (doc); OpenDocumentManager::Document* replacement = recentDocumentList.getClosestPreviousDocOtherThan (doc);
if (replacement != nullptr) if (replacement != nullptr)
showDocument (replacement);
showDocument (replacement, true);
else else
hideEditor(); hideEditor();
} }
} }
bool ProjectContentComponent::setEditorComponent (Component* editor, OpenDocumentManager::Document* doc)
bool ProjectContentComponent::setEditorComponent (Component* editor,
OpenDocumentManager::Document* doc)
{ {
if (editor != nullptr) if (editor != nullptr)
{ {
@@ -361,7 +370,6 @@ bool ProjectContentComponent::setEditorComponent (Component* editor, OpenDocumen
updateMainWindowTitle(); updateMainWindowTitle();
commandManager->commandStatusChanged(); commandManager->commandStatusChanged();
editor->grabKeyboardFocus();
return true; return true;
} }
@@ -374,14 +382,14 @@ bool ProjectContentComponent::goToPreviousFile()
OpenDocumentManager::Document* currentSourceDoc = recentDocumentList.getCurrentDocument(); OpenDocumentManager::Document* currentSourceDoc = recentDocumentList.getCurrentDocument();
if (currentSourceDoc != nullptr && currentSourceDoc != getCurrentDocument()) if (currentSourceDoc != nullptr && currentSourceDoc != getCurrentDocument())
return showDocument (currentSourceDoc);
return showDocument (currentSourceDoc, true);
else else
return showDocument (recentDocumentList.getPrevious());
return showDocument (recentDocumentList.getPrevious(), true);
} }
bool ProjectContentComponent::goToNextFile() bool ProjectContentComponent::goToNextFile()
{ {
return showDocument (recentDocumentList.getNext());
return showDocument (recentDocumentList.getNext(), true);
} }
void ProjectContentComponent::updateMainWindowTitle() void ProjectContentComponent::updateMainWindowTitle()


+ 2
- 2
extras/Introjucer/Source/Project/jucer_ProjectContentComponent.h View File

@@ -50,10 +50,10 @@ public:
void saveOpenDocumentList(); void saveOpenDocumentList();
void reloadLastOpenDocuments(); void reloadLastOpenDocuments();
bool showEditorForFile (const File& f);
bool showEditorForFile (const File& f, bool grabFocus);
File getCurrentFile() const; File getCurrentFile() const;
bool showDocument (OpenDocumentManager::Document* doc);
bool showDocument (OpenDocumentManager::Document* doc, bool grabFocus);
void hideDocument (OpenDocumentManager::Document* doc); void hideDocument (OpenDocumentManager::Document* doc);
OpenDocumentManager::Document* getCurrentDocument() const { return currentDocument; } OpenDocumentManager::Document* getCurrentDocument() const { return currentDocument; }


+ 1
- 1
extras/Introjucer/Source/Project/jucer_TreeViewTypes.cpp View File

@@ -236,7 +236,7 @@ void SourceFileTreeViewItem::showDocument()
const File f (getFile()); const File f (getFile());
if (pcc != nullptr && f.exists()) if (pcc != nullptr && f.exists())
pcc->showEditorForFile (f);
pcc->showEditorForFile (f, false);
} }
void SourceFileTreeViewItem::showPopupMenu() void SourceFileTreeViewItem::showPopupMenu()


Loading…
Cancel
Save