From d020e3568f23439ecdcaf5ddf364d74d85f43611 Mon Sep 17 00:00:00 2001 From: Philippe Saint-Pierre Date: Sun, 6 Mar 2011 14:14:37 +0000 Subject: [PATCH] Screenshot * Fix violations to coding guidelines * Error checks on the received entry_refs * Typo in comment Thanks Axel! git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40843 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/apps/screenshot/ScreenshotWindow.cpp | 35 +++++++++++++----------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/src/apps/screenshot/ScreenshotWindow.cpp b/src/apps/screenshot/ScreenshotWindow.cpp index 660d3896c0..ddda71e563 100644 --- a/src/apps/screenshot/ScreenshotWindow.cpp +++ b/src/apps/screenshot/ScreenshotWindow.cpp @@ -332,10 +332,14 @@ ScreenshotWindow::MessageReceived(BMessage* message) entry_ref ref; if (message->FindRef("refs", &ref) == B_OK) { BEntry entry(&ref, true); - BPath path; - entry.GetPath(&path); - BString label(path.Path()); - _AddItemToPathMenu(path.Path(), label, 3, true); + if (entry.InitCheck() == B_OK) { + BPath path; + // Could return B_BUSY + if (entry.GetPath(&path) == B_OK) { + BString label(path.Path()); + _AddItemToPathMenu(path.Path(), label, 3, true); + } + } } break; } @@ -514,21 +518,20 @@ void ScreenshotWindow::_AddItemToPathMenu(const char* path, BString& label, int32 index, bool markItem) { - /* Make sure that item won't be a duplicata of an existing one */ - for (int32 i = fOutputPathMenu->CountItems(); i > 0; --i) { - BMenuItem* menuItem = fOutputPathMenu->ItemAt(i - 1); + // Make sure that item won't be a duplicate of an existing one + for (int32 i = fOutputPathMenu->CountItems() - 1; i >= 0; --i) { + BMenuItem* menuItem = fOutputPathMenu->ItemAt(i); BMessage* message = menuItem->Message(); const char* pathFromItem; - if (message != NULL && message->what == kLocationChanged) { - if (message->FindString("path", &pathFromItem) == B_OK) { - if (!strcmp(path, pathFromItem)) { - if (markItem) { - fOutputPathMenu->ItemAt(i - 1)->SetMarked(true); - fLastSelectedPath = fOutputPathMenu->ItemAt(i - 1); - } - return; - } + if (message != NULL && message->what == kLocationChanged + && message->FindString("path", &pathFromItem) == B_OK + && !strcmp(path, pathFromItem)) { + + if (markItem) { + fOutputPathMenu->ItemAt(i)->SetMarked(true); + fLastSelectedPath = fOutputPathMenu->ItemAt(i); } + return; } }