Applied yet another localization patch from Jorma Karvonen. Fixes #7169.

Beside of localization task some refactoring was performed:
- strings, stored previously in resources were moved from resource definition
  file to cpp files at the place of using;
- cleanup of resource definitions and Common.cpp/Common.h.

Additionall tasks, made by S.Zharski:
- the rests of resource handling tasks were purged out from Common.cpp/Common.h;
- Common.h renamed to DiskUsage.h;
- the rests of code from Common.cpp merged into DiskUsage.cpp;
- the preprocessor tricks and magics targeted mainly for resources support
   were removed;
- some code style fixes and "internationalization style" fixes were made.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40493 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Siarzhuk Zharski
2011-02-14 18:26:15 +00:00
parent 669afb5012
commit 973f8e214d
15 changed files with 234 additions and 356 deletions
+12 -3
View File
@@ -12,27 +12,36 @@
#include <stdio.h>
#include <Entry.h>
#include <File.h>
#include <FindDirectory.h>
#include <Node.h>
#include <Path.h>
#include "Common.h"
#include "DiskUsage.h"
#include "MainWindow.h"
App::App()
:
BApplication(kAppSignature),
fResources(read_resources(kAppSignature)),
fMainWindow(NULL), fSavedRefsReceived(NULL)
{
// Get a reference to the help file.
BPath path;
if (find_directory(B_BEOS_DOCUMENTATION_DIRECTORY, &path) == B_OK
&& path.Append(kHelpFileName) == B_OK) {
printf("help file =? %s\n", path.Path());
BEntry entry(path.Path());
helpFileWasFound = entry.Exists();
entry.GetRef(&helpFileRef);
} else
helpFileWasFound = false;
}
App::~App()
{
delete fResources;
delete fSavedRefsReceived;
}
-1
View File
@@ -27,7 +27,6 @@ public:
virtual bool QuitRequested();
private:
BResources* fResources;
MainWindow* fMainWindow;
BMessage* fSavedRefsReceived;
};
-151
View File
@@ -1,151 +0,0 @@
/*
* Copyright (c) 2008 Stephan Aßmus <[email protected]>. All rights reserved.
* Distributed under the terms of the MIT/X11 license.
*
* Copyright (c) 1999 Mike Steed. You are free to use and distribute this software
* as long as it is accompanied by it's documentation and this copyright notice.
* The software comes with no warranty, etc.
*/
#define ASSIGN_RESOURCES
#include "Common.h"
#undef ASSIGN_RESOURCES
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <Application.h>
#include <FindDirectory.h>
#include <Roster.h>
#include <Path.h>
const char* kAppSignature = "application/x-vnd.Haiku-DiskUsage";
const char* kHelpFileName = "userguide/en/applications/diskusage.html";
const char* kPieRectAttrName = "mainrect";
const char* kHelpBtnLabel = "?";
const char* kEmptyStr = "";
const char* kNameVolPtr = "vol";
const char* kNameFilePtr = "file";
const float kSmallHMargin = 5.0;
const float kSmallVMargin = 2.0;
const float kButtonMargin = 20.0;
const float kMinButtonWidth = 60.0;
const float kProgBarWidth = 150.0;
const float kProgBarHeight = 16.0;
const float kReportInterval = 2.5;
const float kDefaultPieSize = 400.0;
const float kPieCenterSize = 80.0;
const float kPieRingSize = 20.0;
const float kPieInnerMargin = 10.0;
const float kPieOuterMargin = 10.0;
const float kMinSegmentSpan = 2.0;
const int kLightenFactor = 0x12;
const float kDragThreshold = 5.0;
BResources*
read_resources(const char* appSignature)
{
status_t ret = be_app->GetAppInfo(&kAppInfo);
if (ret != B_OK) {
fprintf(stderr, "Failed to init application info: %s\n",
strerror(ret));
exit(1);
}
BFile file(&kAppInfo.ref, O_RDONLY);
ret = file.InitCheck();
if (ret != B_OK) {
fprintf(stderr, "Failed to init application file to read resources: "
"%s\n", strerror(ret));
exit(1);
}
BResources* r = new BResources(&file);
#define LoadString(n) (char*)r->LoadResource(B_STRING_TYPE, n, &ignore)
#define LoadColor(n) *(rgb_color*)r->LoadResource(B_RGB_COLOR_TYPE, n, &ignore)
#define LoadUint8(n) *(uint8*)r->LoadResource(B_UINT8_TYPE, n, &ignore)
size_t ignore;
kVolMenuLabel = LoadString("STR_VM_LABEL");
kOneFile = LoadString("STR_1_FILE");
kManyFiles = LoadString("STR_N_FILES");
kStrScan = LoadString("STR_SCAN");
kStrRescan = LoadString("STR_RESCAN");
kStrScanningX = LoadString("STR_SCN_X");
kStrUnavail = LoadString("STR_UNAVAIL");
kVolMenuDefault = LoadString("STR_VM_DFLT");
kVolPrompt = LoadString("STR_VPROMPT");
kMenuGetInfo = LoadString("STR_M_INFO");
kMenuOpen = LoadString("STR_M_OPEN");
kMenuOpenWith = LoadString("STR_M_OPENW");
kMenuNoApps = LoadString("STR_M_NAPPS");
kInfoSize = LoadString("STR_SIZE");
kInfoInFiles = LoadString("STR_INFILES");
kInfoCreated = LoadString("STR_MADE");
kInfoModified = LoadString("STR_MOD");
kInfoTimeFmt = LoadString("STR_TIMEFMT");
kInfoKind = LoadString("STR_KIND");
kInfoPath = LoadString("STR_PATH");
kOutdatedStr = LoadString("STR_OUTDATED");
kWindowColor = ui_color(B_PANEL_BACKGROUND_COLOR);
kOutlineColor = LoadColor("RGB_PIE_OL");
kPieBGColor = LoadColor("RGB_PIE_BG");
kEmptySpcColor = LoadColor("RGB_PIE_MT");
kBasePieColorCount = LoadUint8("N_PIE_COLORS");
kBasePieColor = new rgb_color[kBasePieColorCount];
for (int i = 0; i < kBasePieColorCount; i++) {
char colorName[16] = "RGB_PIE_n";
colorName[8] = '1' + i;
kBasePieColor[i] = LoadColor(colorName);
}
// Get a reference to the help file.
BPath path;
if (find_directory(B_BEOS_DOCUMENTATION_DIRECTORY, &path) == B_OK
&& path.Append(kHelpFileName) == B_OK) {
printf("help file =? %s\n", path.Path());
BEntry entry(path.Path());
kFoundHelpFile = entry.Exists();
entry.GetRef(&kHelpFileRef);
} else
kFoundHelpFile = false;
return r;
}
void
size_to_string(off_t byteCount, char* name)
{
struct {
off_t limit;
float divisor;
const char* format;
} scale[] = {
{ 0x100000, 1024.0, "%.2f KiB" },
{ 0x40000000, 1048576.0, "%.2f MiB" },
{ 0x10000000000ull, 1073741824.0, "%.2f GiB" },
{ 0x4000000000000ull, 1.09951162778e+12, "%.2f TiB" }
};
if (byteCount < 1024) {
sprintf(name, "%lld bytes", byteCount);
} else {
int i = 0;
while (byteCount >= scale[i].limit)
i++;
sprintf(name, scale[i].format, byteCount / scale[i].divisor);
}
}
-107
View File
@@ -1,107 +0,0 @@
/*
* Copyright (c) 2008 Stephan Aßmus <[email protected]>. All rights reserved.
* Distributed under the terms of the MIT/X11 license.
*
* Copyright (c) 1999 Mike Steed. You are free to use and distribute this software
* as long as it is accompanied by it's documentation and this copyright notice.
* The software comes with no warranty, etc.
*/
#ifndef COMMON_H
#define COMMON_H
#include <Entry.h>
#include <GraphicsDefs.h>
#include <Resources.h>
#include <Roster.h>
#ifdef ASSIGN_RESOURCES
# define EXTERN
# define EQ(x)
#else
# define EXTERN extern
# define EQ(x)
#endif
#define EXTERN_CONST extern const
// Resources
EXTERN char* kStrScan;
EXTERN char* kStrRescan;
EXTERN char* kOutdatedStr;
EXTERN char* kStrScanningX;
EXTERN char* kStrUnavail;
EXTERN char* kVolMenuLabel;
EXTERN char* kVolMenuDefault;
EXTERN char* kVolPrompt;
EXTERN char* kOneFile;
EXTERN char* kManyFiles;
EXTERN char* kMenuGetInfo;
EXTERN char* kMenuOpen;
EXTERN char* kMenuOpenWith;
EXTERN char* kMenuNoApps;
EXTERN char* kInfoSize;
EXTERN char* kInfoInFiles;
EXTERN char* kInfoCreated;
EXTERN char* kInfoModified;
EXTERN char* kInfoTimeFmt;
EXTERN char* kInfoKind;
EXTERN char* kInfoPath;
EXTERN rgb_color kWindowColor;
EXTERN rgb_color kOutlineColor;
EXTERN rgb_color kPieBGColor;
EXTERN rgb_color kEmptySpcColor;
EXTERN int kBasePieColorCount;
EXTERN rgb_color *kBasePieColor;
// Non-resources :)
EXTERN_CONST char* kAppSignature;
EXTERN_CONST char* kHelpFileName;
EXTERN_CONST char* kPieRectAttrName;
EXTERN_CONST char* kHelpBtnLabel;
EXTERN_CONST char* kEmptyStr;
EXTERN_CONST char* kNameVolPtr;
EXTERN_CONST char* kNameFilePtr;
EXTERN_CONST float kSmallHMargin;
EXTERN_CONST float kSmallVMargin;
EXTERN_CONST float kButtonMargin;
EXTERN_CONST float kMinButtonWidth;
EXTERN_CONST float kProgBarWidth;
EXTERN_CONST float kProgBarHeight;
EXTERN_CONST float kReportInterval;
EXTERN_CONST float kDefaultPieSize;
EXTERN_CONST float kPieCenterSize;
EXTERN_CONST float kPieRingSize;
EXTERN_CONST float kPieInnerMargin;
EXTERN_CONST float kPieOuterMargin;
EXTERN_CONST float kMinSegmentSpan;
EXTERN_CONST int kLightenFactor;
EXTERN_CONST float kDragThreshold;
EXTERN app_info kAppInfo;
EXTERN entry_ref kHelpFileRef;
EXTERN bool kFoundHelpFile;
#define kMenuSelectVol 'gMSV'
#define kBtnRescan 'gBRF'
#define kBtnHelp 'gHLP'
#define kScanRefresh 'gSRF'
#define kScanProgress 'gSPR'
#define kScanDone 'gSDN'
#define kOutdatedMsg 'gOUT'
#define deg2rad(x) (2.0 * M_PI * (x) / 360.0)
#define rad2deg(x) (360.0 * (x) / (2.0 * M_PI))
BResources* read_resources(const char* appSignature);
void size_to_string(off_t byteCount, char* name);
#endif // COMMON_H
+1 -1
View File
@@ -23,7 +23,7 @@
#include <LayoutBuilder.h>
#include "Common.h"
#include "DiskUsage.h"
#include "VolumeView.h"
+40 -1
View File
@@ -6,8 +6,46 @@
#include "App.h"
#include <TrackerAddOnAppLaunch.h>
#include <stdio.h>
#include <Catalog.h>
#include "DiskUsage.h"
#undef B_TRANSLATE_CONTEXT
#define B_TRANSLATE_CONTEXT "DiskUsage"
entry_ref helpFileRef;
bool helpFileWasFound = false;
void
size_to_string(off_t byteCount, char* name)
{
struct {
off_t limit;
float divisor;
const char* format;
} scale[] = {
{ 0x100000, 1024.0,
B_TRANSLATE("%.2f KiB") },
{ 0x40000000, 1048576.0,
B_TRANSLATE("%.2f MiB") },
{ 0x10000000000ull, 1073741824.0,
B_TRANSLATE("%.2f GiB") },
{ 0x4000000000000ull, 1.09951162778e+12,
B_TRANSLATE("%.2f TiB") }
};
if (byteCount < 1024) {
sprintf(name, B_TRANSLATE("%lld bytes"), byteCount);
} else {
int i = 0;
while (byteCount >= scale[i].limit)
i++;
sprintf(name, scale[i].format, byteCount / scale[i].divisor);
}
}
int
main()
@@ -16,3 +54,4 @@ main()
app.Run();
return 0;
}
+77
View File
@@ -0,0 +1,77 @@
/*
* Copyright (c) 2008 Stephan Aßmus <[email protected]>. All rights reserved.
* Distributed under the terms of the MIT/X11 license.
*
* Copyright (c) 1999 Mike Steed. You are free to use and distribute this software
* as long as it is accompanied by it's documentation and this copyright notice.
* The software comes with no warranty, etc.
*/
#ifndef DISKUSAGE_H
#define DISKUSAGE_H
#include <Entry.h>
#include <InterfaceDefs.h>
const rgb_color RGB_WIN = { 0xDE, 0xDB, 0xDE, 0xFF };
const rgb_color RGB_PIE_OL = { 0x80, 0x80, 0x80, 0xFF };
const rgb_color RGB_PIE_BG = { 0xFF, 0xFF, 0xFF, 0xFF };
const rgb_color RGB_PIE_MT = { 0xA0, 0xA0, 0xA0, 0xFF };
const rgb_color RGB_PIE_1 = { 0x00, 0x60, 0x60, 0xFF };
const rgb_color RGB_PIE_2 = { 0x00, 0x00, 0x68, 0xFF };
const rgb_color RGB_PIE_3 = { 0x60, 0x00, 0x60, 0xFF };
const rgb_color RGB_PIE_4 = { 0x68, 0x00, 0x00, 0xFF };
const int kBasePieColorCount = 4;
const rgb_color kBasePieColor[kBasePieColorCount]
= { RGB_PIE_1, RGB_PIE_2, RGB_PIE_3, RGB_PIE_4 };
const rgb_color kWindowColor = ui_color(B_PANEL_BACKGROUND_COLOR);
const rgb_color kOutlineColor = RGB_PIE_OL;
const rgb_color kPieBGColor = RGB_PIE_BG;
const rgb_color kEmptySpcColor = RGB_PIE_MT;
const char* const kAppSignature = "application/x-vnd.Haiku-DiskUsage";
const char* const kHelpFileName = "userguide/en/applications/diskusage.html";
const char* const kEmptyStr = "";
const char* const kNameFilePtr = "file";
const float kSmallHMargin = 5.0;
const float kSmallVMargin = 2.0;
const float kButtonMargin = 20.0;
const float kMinButtonWidth = 60.0;
const float kProgBarWidth = 150.0;
const float kProgBarHeight = 16.0;
const float kReportInterval = 2.5;
const float kDefaultPieSize = 400.0;
const float kPieCenterSize = 80.0;
const float kPieRingSize = 20.0;
const float kPieInnerMargin = 10.0;
const float kPieOuterMargin = 10.0;
const float kMinSegmentSpan = 2.0;
const int kLightenFactor = 0x12;
const float kDragThreshold = 5.0;
extern entry_ref helpFileRef;
extern bool helpFileWasFound;
#define kMenuSelectVol 'gMSV'
#define kBtnRescan 'gBRF'
#define kBtnHelp 'gHLP'
#define kScanRefresh 'gSRF'
#define kScanProgress 'gSPR'
#define kScanDone 'gSDN'
#define kOutdatedMsg 'gOUT'
#define deg2rad(x) (2.0 * M_PI * (x) / 360.0)
#define rad2deg(x) (360.0 * (x) / (2.0 * M_PI))
void size_to_string(off_t byteCount, char* name);
#endif // DISKUSAGE_H
+3 -36
View File
@@ -3,13 +3,13 @@ resource app_signature "application/x-vnd.Haiku-DiskUsage";
resource app_version {
major = 1,
middle = 0,
minor = 0,
minor = 2,
variety = B_APPV_FINAL,
internal = 0,
short_info = "1.0.1",
long_info = "1.0.1 ©1999 Mike Steed, ©2008-2009 Haiku"
short_info = "1.0.2",
long_info = "1.0.2 ©1999 Mike Steed, ©2008-2011 Haiku"
};
resource app_flags B_MULTIPLE_LAUNCH;
@@ -47,36 +47,3 @@ resource vector_icon {
$"18001501178600040A01010B1815FF01178400040A08010C000A09010D000A0A"
$"010E00"
};
resource(101, "RGB_WIN") rgb_color { 0xDE, 0xDB, 0xDE, 0xFF };
resource(102, "RGB_PIE_OL") rgb_color { 0x80, 0x80, 0x80, 0xFF };
resource(103, "RGB_PIE_BG") rgb_color { 0xFF, 0xFF, 0xFF, 0xFF };
resource(104, "RGB_PIE_MT") rgb_color { 0xA0, 0xA0, 0xA0, 0xFF };
resource(105, "RGB_PIE_1") rgb_color { 0x00, 0x60, 0x60, 0xFF };
resource(106, "RGB_PIE_2") rgb_color { 0x00, 0x00, 0x68, 0xFF };
resource(107, "RGB_PIE_3") rgb_color { 0x60, 0x00, 0x60, 0xFF };
resource(108, "RGB_PIE_4") rgb_color { 0x68, 0x00, 0x00, 0xFF };
resource(101, "N_PIE_COLORS") (uint8)4;
resource(103, "STR_N_FILES") "%d files";
resource(102, "STR_1_FILE") "%d file";
resource(101, "STR_VM_LABEL") "Volume:";
resource(120, "STR_SCAN") "Scan";
resource(104, "STR_RESCAN") "Rescan";
resource(105, "STR_SCN_X") "Scanning ";
resource(106, "STR_UNAVAIL") "file unavailable";
resource(107, "STR_VM_DFLT") "(Select)";
resource(108, "STR_VPROMPT") "Select a volume to scan";
resource(109, "STR_M_INFO") "Get Info";
resource(110, "STR_M_OPEN") "Open";
resource(111, "STR_M_OPENW") "Open With";
resource(112, "STR_M_NAPPS") "no supporting apps";
resource(113, "STR_SIZE") "Size";
resource(114, "STR_INFILES") " in %d files";
resource(115, "STR_MADE") "Created";
resource(116, "STR_MOD") "Modified";
resource(117, "STR_TIMEFMT") "%a, %d %b %Y, %r";
resource(118, "STR_KIND") "Kind";
resource(119, "STR_PATH") "Path";
resource(121, "STR_OUTDATED") "Outdated view";
+28 -22
View File
@@ -16,17 +16,20 @@
#include <utility>
#include <vector>
#include <Catalog.h>
#include <StringView.h>
#include <Bitmap.h>
#include <NodeInfo.h>
#include "Common.h"
#include "DiskUsage.h"
#include "Snapshot.h"
using std::string;
using std::vector;
using std::pair;
#undef B_TRANSLATE_CONTEXT
#define B_TRANSLATE_CONTEXT "Info Window"
LeftView::LeftView(BRect frame, BBitmap* icon)
:
@@ -65,44 +68,44 @@ InfoWin::InfoWin(BPoint p, FileInfo *f, BWindow* parent)
typedef pair<string, string> Item;
typedef vector<Item> InfoList;
char name[B_PATH_NAME_LENGTH];
strcpy(name, f->ref.name);
strcat(name, " info");
SetTitle(name);
BString stringTitle("%refName% info");
stringTitle.ReplaceFirst("%refName%", f->ref.name);
SetTitle(stringTitle.String());
InfoList info;
Item item;
// Size
char name[B_PATH_NAME_LENGTH] = { 0 };
size_to_string(f->size, name);
if (f->count > 0) {
// This is a directory.
char str[64];
sprintf(str, kInfoInFiles, f->count);
sprintf(str, B_TRANSLATE(" in %d files"), f->count);
strcat(name, str);
}
info.push_back(Item(kInfoSize, name));
info.push_back(Item(B_TRANSLATE_MARK("Size"), name));
// Created & modified dates
BEntry entry(&f->ref);
time_t t;
entry.GetCreationTime(&t);
strftime(name, 64, kInfoTimeFmt, localtime(&t));
info.push_back(Item(kInfoCreated, name));
strftime(name, 64, B_TRANSLATE("%a, %d %b %Y, %r"), localtime(&t));
info.push_back(Item(B_TRANSLATE("Created"), name));
entry.GetModificationTime(&t);
strftime(name, 64, kInfoTimeFmt, localtime(&t));
info.push_back(Item(kInfoModified, name));
strftime(name, 64, B_TRANSLATE("%a, %d %b %Y, %r"), localtime(&t));
info.push_back(Item(B_TRANSLATE("Modified"), name));
// Kind
BMimeType* type = f->Type();
type->GetShortDescription(name);
info.push_back(Item(kInfoKind, name));
info.push_back(Item(B_TRANSLATE("Kind"), name));
delete type;
// Path
string path;
f->GetPath(path);
info.push_back(Item(kInfoPath, path));
info.push_back(Item(B_TRANSLATE("Path"), path));
// Icon
BBitmap *icon = new BBitmap(BRect(0.0, 0.0, 31.0, 31.0), B_RGBA32);
@@ -122,18 +125,21 @@ InfoWin::InfoWin(BPoint p, FileInfo *f, BWindow* parent)
float rightWidth = 0.0;
InfoList::iterator i = info.begin();
while (i != info.end()) {
float w = smallFont.StringWidth((*i).first.c_str()) + 2.0 * kSmallHMargin;
float w = smallFont.StringWidth((*i).first.c_str()) +
2.0 * kSmallHMargin;
leftWidth = max_c(leftWidth, w);
w = smallFont.StringWidth((*i).second.c_str()) + 2.0 * kSmallHMargin;
rightWidth = max_c(rightWidth, w);
i++;
}
float winHeight = 32.0 + 4.0 * kSmallVMargin + 5.0 * (fontHeight + kSmallVMargin);
float winHeight = 32.0 + 4.0 * kSmallVMargin + 5.0 * (fontHeight
+ kSmallVMargin);
float winWidth = leftWidth + rightWidth;
ResizeTo(winWidth, winHeight);
LeftView *leftView = new LeftView(BRect(0.0, 0.0, leftWidth, winHeight), icon);
LeftView *leftView = new LeftView(BRect(0.0, 0.0, leftWidth, winHeight),
icon);
BView *rightView = new BView(
BRect(leftWidth + 1.0, 0.0, winWidth, winHeight), NULL,
B_FOLLOW_NONE, B_WILL_DRAW);
@@ -142,8 +148,8 @@ InfoWin::InfoWin(BPoint p, FileInfo *f, BWindow* parent)
AddChild(rightView);
BStringView *sv = new BStringView(
BRect(kSmallHMargin, kSmallVMargin, rightView->Bounds().Width(), kSmallVMargin + 30.0),
NULL, f->ref.name, B_FOLLOW_ALL);
BRect(kSmallHMargin, kSmallVMargin, rightView->Bounds().Width(),
kSmallVMargin + 30.0), NULL, f->ref.name, B_FOLLOW_ALL);
BFont largeFont(be_plain_font);
largeFont.SetSize(ceilf(largeFont.Size() * 1.1));
@@ -154,16 +160,16 @@ InfoWin::InfoWin(BPoint p, FileInfo *f, BWindow* parent)
i = info.begin();
while (i != info.end()) {
sv = new BStringView(
BRect(kSmallHMargin, y, leftView->Bounds().Width(), y + fontHeight),
NULL, (*i).first.c_str());
BRect(kSmallHMargin, y, leftView->Bounds().Width(),
y + fontHeight), NULL, (*i).first.c_str());
sv->SetFont(&smallFont);
sv->SetAlignment(B_ALIGN_RIGHT);
sv->SetHighColor(kBasePieColor[1]); // arbitrary
leftView->AddChild(sv);
sv = new BStringView(
BRect(kSmallHMargin, y, rightView->Bounds().Width(), y + fontHeight),
NULL, (*i).second.c_str());
BRect(kSmallHMargin, y, rightView->Bounds().Width(),
y + fontHeight), NULL, (*i).second.c_str());
sv->SetFont(&smallFont);
rightView->AddChild(sv);
+12 -2
View File
@@ -5,7 +5,6 @@ SubDirHdrs $(HAIKU_TOP) src kits tracker ;
Application DiskUsage :
App.cpp
Common.cpp
ControlsView.cpp
DiskUsage.cpp
InfoWindow.cpp
@@ -15,7 +14,18 @@ Application DiskUsage :
Snapshot.cpp
StatusView.cpp
VolumeView.cpp
: be $(TARGET_LIBSTDC++)
: be $(HAIKU_LOCALE_LIBS) $(TARGET_LIBSTDC++)
: DiskUsage.rdef
;
DoCatalogs DiskUsage :
x-vnd.Haiku-DiskUsage
:
MainWindow.cpp
InfoWindow.cpp
PieView.cpp
Scanner.cpp
StatusView.cpp
VolumeView.cpp
;
+7 -3
View File
@@ -10,19 +10,22 @@
#include "MainWindow.h"
#include <Application.h>
#include <Catalog.h>
#include <Node.h>
#include <Roster.h>
#include <Screen.h>
#include <LayoutBuilder.h>
#include "Common.h"
#include "DiskUsage.h"
#include "ControlsView.h"
#undef B_TRANSLATE_CONTEXT
#define B_TRANSLATE_CONTEXT "MainWindow"
MainWindow::MainWindow(BRect pieRect)
:
BWindow(pieRect, "DiskUsage", B_TITLED_WINDOW,
BWindow(pieRect, B_TRANSLATE("DiskUsage"), B_TITLED_WINDOW,
B_ASYNCHRONOUS_CONTROLS | B_QUIT_ON_WINDOW_CLOSE
| B_AUTO_UPDATE_SIZE_LIMITS)
{
@@ -57,7 +60,8 @@ MainWindow::MessageReceived(BMessage* message)
break;
case kBtnHelp:
be_roster->Launch(&kHelpFileRef);
if (helpFileWasFound)
be_roster->Launch(&helpFileRef);
break;
default:
+19 -12
View File
@@ -16,6 +16,7 @@
#include <AppFileInfo.h>
#include <Bitmap.h>
#include <Catalog.h>
#include <Entry.h>
#include <File.h>
#include <MenuItem.h>
@@ -29,11 +30,13 @@
#include <tracker_private.h>
#include "Commands.h"
#include "Common.h"
#include "DiskUsage.h"
#include "InfoWindow.h"
#include "MainWindow.h"
#include "Scanner.h"
#undef B_TRANSLATE_CONTEXT
#define B_TRANSLATE_CONTEXT "Pie View"
static const int32 kIdxGetInfo = 0;
static const int32 kIdxOpen = 1;
@@ -96,7 +99,8 @@ void
AppMenuItem::GetContentSize(float* _width, float* _height)
{
if (_width)
*_width = fIcon->Bounds().Width() + be_plain_font->StringWidth(Label());
*_width = fIcon->Bounds().Width() +
be_plain_font->StringWidth(Label());
if (_height) {
struct font_height fh;
@@ -134,11 +138,13 @@ PieView::PieView(BVolume* volume)
fOutdated(false)
{
fMouseOverMenu = new BPopUpMenu(kEmptyStr, false, false);
fMouseOverMenu->AddItem(new BMenuItem(kMenuGetInfo, NULL), kIdxGetInfo);
fMouseOverMenu->AddItem(new BMenuItem(kMenuOpen, NULL), kIdxOpen);
fMouseOverMenu->AddItem(new BMenuItem(B_TRANSLATE("Get Info"), NULL),
kIdxGetInfo);
fMouseOverMenu->AddItem(new BMenuItem(B_TRANSLATE("Open"), NULL),
kIdxOpen);
fFileUnavailableMenu = new BPopUpMenu(kEmptyStr, false, false);
BMenuItem* item = new BMenuItem(kStrUnavail, NULL);
BMenuItem* item = new BMenuItem(B_TRANSLATE("file unavailable"), NULL);
item->SetEnabled(false);
fFileUnavailableMenu->AddItem(item);
@@ -424,14 +430,14 @@ PieView::_DrawPieChart(BRect updateRect)
parent = parent->parent;
colorIdx++;
}
_DrawDirectory(pieRect, currentDir, 0.0, 0.0, colorIdx % kBasePieColorCount,
0);
_DrawDirectory(pieRect, currentDir, 0.0, 0.0,
colorIdx % kBasePieColorCount, 0);
if (fOutdated) {
BRect b = Bounds();
float strWidth = StringWidth(kOutdatedStr);
float strWidth = StringWidth(B_TRANSLATE("Outdated view"));
float bx = (b.Width() - strWidth - kSmallHMargin);
struct font_height fh;
@@ -439,7 +445,7 @@ PieView::_DrawPieChart(BRect updateRect)
float by = (b.Height() - ceil(fh.descent) - kSmallVMargin);
SetHighColor(0x00, 0x00, 0x00);
DrawString(kOutdatedStr, BPoint(bx, by));
DrawString(B_TRANSLATE("Outdated view"), BPoint(bx, by));
}
}
@@ -711,10 +717,11 @@ PieView::_BuildOpenWithMenu(FileInfo* info)
delete type;
BMenu* openWith = new BMenu(kMenuOpenWith);
BMenu* openWith = new BMenu(B_TRANSLATE("Open With"));
if (appList.size() == 0) {
BMenuItem* item = new BMenuItem(kMenuNoApps, NULL);
BMenuItem* item = new BMenuItem(B_TRANSLATE("no supporting apps"),
NULL);
item->SetEnabled(false);
openWith->AddItem(item);
} else {
@@ -749,7 +756,7 @@ PieView::_ShowContextMenu(FileInfo* info, BPoint p)
// Add a "Rescan" option for folders.
BMenuItem* rescan = NULL;
if (info->children.size() > 0) {
rescan = new BMenuItem(kStrRescan, NULL);
rescan = new BMenuItem(B_TRANSLATE("Rescan"), NULL);
fMouseOverMenu->AddItem(rescan, kIdxRescan);
}
+17 -7
View File
@@ -13,10 +13,14 @@
#include <stdlib.h>
#include <string.h>
#include <Catalog.h>
#include <Directory.h>
#include <PathMonitor.h>
#include "Common.h"
#include "DiskUsage.h"
#undef B_TRANSLATE_CONTEXT
#define B_TRANSLATE_CONTEXT "Scanner"
using std::vector;
@@ -63,7 +67,8 @@ Scanner::MessageReceived(BMessage* message)
case kScanRefresh:
{
FileInfo* startInfo;
if (message->FindPointer(kNameFilePtr, (void **)&startInfo) == B_OK)
if (message->FindPointer(kNameFilePtr, (void **)&startInfo)
== B_OK)
_RunScan(startInfo);
break;
}
@@ -200,10 +205,13 @@ Scanner::_DirectoryContains(FileInfo* currentDir, entry_ref* ref)
void
Scanner::_RunScan(FileInfo* startInfo)
{
BString stringScan(B_TRANSLATE("Scanning %refName%"));
if (startInfo == NULL || startInfo == fSnapshot->rootDir) {
delete fSnapshot;
fSnapshot = new VolumeSnapshot(fVolume);
fTask = kStrScanningX + fSnapshot->name;
stringScan.ReplaceFirst("%refName%", fSnapshot->name.c_str());
fTask = stringScan.String();
fVolumeBytesInUse = fSnapshot->capacity - fSnapshot->freeBytes;
fVolumeBytesScanned = 0;
fProgress = 0.0;
@@ -215,8 +223,9 @@ Scanner::_RunScan(FileInfo* startInfo)
FileInfo* freeSpace = new FileInfo;
freeSpace->pseudo = true;
string s = "Free on " + fSnapshot->name;
freeSpace->ref.set_name(s.c_str());
BString string(B_TRANSLATE("Free on %refName%"));
string.ReplaceFirst("%refName%", fSnapshot->name.c_str());
freeSpace->ref.set_name(string.String());
freeSpace->size = fSnapshot->freeBytes;
fSnapshot->freeSpace = freeSpace;
@@ -225,9 +234,10 @@ Scanner::_RunScan(FileInfo* startInfo)
} else {
fSnapshot->capacity = fVolume->Capacity();
fSnapshot->freeBytes = fVolume->FreeBytes();
fTask = kStrScanningX + string(startInfo->ref.name);
stringScan.ReplaceFirst("%refName%", startInfo->ref.name);
fTask = stringScan.String();
fVolumeBytesInUse = fSnapshot->capacity - fSnapshot->freeBytes;
fVolumeBytesScanned = fVolumeBytesInUse - startInfo->size; // best guess
fVolumeBytesScanned = fVolumeBytesInUse - startInfo->size; //best guess
fProgress = 100.0 * fVolumeBytesScanned / fVolumeBytesInUse;
fLastReport = -100.0;
+11 -7
View File
@@ -14,6 +14,7 @@
#include <math.h>
#include <stdio.h>
#include <Catalog.h>
#include <Box.h>
#include <Button.h>
#include <Node.h>
@@ -22,9 +23,11 @@
#include <LayoutBuilder.h>
#include "Common.h"
#include "DiskUsage.h"
#include "Scanner.h"
#undef B_TRANSLATE_CONTEXT
#define B_TRANSLATE_CONTEXT "Status View"
StatusView::StatusView()
:
@@ -35,13 +38,13 @@ StatusView::StatusView()
SetLowColor(kPieBGColor);
fSizeView = new BStringView(NULL, kEmptyStr);
fSizeView->SetExplicitMinSize(BSize(StringWidth("9999.99 GB"),
fSizeView->SetExplicitMinSize(BSize(StringWidth(B_TRANSLATE("9999.99 GB")),
B_SIZE_UNSET));
fSizeView->SetExplicitMaxSize(BSize(StringWidth("9999.99 GB"),
fSizeView->SetExplicitMaxSize(BSize(StringWidth(B_TRANSLATE("9999.99 GB")),
B_SIZE_UNSET));
char testLabel[256];
sprintf(testLabel, kManyFiles, 999999);
sprintf(testLabel, B_TRANSLATE("%d files"), 999999);
fCountView = new BStringView(NULL, kEmptyStr);
fCountView->SetExplicitMinSize(BSize(StringWidth(testLabel), B_SIZE_UNSET));
@@ -50,7 +53,7 @@ StatusView::StatusView()
fPathView = new BStringView(NULL, kEmptyStr);
fPathView->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNSET));
fRefreshBtn = new BButton(NULL, kStrScan, new BMessage(kBtnRescan));
fRefreshBtn = new BButton(NULL, B_TRANSLATE("Scan"), new BMessage(kBtnRescan));
fRefreshBtn->SetExplicitMaxSize(BSize(B_SIZE_UNSET, B_SIZE_UNLIMITED));
@@ -119,7 +122,7 @@ StatusView::ShowInfo(const FileInfo* info)
if (!info->pseudo) {
BNode node(&info->ref);
if (node.InitCheck() != B_OK) {
fPathView->SetText(kStrUnavail);
fPathView->SetText(B_TRANSLATE("file unavailable"));
fSizeView->SetText(kEmptyStr);
fCountView->SetText(kEmptyStr);
return;
@@ -139,7 +142,8 @@ StatusView::ShowInfo(const FileInfo* info)
if (info->count > 0) {
char label[256];
sprintf(label, (info->count == 1) ? kOneFile : kManyFiles, info->count);
sprintf(label, (info->count == 1) ? B_TRANSLATE("%d file") :
B_TRANSLATE("%d files"), info->count);
fCountView->SetText(label);
} else {
fCountView->SetText(kEmptyStr);
+7 -3
View File
@@ -8,6 +8,7 @@
*/
#include <Catalog.h>
#include <Box.h>
#include <Button.h>
#include <StringView.h>
@@ -16,13 +17,16 @@
#include <LayoutBuilder.h>
#include "Common.h"
#include "DiskUsage.h"
#include "MainWindow.h"
#include "PieView.h"
#include "StatusView.h"
#include "VolumeView.h"
#undef B_TRANSLATE_CONTEXT
#define B_TRANSLATE_CONTEXT "Volume View"
const float kMinWinSize = 275.0;
VolumeView::VolumeView(const char* name, BVolume* volume)
@@ -58,7 +62,7 @@ void
VolumeView::SetPath(BPath path)
{
fPieView->SetPath(path);
fStatusView->SetBtnLabel(kStrRescan);
fStatusView->SetBtnLabel(B_TRANSLATE("Rescan"));
}
@@ -69,7 +73,7 @@ VolumeView::MessageReceived(BMessage* msg)
switch(msg->what) {
case kBtnRescan:
fPieView->MessageReceived(msg);
fStatusView->SetBtnLabel(kStrRescan);
fStatusView->SetBtnLabel(B_TRANSLATE("Rescan"));
break;
default: