void Widget::on_pushButtonDelete_clicked()
{

    ui->treeView->setSelectionMode(QTreeView::ExtendedSelection);
    ui->treeView->setSelectionBehavior(QTreeView::SelectRows);
    QModelIndexList list = ui->treeView->selectionModel()->selectedIndexes();
    QDirModel* model = (QDirModel*)ui->treeView->model();
    QModelIndex index = list[0];
    QFileInfo fileInfo = model->fileInfo(index);
    QString selectedfilepath = fileInfo.absoluteFilePath();
    qDebug() << selectedfilepath << '\n';

    QSqlQuery query;
    //query.exec("INSERT INTO test VALUES('','sss','sss')");
    //query.exec("SELECT * FROM test");
    QString selectedfromdb = "SELECT absdirectory FROM test WHERE symlinkdirectory = '" + selectedfilepath + "'";
    query.exec(selectedfromdb);
    query.next();
    QString selectedasbd = query.value(0).toString();
    qDebug() << selectedasbd << "\n";

    QByteArray ba1 = selectedasbd.toAscii();//将所得文件名转换为字符//yfx0527
    const char *dirnow1 = ba1.data();
    remove(dirnow1);
    QByteArray ba2 = selectedfilepath.toAscii();//将所得文件名转换为字符//yfx0527
    const char *dirnow2 = ba2.data();
    remove(dirnow2);
}
void ItemLibraryTreeView::activateItem( const QModelIndex & /*index*/)
{
    QMimeData *mimeData = model()->mimeData(selectedIndexes());
    if (!mimeData)
        return;

    QString name;
    QDirModel *dirModel = qobject_cast<QDirModel*>(model());
    Q_ASSERT(dirModel);
    QFileInfo fileInfo = dirModel->fileInfo(selectedIndexes().front());
    QPixmap pixmap(fileInfo.absoluteFilePath());
    if (!pixmap.isNull()) {
        name = "image^" + fileInfo.absoluteFilePath();
        emit itemActivated(name);
    }
}
void Widget::on_pushButtonGetIDV3_clicked()
{
    ui->treeView->setSelectionMode(QTreeView::ExtendedSelection);
    ui->treeView->setSelectionBehavior(QTreeView::SelectRows);
    QModelIndexList list = ui->treeView->selectionModel()->selectedIndexes();
    QDirModel* model = (QDirModel*)ui->treeView->model();
    QModelIndex index = list[0];
    QFileInfo fileInfo = model->fileInfo(index);
    QString selectedfilepath = fileInfo.absoluteFilePath();
    qDebug() << selectedfilepath << '\n';

    QSqlQuery query;
    //query.exec("INSERT INTO test VALUES('','sss','sss')");
    //query.exec("SELECT * FROM test");
    QString selectedfromdb = "SELECT absdirectory FROM test WHERE symlinkdirectory = '" + selectedfilepath + "'";
    query.exec(selectedfromdb);
    query.next();
    QString selectedasbd = query.value(0).toString();
    qDebug() << selectedasbd << "\n";

    FILE *pFile; //文件指针
    Mp3Info song;
    QByteArray ba = selectedasbd.toAscii();//将所得文件名转换为字符//yfx0527
    const char *dirnow = ba.data();
    //printf("%s\n",dirnow);
    pFile = fopen(dirnow, "r");
    fseek(pFile, -128, SEEK_END);
    fread(&song, 1, sizeof (Mp3Info), pFile); //读取MP3文件ID3V标签
    //printf("%s\n",song.album);
    QString title = QString::fromLocal8Bit(song.title,30);
    QString artist = QString::fromLocal8Bit(song.artist,30);
    QString album = QString::fromLocal8Bit(song.album,30);
    QString year = QString::fromLocal8Bit(song.year,4);
    QString comment = QString::fromLocal8Bit(song.comment,28);
    ui->lineEditTitle->setText(title);
    ui->lineEditArtist->setText(artist);
    ui->lineEditAlbum->setText(album);
    ui->lineEditYear->setText(year);
    ui->lineEditComment->setText(comment);
    fclose(pFile);
}
Exemplo n.º 4
0
/**
 * Przechwytuje zdarzenie wywołania menu kontekstowego.
 *
 * Wyświetla menu kontekstowe z akcjami widoku. Jeśli bieżący element jest
 * katalogiem, pierwsza z akcji menu służy do zwinięcia/rozwinięcia gałęzi
 * drzewa. Jeśli bieżący element jest plikiem, pierwsza akcja wczytuje
 * plik z przestrzeni roboczej.
 *
 * @param event obiekt informacji o zdarzeniu
 */
