Russian Qt Forum

Qt => Вопросы новичков => Тема начата: koldun90 от Август 08, 2014, 15:07



Название: вопрос по qdekstopservice(Ассоциация файла с приложением)
Отправлено: koldun90 от Август 08, 2014, 15:07
Здравствуйте вопрос заключается  в следующем
вообщем есть файловый менеджер
Код:
void MainWindow::on_listView_3_doubleClicked(const QModelIndex &index)   //двойной клик по объектам //файловой системы
{

    QString str=model1->fileInfo(index).absoluteFilePath();  // берем абсолютный путь папки или файла
    if (model1->fileInfo(index).isDir())  //если это папка
    {
        ui->listView_3->setRootIndex(model1->index(str)); //то переходим в каталог

    }
    if (model1->fileInfo(index).isFile())  // если файл
    {
        QDesktopServices::openUrl(QUrl(str));  // то открываем его в ассоциированном с ним приложении
    }
}
так вот вопрос в следующем когда собственно  я открываю файл первый раз появляется окно
(http://s58.radikal.ru/i162/1408/7a/784bec18f035.png) (http://www.radikal.ru)
потом допустим я выбираю ассоциированное приложение нажимаю запуск.
И если в следующий раз запустить этот файл окно уже не появится, а файл будет открываться
всегда в этом приложении.
Так вот можно сделать так чтобы при каждом запуске файла возникало окно выбора приложения


Название: Re: вопрос по qdekstopservice
Отправлено: Bepec от Август 08, 2014, 15:13
Конечно. Вам всего то нужно удалить ассоциацию с файлом из системы :) ОС в смысле, ведь это именно она выдаёт это окно и запрашивает ассоциацию :)


Название: Re: вопрос по qdekstopservice
Отправлено: koldun90 от Август 08, 2014, 19:32
а вы не могли бы подсказать как это в unix делается?


Название: Re: вопрос по qdekstopservice
Отправлено: Bepec от Август 08, 2014, 20:36
Не могу, я виндузятник :)


Название: Re: вопрос по qdekstopservice
Отправлено: kambala от Август 08, 2014, 23:18
в каждой среде по-разному скорее всего


Название: Re: вопрос по qdekstopservice
Отправлено: koldun90 от Август 09, 2014, 12:10
так и не нашел как решить данную проблему...

вот статья
http://slicks.name/ubuntu/associaciya-fajlov-s-prilozheniyami-v-ubuntu.html


когда я захожу под root ом
в

/usr/share/applications/
там два файла:
defaults.list
mimeinfo.cache

и даже если я их удалю то все равно файл открывается в ассоциированном приложении
я взял под рутом удалил два этих файла
перезашел под рутом открыл  файл с расширением .txt
он как и открывался в ассоциированном приложение так и открывается в ассоциированном
мне просто нужно как бы обнулить ассоциацию как это можно сделать?
мб есть какая нибудь команда по обнулению ассоциации файла определенного расширения и тд и тп?