QTfrontend/ui/page/pagevideos.cpp
changeset 14888 b5a9dd36c7ea
parent 14887 a414d37278df
child 14942 05cde9ba4183
equal deleted inserted replaced
14887:a414d37278df 14888:b5a9dd36c7ea
   290         if (row == -1)
   290         if (row == -1)
   291             row = appendRow(name);
   291             row = appendRow(name);
   292         VideoItem * item = nameItem(row);
   292         VideoItem * item = nameItem(row);
   293         item->seen = true;
   293         item->seen = true;
   294         item->desc = "";
   294         item->desc = "";
       
   295         setName(item, item->name);
   295         updateSize(row);
   296         updateSize(row);
   296     }
   297     }
   297 
   298 
   298     // remove all non seen files
   299     // remove all non seen files
   299     for (int i = 0; i < filesTable->rowCount();)
   300     for (int i = 0; i < filesTable->rowCount();)
   424             newPrefix = newName;
   425             newPrefix = newName;
   425             newPrefix.truncate(pointPos);
   426             newPrefix.truncate(pointPos);
   426         }
   427         }
   427     }
   428     }
   428     else
   429     else
   429     {
       
   430         newPrefix = newName;
   430         newPrefix = newName;
       
   431     for (int i = 0; i < filesTable->rowCount(); i++)
       
   432     {
       
   433         // don't allow rename if duplicate prefix
       
   434         VideoItem * iterateItem = nameItem(i);
       
   435         if ((i != row) && (newPrefix == iterateItem->prefix))
       
   436         {
       
   437             setName(item, oldName);
       
   438             return;
       
   439         }
   431     }
   440     }
   432 #ifdef Q_OS_WIN
   441 #ifdef Q_OS_WIN
   433     // there is a bug in qt, QDir::rename() doesn't fail on such names but damages files
   442     // there is a bug in qt, QDir::rename() doesn't fail on such names but damages files
   434     if (newName.contains(QRegExp("[\"*:<>?\\/|]")))
   443     if (newName.contains(QRegExp("[\"*:<>?\\/|]")))
   435     {
   444     {
   458 {
   467 {
   459     nameChangedFromCode = true;
   468     nameChangedFromCode = true;
   460     item->setText(newName);
   469     item->setText(newName);
   461     nameChangedFromCode = false;
   470     nameChangedFromCode = false;
   462     item->name = newName;
   471     item->name = newName;
       
   472     // try to extract prefix
       
   473     if (item->ready())
       
   474         item->prefix = item->name;
       
   475     else
       
   476         item->prefix = item->pRecorder->name;
       
   477     // remove extension
       
   478     int pt = item->prefix.lastIndexOf('.');
       
   479     if (pt != -1)
       
   480         item->prefix.truncate(pt);
   463 }
   481 }
   464 
   482 
   465 int PageVideos::appendRow(const QString & name)
   483 int PageVideos::appendRow(const QString & name)
   466 {
   484 {
   467     int row = filesTable->rowCount();
   485     int row = filesTable->rowCount();
   544             }
   562             }
   545         }
   563         }
   546         desc += item->desc + '\n';
   564         desc += item->desc + '\n';
   547     }
   565     }
   548 
   566 
   549     if (item->prefix.isEmpty())
   567     if (item->prefix.isNull() || item->prefix.isEmpty())
   550     {
   568     {
   551         // try to extract prefix from file name instead
   569         // try to extract prefix from file name instead
   552         if (item->ready())
   570         if (item->ready())
   553             item->prefix = item->name;
   571             item->prefix = item->name;
   554         else
   572         else