MCPcopy Create free account
hub / github.com/audacity/audacity / SaveWindowSize

Method SaveWindowSize

src/ProjectManager.cpp:111–161  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

109bool ProjectManager::sbSkipPromptingForSave = false;
110
111void ProjectManager::SaveWindowSize()
112{
113 if (sbWindowRectAlreadySaved)
114 {
115 return;
116 }
117 bool validWindowForSaveWindowSize = FALSE;
118 ProjectWindow * validProject = nullptr;
119 bool foundIconizedProject = FALSE;
120 for ( auto pProject : AllProjects{} )
121 {
122 auto &window = ProjectWindow::Get( *pProject );
123 if (!window.IsIconized()) {
124 validWindowForSaveWindowSize = TRUE;
125 validProject = &window;
126 break;
127 }
128 else
129 foundIconizedProject = TRUE;
130 }
131
132 if (validWindowForSaveWindowSize)
133 {
134 wxRect windowRect = validProject->GetRect();
135 wxRect normalRect = validProject->GetNormalizedWindowState();
136 bool wndMaximized = validProject->IsMaximized();
137
138 SaveWindowPreferences(windowRect, normalRect, wndMaximized, false);
139 }
140 else
141 {
142 if (foundIconizedProject) {
143 validProject = &ProjectWindow::Get( **AllProjects{}.begin() );
144 bool wndMaximized = validProject->IsMaximized();
145 wxRect normalRect = validProject->GetNormalizedWindowState();
146
147 // store only the normal rectangle because the itemized rectangle
148 // makes no sense for an opening project window
149 SaveWindowPreferences(normalRect, normalRect, wndMaximized, true);
150 }
151 else {
152 // this would be a very strange case that might possibly occur on the Mac
153 // Audacity would have to be running with no projects open
154 // in this case we are going to write only the default values
155 wxRect defWndRect;
156 GetDefaultWindowRect(&defWndRect);
157 SaveWindowPreferences(defWndRect, defWndRect, false, false);
158 }
159 }
160 sbWindowRectAlreadySaved = true;
161}
162
163void InitProjectWindow( ProjectWindow &window )
164{

Callers

nothing calls this directly

Calls 5

GetFunction · 0.85
SaveWindowPreferencesFunction · 0.85
GetDefaultWindowRectFunction · 0.85
IsIconizedMethod · 0.80
beginMethod · 0.45

Tested by

no test coverage detected