в общем вот так вот полная картина
connect(model1,SIGNAL(poluchinf(QString)),ui->treeView,SIGNAL(putpapki(QString)));
connect(model2,SIGNAL(poluchinf(QString)),ui->treeView_2,SIGNAL(putpapki(QString)));
connect(model1,SIGNAL(poluchinf(QString)),ui->tableView,SIGNAL(putpapki(QString)));
connect(model2,SIGNAL(poluchinf(QString)),ui->tableView_2,SIGNAL(putpapki(QString)));
connect(model1,SIGNAL(poluchinf(QString)),ui->listView_3,SIGNAL(putpapki(QString)));
connect(model2,SIGNAL(poluchinf(QString)),ui->listView_4,SIGNAL(putpapki(QString)));
//
connect(ui->treeView,SIGNAL(putpapki(QString)),ui->treeView,SLOT(copirovanie(QString)));
connect(ui->treeView_2,SIGNAL(putpapki(QString)),ui->treeView_2,SLOT(copirovanie(QString)));
connect(ui->listView_3,SIGNAL(putpapki(QString)),ui->listView_3,SLOT(copirovanie(QString)));
connect(ui->listView_4,SIGNAL(putpapki(QString)),ui->listView_4,SLOT(copirovanie(QString)));
connect(ui->tableView,SIGNAL(putpapki(QString)),ui->tableView,SLOT(copirovanie(QString)));
connect(ui->tableView_2,SIGNAL(putpapki(QString)),ui->tableView_2,SLOT(copirovanie(QString)));
mytreeview классvoid mytreeview::copirovanie(QString putpapki) //putpapki-------���� ���������� ����������� ���������� ����� dropmimedata
{
if (!putpapki.isNull()) //���� �� ���� ���� ���� ���������� ������
{
for (int i=0;i<spisok2.size();i++) //�������� ���������� ��� ���� ������� �� ���������� ����������
{
if (spisok2[i]!=putpapki) //���� ����� spisok2[i] ����� ����� putpapki(���� �������� ����� � ������� �����) ����� ������ ������
{
if (QFileInfo(spisok2[i]).isFile())
{
QString basename=QFileInfo(spisok2[i]).fileName();
QFile::copy(spisok2[i],putpapki+"/"+basename);
}
if (QFileInfo(spisok2[i]).isDir())
{
QString imypapki=QFileInfo(spisok2[i]).fileName();
QString kudakop=putpapki+"/"+imypapki;
// QMessageBox msg;
// msg.setText("KOIRUEM "+spisok2[i]);
// msg.exec();
// msg.setText("VSTAVLYAEM "+kudakop);
// msg.exec();
emit kopirovpapki(spisok2[i],kudakop,1);
kudakop.clear();
}
}
}
emit sg2(2,0); //����� ����������� �������� ������ �� ��������� ��������
spisok2.clear();
}
}
mylistview.cppvoid mylistview::copirovanie(QString putpapki) //putpapki-------���� ���������� ����������� ���������� ����� dropmimedata
{
if (!putpapki.isNull()) //���� �� ���� ���� ���� ���������� ������
{
for (int i=0;i<spisok2.size();i++) //�������� ���������� ��� ���� ������� �� ���������� ����������
{
if (spisok2[i]!=putpapki) //���� ����� spisok2[i] ����� ����� putpapki(���� �������� ����� � ������� �����) ����� ������ ������
{
if (QFileInfo(spisok2[i]).isFile())
{
QString basename=QFileInfo(spisok2[i]).fileName();
QFile::copy(spisok2[i],putpapki+"/"+basename);
}
if (QFileInfo(spisok2[i]).isDir())
{
QString imypapki=QFileInfo(spisok2[i]).fileName();
QString kudakop=putpapki+"/"+imypapki;
// QMessageBox msg;
// msg.setText("KOIRUEM "+spisok2[i]);
// msg.exec();
// msg.setText("VSTAVLYAEM "+kudakop);
// msg.exec();
emit kopirovpapki(spisok2[i],kudakop,1);
kudakop.clear();
}
}
}
emit sg2(2,0); //����� ����������� �������� ������ �� ��������� ��������
spisok2.clear();
}
}
mytableview.cppvoid mytableview::copirovanie(QString putpapki) //putpapki-------���� ���������� ����������� ���������� ����� dropmimedata
{
if (!putpapki.isNull()) //���� �� ���� ���� ���� ���������� ������
{
for (int i=0;i<spisok2.size();i++) //�������� ���������� ��� ���� ������� �� ���������� ����������
{
if (spisok2[i]!=putpapki) //���� ����� spisok2[i] ����� ����� putpapki(���� �������� ����� � ������� �����) ����� ������ ������
{
if (QFileInfo(spisok2[i]).isFile())
{
QString basename=QFileInfo(spisok2[i]).fileName();
QFile::copy(spisok2[i],putpapki+"/"+basename);
}
if (QFileInfo(spisok2[i]).isDir())
{
QString imypapki=QFileInfo(spisok2[i]).fileName();
QString kudakop=putpapki+"/"+imypapki;
// QMessageBox msg;
// msg.setText("KOIRUEM "+spisok2[i]);
// msg.exec();
// msg.setText("VSTAVLYAEM "+kudakop);
// msg.exec();
emit kopirovpapki(spisok2[i],kudakop,1);
kudakop.clear();
}
}
}
emit sg2(2,0); //����� ����������� �������� ������ �� ��������� ��������
spisok2.clear();
}
}
ВООБЩЕМ СМЫСЛ ТАКОЙ что я дропаю на тейблвиев допустим ,а выполняются у меня все три метода и тейбл виев и листвиеве и тривиев
как сделать так чтобы при дропе допустим на тейблвиев (активировался метод копирования только на тейблвиеве)
ps метод у всех классов(mytreeview mylistview mytableview наследников одинаковый (всмысле код и функционал)
файл менеджер имеется 6 окон
3 левых окна и 3 правых
поначалу отображается окна
тейблвиев тейблвиев
model1--модель файловой системы в 3 левых окнах
model2-- модель файловой системы в 3 правых окнах
вот и смысл втом блин что при вызове копиорования slot (copirovanie)
он начинает поочередно выполнять всем методы копирования( не зависимо куда я дропаю) а должен выполнять только один метод( допустим дропую на тейблвиев и выполняется метод ТОЛЬКО который в тейблвиев)
а сейчас пока выполняютсявсе поочередно 3 метода
КОНЕчНО МОЖНО РЕШИТЬ ЭТОТ ВОПРОС взять и тупо сделать ( model1, model2,model3,model4,model5,model6) 6 моделей на каждый виджет по модели ( а у меня пока одна модель на 3 левых и одна на 3 правых виджета) но это уж слишком кошерно поэтому прошу помощи