示例#1
0
bool MItem::result( WFileName& fn )
{
    if( ismakeable() ) {
        fn.setFName( fName() );
        if( _isTarget ) {
            fn.setExt( ext() );
        } else {
            fn.setExt( rule()->resultExt() );
        }
        return( true );
    }
    return( false );
}
示例#2
0
void MComponent::makeNames( const char* spec, WFileName& filename, WFileName& relname, WFileName& targ )
{
    relname = spec;
    relname.noPath( targ );
    relname.setExt( ".tgt" );
    filename = relname;
    filename.absoluteTo( _project->filename() );
}
示例#3
0
void VEditDlg::browseButton( WWindow* ) {
    WWindow *old;
    WFileName fn;

    old = WWindow::hasFocus();
    fn = _browseDialog->getOpenFileName( NULL, "Enter target filename", WFOpenExisting );
    if( fn.size() > 0 ) {
        fn.setExt( "" );
        _editorName->setText( fn );
    }
    old->setFocus();
}
示例#4
0
bool MComponent::writeCBR( bool mustExist )
{
    bool found_a_mbr = false;
    if( mustExist )
        found_a_mbr = true;
    for( int i=0; i<_workFiles.count(); i++ ) {
        MWorkFile* w = (MWorkFile*)_workFiles[i];
        if( w->browseable() ) {
            WFileName browfile( _filename );
            browfile.setExt( ".cbr" );
            WFile brow;
            if( brow.open( browfile, OStyleWrite ) ) {
                WFileName tfile;
                _target->absResult( tfile );
                tfile.setExt( "dbr" );
                brow.printf( "d %s\n", (const char*)tfile );
                for( ; i<_workFiles.count(); i++ ) {
                    MWorkFile* w = (MWorkFile*)_workFiles[i];
                    if( w->browseable() ) {
                        w->item()->absResult( tfile );
                        tfile.setExt( "mbr" );
                        if( mustExist ) {
                            if( access( (const char*)tfile, F_OK ) == 0 )  {
                                // file must be there
                                brow.printf( "f %s\n", (const char*)tfile );
                                found_a_mbr = true;
                            }
                        } else {
                            brow.printf( "f %s\n", (const char*)tfile );
                        }
                    }
                }
                brow.close();
            }
            if( found_a_mbr ) return( true );
        }
    }
    return( false );
}
示例#5
0
bool MComponent::tryBrowse()
{
    bool rc = false;
    initWorkFiles( _workFiles );

    for( int i=0; i<_workFiles.count(); i++ ) {
        MItem* m = ((MWorkFile*)_workFiles[i])->item();

        WFileName fn = m->component()->relFilename(); // target file name
        fn.setFName( m->fName() );
        fn.setExt( ".mbr" );

        if( access( (const char *)fn, F_OK ) == 0 ) {
            rc = true;
            break;
        }
    }
    finiWorkFiles();
    return( rc );
}
示例#6
0
bool Browse::makeFileName( char *buff )
//-------------------------------------
{
    WFileName   file;
    WFileName   nfile;
    char        *p;
    char        *q;

    file = buff;
    if( file.attribs() ) {
        // file exists
        return( true );
    }

    if( _searchPath.length() == 0 ) {
        return( false );
    }

    p = new char [_searchPath.length() + 1];
    if( p == NULL )
        return( false );
    strcpy( p, _searchPath );

    q = strtok( p, ";" );
    while( q != NULL ) {
        nfile = "";
        nfile.setDir( q );
        nfile.setFName( file.fName() );
        nfile.setExt( file.ext() );
        if( nfile.attribs() ) {
            strcpy( buff, nfile.gets() );
            delete[] p;
            return( true );
        }
        q = strtok( NULL, ";" );
    }
    delete[] p;
    return( false );
}
示例#7
0
void EdModule::addButton( WWindow * )
//-----------------------------------
{
    int             i;
    int             fileIdx;
    WFileNameList   files;
    WFileDialog     fileSelect( this, EdModuleFilter );
    bool            result;
    WFileName *     file;
    bool            found;

    result = fileSelect.getOpenFileName( files, NULL,
                                        "Select Module File(s)",
                                        WFOpenNew );

    if( result ) {
        for( fileIdx = 0; fileIdx < files.count(); fileIdx += 1 ) {
            file = new WFileName( files.cStringAt( fileIdx ) );

            if( *( file->ext() ) == '\0' ) {
                file->setExt("mbr");
            }
            file->absoluteTo();
            file->toLower();

            found = false;

            if( !file->attribs() ) {
                errMessage( "Module %s%s does not exist", file->fName(), file->ext() );
                found = true;
            }

            for( i = 0; i < _moduleBox->count() && !found; i += 1 ) {
                WString * str = (*_moduleBox)[ i ]->_str;

                if( *str == *file ) {
                    errMessage( "Module %s%s already in project", file->fName(), file->ext() );
                    found = true;
                }
            }

            for( int i = 0; i < _removedModuleItems->entries() && !found; i++ ) {
                WString * str = (*_removedModuleItems)[ i ]->_str;

                if( *str == *file ) {
                    ModuleItem * item = _removedModuleItems->removeAt( i ) ;
                    item->_enabled = true;
                    _moduleBox->insert( item );

                    found = true;
                }
            }

            if( !found ) {
                ModuleItem * item = new ModuleItem( file, true );
                _moduleBox->insert( item );
            }

        } /* for( i < files.count() ) */

    } /* if( result ) */
    _moduleBox->reset();

}