Russian Qt Forum
Сентябрь 29, 2024, 08:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [Решено]Вопрос по поводу QClipboard  (Прочитано 4662 раз)
merke
Гость
« : Март 20, 2010, 22:35 »

Всем привет! В общем пишу Download Manager на кутях, хочу сделать такую фичу, как например в Download Master: копируешь ссылку -> прога определяет, что в буфере находится именно ссылка и начинается скачивание.
Короче пытаюсь реализовать это так:

Код:
const QClipboard *clipboard = QApplication::clipboard();
const QMimeData *mimeData = clipboard->mimeData();

connect(clipboard, SIGNAL(changed(QClipboard::Mode)), SLOT(up_text()));

void SomeClass::up_text()
{
    if (mimeData->hasUrls())
    ...
}

Дальше я буду вытаскивать ссылки из QList и т.д. и т.п. Но столкнулся с проблемой: условие if (mimeData->hasUrls()) вообще не срабатывает хоть тресни, копирую в буфер хоть текст, хоть ссылки, что угодно, всё это определяется как Url.

Что делать? Помогите, добрые люди! А то уже нервы сдают, на таком лёгком и застрял!

Буду очень благодарен за оказанную мне помощь!

С уважением, Александр!

« Последнее редактирование: Март 21, 2010, 11:24 от merke » Записан
ритт
Гость
« Ответ #1 : Март 20, 2010, 23:04 »

а если
Код:
void SomeClass::up_text()
{
    if (clipboard->mimeData()->hasUrls())
    ...
}
?
Записан
merke
Гость
« Ответ #2 : Март 21, 2010, 08:32 »

К сожалению такой вариант не работает. Грустный
Записан
mcrads
Гость
« Ответ #3 : Март 21, 2010, 10:33 »

А если читать из буфера строчку и сравнивать ее первые символы с http:// или ftp:// и пр. началами ссылок? а еще можно читать последние символы и сравнивать с *.* чтобы не скачивать сайты да страницы.
Записан
merke
Гость
« Ответ #4 : Март 21, 2010, 11:23 »

Спасибо! Блин ведь была вчера такая идея и забыл)
Записан
merke
Гость
« Ответ #5 : Март 21, 2010, 13:18 »

Кому нибудь может пригодится:

Код:
const QClipboard *clipboard = QApplication::clipboard();
connect(clipboard, SIGNAL(changed(QClipboard::Mode)), SLOT(up_text()));

QList<QString> ftype;
ftype << "rar" << "mp3" << "jpeg" << "jpg";

void SomeClass::up_text()
{
QMutableListIterator<QString> it(ftype);
if (clipboard->text().contains("http")){
    while (it.hasNext()){
        if (clipboard->text().contains(it.next())){
            ui->lineEdit->setText(clipboard->text());
            ui->listWidget->addItem(ui->lineEdit->text());
            this->append(ui->lineEdit->text());
        }
    }
}
}

Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.102 секунд. Запросов: 21.