Permalink
Comparing changes
Open a pull request
- 2 commits
- 6 files changed
- 0 commit comments
- 2 contributors
Unified
Split
Showing
with
42 additions
and 209 deletions.
- +8 −3 src/Hare/AppView.cpp
- +1 −35 src/Hare/AppWindow.cpp
- +4 −1 src/Hare/EditorView.cpp
- +5 −20 src/Hare/EncoderListView.cpp
- +20 −138 src/Hare/Settings.cpp
- +4 −12 src/Hare/Settings.h
| @@ -90,7 +90,7 @@ AppView::InitView() | ||
| new BMessage(CANCEL_MSG)); | ||
|
|
||
| listView = new EncoderListView(); | ||
| listView->SetExplicitMinSize(BSize(0, 50)); | ||
| listView->SetExplicitMinSize(BSize(0, 150)); | ||
| listView->SetExplicitMaxSize(BSize(B_SIZE_UNLIMITED, B_SIZE_UNLIMITED)); | ||
|
|
||
| BString remaining(STATUS_TRAILING_LABEL); | ||
| @@ -111,8 +111,13 @@ AppView::InitView() | ||
| .End() | ||
| .AddGroup(B_HORIZONTAL) | ||
| .Add(statusBar, 0.0f) | ||
| .Add(cancelButton, 1.0f) | ||
| .Add(encodeButton, 1.0f) | ||
| .AddGroup(B_VERTICAL) | ||
| .AddStrut(B_USE_HALF_ITEM_SPACING) | ||
| .AddGroup(B_HORIZONTAL) | ||
| .Add(cancelButton, 1.0f) | ||
| .Add(encodeButton, 1.0f) | ||
| .End() | ||
| .End() | ||
| .End() | ||
| .End(); | ||
| } | ||
| @@ -32,7 +32,7 @@ | ||
|
|
||
| AppWindow::AppWindow() | ||
| : | ||
| BWindow(BRect(0,0,0,0) , APPLICATION, B_DOCUMENT_WINDOW, | ||
| BWindow(BRect(0,0,0,0) , APPLICATION, B_TITLED_WINDOW, | ||
| B_ASYNCHRONOUS_CONTROLS| B_AUTO_UPDATE_SIZE_LIMITS) | ||
| { | ||
| PRINT(("AppWindow::AppWindow()\n")); | ||
| @@ -127,7 +127,6 @@ AppWindow::InitMenus() | ||
|
|
||
| BMenu* fileMenu = new BMenu(FILE_MENU); | ||
| BMenu* editMenu = new BMenu(EDIT_MENU); | ||
| BMenu* columnMenu = new BMenu(COLUMN_MENU); | ||
|
|
||
| loadCdMenu = new BMenu(LOAD_CD_SUBMENU); | ||
| LoadCDMenu(); | ||
| @@ -146,37 +145,11 @@ AppWindow::InitMenus() | ||
| editMenu->AddItem(new BMenuItem(REMOVE, | ||
| new BMessage(MENU_ITEM_SELECTED), 'R')); | ||
|
|
||
| columnMenu->AddItem(new BMenuItem(FILE_COLUMN, | ||
| new BMessage(MENU_ITEM_SELECTED), '1')); | ||
| columnMenu->AddItem(new BMenuItem(SAVE_AS_COLUMN, | ||
| new BMessage(MENU_ITEM_SELECTED), '2')); | ||
| columnMenu->AddItem(new BMenuItem(ARTIST_COLUMN, | ||
| new BMessage(MENU_ITEM_SELECTED), '3')); | ||
| columnMenu->AddItem(new BMenuItem(ALBUM_COLUMN, | ||
| new BMessage(MENU_ITEM_SELECTED), '4')); | ||
| columnMenu->AddItem(new BMenuItem(TITLE_COLUMN, | ||
| new BMessage(MENU_ITEM_SELECTED), '5')); | ||
| columnMenu->AddItem(new BMenuItem(YEAR_COLUMN, | ||
| new BMessage(MENU_ITEM_SELECTED), '6')); | ||
| columnMenu->AddItem(new BMenuItem(COMMENT_COLUMN, | ||
| new BMessage(MENU_ITEM_SELECTED), '7')); | ||
| columnMenu->AddItem(new BMenuItem(TRACK_COLUMN, | ||
| new BMessage(MENU_ITEM_SELECTED), '8')); | ||
| columnMenu->AddItem(new BMenuItem(GENRE_COLUMN, | ||
| new BMessage(MENU_ITEM_SELECTED), '9')); | ||
|
|
||
| bool* columnsShown = settings->ColumnsShown(); | ||
| for (int i = 1; i < NUM_OF_COLUMNS; i++) { | ||
| BMenuItem* item = columnMenu->ItemAt(i - 1); | ||
| item->SetMarked(columnsShown[i]); | ||
| } | ||
|
|
||
| encoderMenu = new BMenu(ENCODER_MENU); | ||
| encoderMenu->SetRadioMode(true); | ||
|
|
||
| menuBar->AddItem(fileMenu); | ||
| menuBar->AddItem(editMenu); | ||
| menuBar->AddItem(columnMenu); | ||
| menuBar->AddItem(encoderMenu); | ||
| LoadEncoderMenu(); | ||
|
|
||
| @@ -340,13 +313,6 @@ AppWindow::MenuItemSelected(BMessage* message) | ||
| } else { | ||
| AddVolumeToList(item->Label()); | ||
| } | ||
| } else if (strcmp(menu->Name(), COLUMN_MENU) == 0) { | ||
| item->SetMarked(!item->IsMarked()); | ||
| BMessage msg(COLUMN_SET_SHOWN); | ||
| msg.AddBool("show", item->IsMarked()); | ||
| int32 column = menu->IndexOf(item) + 1; | ||
| msg.AddInt32("column", column); | ||
| viewMessenger->SendMessage(&msg); | ||
| } else if (strcmp(menu->Name(), ENCODER_MENU) == 0) { | ||
| if (!settings->IsEncoding()) { | ||
| PRINT(("ENCODER SELECTED: %s\n", item->Label())); | ||
| @@ -141,7 +141,10 @@ EditorView::InitView() | ||
| .Add(commentTextControl, 1, 5) | ||
| .Add(genreCheckBox, 0, 6) | ||
| .Add(genreBox, 1, 6) | ||
| .Add(applyButton, 10, 10) | ||
| .AddGroup(B_HORIZONTAL, 0, 1, 7) | ||
| .AddGlue() | ||
| .Add(applyButton) | ||
| .End() | ||
| .End(); | ||
| } | ||
|
|
||
| @@ -24,7 +24,6 @@ EncoderListView::EncoderListView() | ||
| PRINT(("EncoderListView::EncoderListView(BRect)\n")); | ||
|
|
||
| SetSelectionMode(B_MULTIPLE_SELECTION_LIST); | ||
| SetColumnFlags(B_ALLOW_COLUMN_RESIZE); | ||
|
|
||
| InitView(); | ||
| } | ||
| @@ -35,15 +34,9 @@ EncoderListView::~EncoderListView() | ||
|
|
||
| delete checkMark; | ||
|
|
||
| bool columnsShown[NUM_OF_COLUMNS]; | ||
| float columnWidths[NUM_OF_COLUMNS]; | ||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| BColumn* column = ColumnAt(i); | ||
| columnsShown[i] = column->IsVisible(); | ||
| columnWidths[i] = column->Width(); | ||
| } | ||
| settings->SetColumnsShown(columnsShown); | ||
| settings->SetColumnWidths(columnWidths); | ||
| BMessage columnState; | ||
| SaveState(&columnState); | ||
| settings->SetColumnsState(&columnState); | ||
| } | ||
|
|
||
| void | ||
| @@ -57,7 +50,7 @@ EncoderListView::InitView() | ||
| float maxWidth = 1000; | ||
| int32 truncate = 3; | ||
|
|
||
| AddColumn(new BBitmapColumn("", 16, 16, 16, B_ALIGN_CENTER), COMPLETE_COLUMN_INDEX); | ||
| AddColumn(new BBitmapColumn("Icon", 16, 16, 16, B_ALIGN_CENTER), COMPLETE_COLUMN_INDEX); | ||
|
|
||
| minWidth = StringWidth(FILE_COLUMN) + 20; | ||
| AddColumn(new BStringColumn(FILE_COLUMN, minWidth, minWidth, maxWidth, truncate, B_ALIGN_LEFT), FILE_COLUMN_INDEX); | ||
| @@ -86,15 +79,7 @@ EncoderListView::InitView() | ||
| minWidth = StringWidth(GENRE_COLUMN) + 20; | ||
| AddColumn(new BStringColumn(GENRE_COLUMN, minWidth, minWidth, maxWidth, truncate, B_ALIGN_LEFT), GENRE_COLUMN_INDEX); | ||
|
|
||
| bool* columnsShown = settings->ColumnsShown(); | ||
| float* columnWidths = settings->ColumnWidths(); | ||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| BColumn* column = ColumnAt(i); | ||
| column->SetVisible(columnsShown[i]); | ||
| if (columnWidths[i] > 0.0) { | ||
| column->SetWidth(columnWidths[i]); | ||
| } | ||
| } | ||
| LoadState(settings->ColumnsState()); | ||
| } | ||
|
|
||
| void | ||
| @@ -33,18 +33,6 @@ Settings::Settings() | ||
| encoder = NULL; | ||
| strcpy(encoderName, DEFAULT_ENCODER); | ||
|
|
||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| columnDisplayOrder[i] = i; | ||
| } | ||
|
|
||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| columnsShown[i] = true; | ||
| } | ||
|
|
||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| columnWidths[i] = 0.0; | ||
| } | ||
|
|
||
| app_info info; | ||
| be_app->GetAppInfo(&info); | ||
|
|
||
| @@ -72,6 +60,12 @@ Settings::Settings(BMessage* archive) | ||
| windowFrame = BRect(50, 50, 50, 50); | ||
| } | ||
| */ | ||
|
|
||
| status = archive->FindMessage("columnsState", &columnsState); | ||
| if (status != B_OK) { | ||
| PRINT(("Error loading Columns State")); | ||
| } | ||
|
|
||
| encoding = false; | ||
| encoder = NULL; | ||
| status = archive->FindString("encoderName", &tmp); | ||
| @@ -82,47 +76,6 @@ Settings::Settings(BMessage* archive) | ||
| strcpy(encoderName, tmp.String()); | ||
| } | ||
|
|
||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| status = archive->FindInt32("columnDisplayOrder", i, | ||
| &columnDisplayOrder[i]); | ||
| if (status != B_OK) { | ||
| PRINT(("Error loading COLUMN_DISPLAY_ORDER\n")); | ||
| break; | ||
| } | ||
| } | ||
| if (status != B_OK) { | ||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| columnDisplayOrder[i] = i; | ||
| } | ||
| } | ||
|
|
||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| status = archive->FindBool("columnsShown", i, | ||
| &columnsShown[i]); | ||
| if (status != B_OK) { | ||
| PRINT(("Error loading COLUMNS_SHOWN\n")); | ||
| break; | ||
| } | ||
| } | ||
| if (status != B_OK) { | ||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| columnsShown[i] = true; | ||
| } | ||
| } | ||
|
|
||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| status = archive->FindFloat("columnWidths", i, &columnWidths[i]); | ||
| if (status != B_OK) { | ||
| PRINT(("Error loading COLUMN_WIDTHS\n")); | ||
| break; | ||
| } | ||
| } | ||
| if (status != B_OK) { | ||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| columnWidths[i] = 0.0; | ||
| } | ||
| } | ||
|
|
||
| app_info info; | ||
| be_app->GetAppInfo(&info); | ||
|
|
||
| @@ -172,32 +125,8 @@ Settings::Archive(BMessage* archive, bool deep) const | ||
| if (status == B_OK) { | ||
| status = archive->AddString("encoderName", encoderName); | ||
| } | ||
|
|
||
| if (status == B_OK) { | ||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| status = archive->AddInt32("columnDisplayOrder", columnDisplayOrder[i]); | ||
| if (status != B_OK) { | ||
| break; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| if (status == B_OK) { | ||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| status = archive->AddBool("columnsShown", columnsShown[i]); | ||
| if (status != B_OK) { | ||
| break; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| if (status == B_OK) { | ||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| status = archive->AddFloat("columnWidths", columnWidths[i]); | ||
| if (status != B_OK) { | ||
| break; | ||
| } | ||
| } | ||
| status = archive->AddMessage("columnsState", &columnsState); | ||
| } | ||
|
|
||
| return status; | ||
| @@ -245,6 +174,19 @@ Settings::SaveSettings() | ||
| archive.Flatten(&settings); | ||
| } | ||
| } | ||
|
|
||
|
|
||
| void | ||
| Settings::SetColumnsState(BMessage* message) | ||
| { | ||
| columnsState = *message; | ||
| } | ||
|
|
||
| BMessage* | ||
| Settings::ColumnsState() | ||
| { | ||
| return &columnsState; | ||
| } | ||
| /* | ||
| BRect | ||
| Settings::WindowFrame() | ||
| @@ -311,66 +253,6 @@ Settings::SetEncoderName(const char* value) | ||
| } | ||
| } | ||
|
|
||
| int32* | ||
| Settings::ColumnDisplayOrder() | ||
| { | ||
| PRINT(("Settings::ColumnDisplayOrder()\n")); | ||
|
|
||
| return columnDisplayOrder; | ||
| } | ||
|
|
||
| void | ||
| Settings::SetColumnDisplayOrder(const int32* value) | ||
| { | ||
| PRINT(("Settings::SetColumnDisplayOrder(const int32*)\n")); | ||
|
|
||
| if (!encoding) { | ||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| columnDisplayOrder[i] = value[i]; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| bool* | ||
| Settings::ColumnsShown() | ||
| { | ||
| PRINT(("Settings::ColumnsShown()\n")); | ||
|
|
||
| return columnsShown; | ||
| } | ||
|
|
||
| void | ||
| Settings::SetColumnsShown(const bool* value) | ||
| { | ||
| PRINT(("Settings::SetColumnsShown(const bool*)\n")); | ||
|
|
||
| if (!encoding) { | ||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| columnsShown[i] = value[i]; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| float* | ||
| Settings::ColumnWidths() | ||
| { | ||
| PRINT(("Settings::ColumnWidths()\n")); | ||
|
|
||
| return columnWidths; | ||
| } | ||
|
|
||
| void | ||
| Settings::SetColumnWidths(const float* value) | ||
| { | ||
| PRINT(("Settings::SetColumnWidths(const float*)\n")); | ||
|
|
||
| if (!encoding) { | ||
| for (int i = 0; i < NUM_OF_COLUMNS; i++) { | ||
| columnWidths[i] = value[i]; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| const char* | ||
| Settings::AddOnsDirectory() | ||
| { | ||
| @@ -32,27 +32,19 @@ class Settings : public BArchivable { | ||
| const char* EncoderName(); | ||
| void SetEncoderName(const char* value); | ||
|
|
||
| int32* ColumnDisplayOrder(); | ||
| void SetColumnDisplayOrder(const int32* value); | ||
|
|
||
| bool* ColumnsShown(); | ||
| void SetColumnsShown(const bool* value); | ||
|
|
||
| float* ColumnWidths(); | ||
| void SetColumnWidths(const float* value); | ||
|
|
||
| const char* AddOnsDirectory(); | ||
|
|
||
| void SetColumnsState(BMessage* message); | ||
| BMessage* ColumnsState(); | ||
|
|
||
| void PrintToStream(); | ||
| private: | ||
| // BRect windowFrame; | ||
| bool encoding; | ||
| AEEncoder* encoder; | ||
| char encoderName[B_FILE_NAME_LENGTH]; | ||
| char addonDirectory[B_PATH_NAME_LENGTH]; | ||
| int32 columnDisplayOrder[NUM_OF_COLUMNS]; | ||
| bool columnsShown[NUM_OF_COLUMNS]; | ||
| float columnWidths[NUM_OF_COLUMNS]; | ||
| BMessage columnsState; | ||
|
|
||
| }; | ||
|
|
||