update version, zoom tweeks
[goodguy/history.git] / cinelerra-5.1 / guicast / bcfilebox.C
index 7baaedb3454e8a8538eef245a7faf3146c4c8beb..0fae125014cba9c23d97c15c8e9d6c3c621e4028 100644 (file)
@@ -215,7 +215,7 @@ int BC_FileBoxDirectoryText::handle_event()
        while( *cp ) ++cp;
        if( cp > path && *--cp != '/' ) return 0;
        char *file_path = FileSystem::basepath(path);
-       char *dir_path = FileSystem::basepath(filebox->fs->get_current_dir());
+       char *dir_path = FileSystem::basepath(filebox->directory);
        int ret = !strcmp(file_path, dir_path) ? 0 : 1;
        if( ret ) {
                strcpy(filebox->directory, file_path);
@@ -497,7 +497,7 @@ BC_FileBox::BC_FileBox(int x, int y, const char *init_path,
        this->want_directory = want_directory;
        if(show_all_files) fs->set_show_all();
        fs->complete_path(this->current_path);
-       fs->complete_path(this->submitted_path);
+       strcpy(this->submitted_path, this->current_path);
        fs->extract_dir(directory, this->current_path);
        fs->extract_name(filename, this->current_path);
 
@@ -535,16 +535,12 @@ BC_FileBox::BC_FileBox(int x, int y, const char *init_path,
 // Test if current directory exists
        if(!fs->is_dir(directory))
        {
-               sprintf(this->current_path, "~");
-               fs->complete_path(this->current_path);
-               fs->set_current_dir(this->current_path);
-//             fs->update(this->current_path);
-               strcpy(directory, fs->get_current_dir());
+               sprintf(directory, "~");
+               fs->complete_path(directory);
+               strcpy(current_path,directory);
                filename[0] = 0;
        }
-       else
-               fs->set_current_dir(this->directory);
-
+       fs->set_current_dir(directory);
 
        if(h_padding == -1)
        {
@@ -592,10 +588,6 @@ void BC_FileBox::create_objects()
                fs->set_filter(get_resources()->filebox_filter);
        }
 
-       fs->set_sort_order(sort_order);
-       fs->set_sort_field(column_type[sort_column]);
-       fs->update(directory);
-
        create_icons();
        create_tables();
 
@@ -633,11 +625,9 @@ void BC_FileBox::create_objects()
 
        add_subwindow(recent_popup = new BC_FileBoxRecent(this, x, y));
        add_subwindow(directory_title = new BC_FileBoxDirectoryText(x, y, this));
-       directory_title->reposition_window(x, y,
-               get_w() - recent_popup->get_w() -  20, 1);
-       recent_popup->reposition_window(
-               x + directory_title->get_w(), y,
-               directory_title->get_w(), 200);
+       directory_title->reposition_window(x, y, get_w() - recent_popup->get_w() -  20, 1);
+       x += directory_title->get_w() + 8;
+       recent_popup->reposition_window(x, y, directory_title->get_w(), 200);
 
        x = 10;
        y += directory_title->get_h() + 5;
@@ -653,8 +643,12 @@ void BC_FileBox::create_objects()
        if( newest >= 0 ) {
                strcpy(directory, resources->filebox_history[newest].path);
                fs->change_dir(directory, 0);
+               strcpy(directory, fs->get_current_dir());
                directory_title->update(fs->get_current_dir());
        }
+       fs->set_sort_order(sort_order);
+       fs->set_sort_field(column_type[sort_column]);
+       fs->update(directory);
 
 // Create recent dir list
        create_history();
@@ -678,7 +672,7 @@ void BC_FileBox::create_objects()
 
        rename_thread = new BC_RenameThread(this);
 
-
+       refresh();
        show_window();
 }
 
@@ -742,7 +736,7 @@ int BC_FileBox::resize_event(int w, int h)
                get_w() - recent_popup->get_w() -  20,
                1);
        recent_popup->reposition_window(
-               directory_title->get_x() + directory_title->get_w(),
+               directory_title->get_x() + directory_title->get_w() + 8,
                directory_title->get_y(),
                directory_title->get_w() + recent_popup->get_w(),
                recent_popup->get_h());