Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also .

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also .
base repository: HaikuArchives/Hare
base: 05500f33d667
head repository: HaikuArchives/Hare
compare: ae04be447148
  • 2 commits
  • 6 files changed
  • 0 commit comments
  • 2 contributors
Commits on Mar 05, 2018
* Small changes to the layout
* Use the ColumnListView Load/Save state for saving the columns preferences
* Remove Columns menu and use the default ColumnListView menu
* Fixes #19
Commits on Mar 06, 2018
Layout and ColumnListView fix
Showing with 42 additions and 209 deletions.
  1. +8 −3 src/Hare/AppView.cpp
  2. +1 −35 src/Hare/AppWindow.cpp
  3. +4 −1 src/Hare/EditorView.cpp
  4. +5 −20 src/Hare/EncoderListView.cpp
  5. +20 −138 src/Hare/Settings.cpp
  6. +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;

};

No commit comments for this range

You can’t perform that action at this time.