Changeset 9638


Ignore:
Timestamp:
12/12/09 07:43:22 (2 years ago)
Author:
azawawi
Message:

Open Resource restarts search now when project directory or Padre's current directory changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Padre/lib/Padre/Wx/Dialog/OpenResource.pm

    r9629 r9638  
    3131    my ( $class, $main ) = @_; 
    3232 
    33     #Check if we have an open file so we can use its directory 
    34     my $filename = ( defined $main->current->document ) ? $main->current->document->filename : undef; 
    35     my $directory; 
    36     if ($filename) { 
    37  
    38         # current document's project or base directory 
    39         $directory = Padre::Util::get_project_dir($filename) 
    40             || File::Basename::dirname($filename); 
    41     } else { 
    42  
    43         # current working directory 
    44         $directory = Cwd::getcwd(); 
    45     } 
    46  
    4733    # create object 
    4834    my $self = $class->SUPER::new( 
    4935        $main, 
    5036        -1, 
    51         Wx::gettext('Open Resource') . ' - ' . $directory, 
     37        '', 
    5238        Wx::wxDefaultPosition, 
    5339        Wx::wxDefaultSize, 
     
    5541    ); 
    5642 
    57     $self->_directory($directory); 
    5843    $self->_main($main); 
     44    $self->init_search; 
    5945 
    6046    # Dialog's icon as is the same as Padre 
     
    6753} 
    6854 
     55 
     56# 
     57# Initialize search 
     58# 
     59sub init_search { 
     60    my $self = shift; 
     61 
     62    #Check if we have an open file so we can use its directory 
     63    my $doc = $self->_main->current->document; 
     64    my $filename = ( defined $doc) ? $doc->filename : undef; 
     65    my $dir; 
     66    if ($filename) { 
     67 
     68        # current document's project or base directory 
     69        $dir = Padre::Util::get_project_dir($filename) 
     70            || File::Basename::dirname($filename); 
     71    } else { 
     72 
     73        # current working directory 
     74        $dir = Cwd::getcwd(); 
     75    } 
     76     
     77     
     78    my $old_dir = $self->_directory; 
     79    if($old_dir && $old_dir ne $dir) { 
     80        # Restart search if the project/current directory is different 
     81        $self->_matched_files(undef); 
     82    } 
     83 
     84    $self->_directory($dir); 
     85    $self->SetLabel( Wx::gettext('Open Resource') . ' - ' . $dir); 
     86} 
    6987 
    7088# -- event handler 
     
    379397    my $self = shift; 
    380398 
     399    $self->init_search; 
     400 
    381401    if ( $self->IsShown ) { 
    382402        $self->SetFocus; 
Note: See TracChangeset for help on using the changeset viewer.