Browse Source

Projucer: Show document save state in the titlebar

v6.1.6
reuk 3 years ago
parent
commit
60f76da091
No known key found for this signature in database GPG Key ID: FCB43929F012EE5C
2 changed files with 21 additions and 4 deletions
  1. +18
    -3
      extras/Projucer/Source/Application/jucer_MainWindow.cpp
  2. +3
    -1
      extras/Projucer/Source/Application/jucer_MainWindow.h

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

@@ -39,9 +39,9 @@ class BlurOverlayWithComponent : public Component,
{ {
public: public:
BlurOverlayWithComponent (MainWindow& window, std::unique_ptr<Component> comp) BlurOverlayWithComponent (MainWindow& window, std::unique_ptr<Component> comp)
: ComponentMovementWatcher (&window),
mainWindow (window),
componentToShow (std::move (comp))
: ComponentMovementWatcher (&window),
mainWindow (window),
componentToShow (std::move (comp))
{ {
kernel.createGaussianBlur (1.25f); kernel.createGaussianBlur (1.25f);
@@ -326,6 +326,11 @@ void MainWindow::setProject (std::unique_ptr<Project> newProject)
getProjectContentComponent()->setProject (currentProject.get()); getProjectContentComponent()->setProject (currentProject.get());
} }
if (currentProject != nullptr)
currentProject->addChangeListener (this);
changeListenerCallback (currentProject.get());
projectNameValue.referTo (currentProject != nullptr ? currentProject->getProjectValue (Ids::name) : Value()); projectNameValue.referTo (currentProject != nullptr ? currentProject->getProjectValue (Ids::name) : Value());
initialiseProjectWindow(); initialiseProjectWindow();
@@ -707,6 +712,16 @@ void MainWindow::valueChanged (Value& value)
: "Projucer"); : "Projucer");
} }
void MainWindow::changeListenerCallback (ChangeBroadcaster* source)
{
auto* project = getProject();
if (source == project)
if (auto* peer = getPeer())
peer->setHasChangedSinceSaved (project != nullptr ? project->hasChangedSinceSaved()
: false);
}
//============================================================================== //==============================================================================
MainWindowList::MainWindowList() MainWindowList::MainWindowList()
{ {


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

@@ -39,7 +39,8 @@ class MainWindow : public DocumentWindow,
public ApplicationCommandTarget, public ApplicationCommandTarget,
public FileDragAndDropTarget, public FileDragAndDropTarget,
public DragAndDropContainer, public DragAndDropContainer,
private Value::Listener
private Value::Listener,
private ChangeListener
{ {
public: public:
//============================================================================== //==============================================================================
@@ -87,6 +88,7 @@ public:
StringArray& files, bool& canMoveFiles) override; StringArray& files, bool& canMoveFiles) override;
private: private:
void valueChanged (Value&) override; void valueChanged (Value&) override;
void changeListenerCallback (ChangeBroadcaster* source) override;
static const char* getProjectWindowPosName() { return "projectWindowPos"; } static const char* getProjectWindowPosName() { return "projectWindowPos"; }
void createProjectContentCompIfNeeded(); void createProjectContentCompIfNeeded();


Loading…
Cancel
Save