void WorkspaceTreeView::contextMenuEvent(QContextMenuEvent* event)
{
    QMenu menu(this);

    QDirModel* dirModel = static_cast<QDirModel*>(model());
    if (dirModel->fileInfo(currentIndex()).isDir())
    {
        bool exp = isExpanded(currentIndex());
        actionExpandOrCollapse->setText(exp ? tr("Collapse") : tr("Expand"));
        menu.addAction(actionExpandOrCollapse);
    }
    else
    {
        menu.addAction(actionLoad);
    }

    menu.addAction(actionRemove);
    menu.addSeparator();
    menu.addAction(actionRefresh);
    menu.exec(event->globalPos());
}
void Widget::on_pushButtonChIDV3_clicked()
{
    ui->treeView->setSelectionMode(QTreeView::ExtendedSelection);
    ui->treeView->setSelectionBehavior(QTreeView::SelectRows);
    QModelIndexList list = ui->treeView->selectionModel()->selectedIndexes();
    QDirModel* model = (QDirModel*)ui->treeView->model();
    QModelIndex index = list[0];
    QFileInfo fileInfo = model->fileInfo(index);
    QString selectedfilepath = fileInfo.absoluteFilePath();
    qDebug() << selectedfilepath << '\n';

    QSqlQuery query;
    //query.exec("INSERT INTO test VALUES('','sss','sss')");
    //query.exec("SELECT * FROM test");
    QString selectedfromdb = "SELECT absdirectory FROM test WHERE symlinkdirectory = '" + selectedfilepath + "'";
    query.exec(selectedfromdb);
    query.next();
    QString selectedasbd = query.value(0).toString();
    qDebug() << selectedasbd << "\n";

    FILE *pFile; //文件指针
    Mp3Info song;
    QByteArray ba = selectedasbd.toAscii();//将所得文件名转换为字符//yfx0527
    const char *dirnow = ba.data();
    //printf("%s\n",dirnow);
    pFile = fopen(dirnow, "wb");
    fseek(pFile, -125, SEEK_END);

    int i = 0;
    char title[30];
    for(i = 0;i < 30;i ++)
    {
        title[i] = ' ';
    }
    char artist[30];
    for(i = 0;i < 30;i ++)
    {
        artist[i] = ' ';
    }
    char album[30];
    for(i = 0;i < 30;i ++)
    {
        album[i] = ' ';
    }
    char year[4];
    for(i = 0;i < 4;i ++)
    {
        year[i] = ' ';
    }
    char comment[28];
    for(i = 0;i < 28;i ++)
    {
        comment[i] = ' ';
    }

    QByteArray ba1;
    ba1 = ui->lineEditArtist->text().toAscii();//将所得文件名转换为字符//yfx0527
    strcpy(artist,ba1.data());
    ba1 = ui->lineEditTitle->text().toAscii();//将所得文件名转换为字符//yfx0527
    strcpy(title,ba1.data());
    ba1 = ui->lineEditAlbum->text().toAscii();//将所得文件名转换为字符//yfx0527
    strcpy(album,ba1.data());
    ba1 = ui->lineEditYear->text().toAscii();//将所得文件名转换为字符//yfx0527
    strcpy(year,ba1.data());
    ba1 = ui->lineEditComment->text().toAscii();//将所得文件名转换为字符//yfx0527
    strcpy(comment,ba1.data());

    char whatmm[3] = "XX";
    fwrite(whatmm,sizeof(char),3,pFile);
    fwrite(title,sizeof(char),30,pFile);
    fwrite(artist,sizeof(char),30,pFile);
    fwrite(album,sizeof(char),30,pFile);
    fwrite(year,sizeof(char),4,pFile);
    fwrite(comment,sizeof(char),28,pFile);

    fclose(pFile);
}