FileItemDialog: Add copy to clipboard functionality

This commit is contained in:
Daniel Molkentin 2013-01-17 10:34:30 +01:00
parent 36b385ed54
commit 0f36dc03c4
2 changed files with 32 additions and 0 deletions

View file

@ -47,6 +47,9 @@ FileItemDialog::FileItemDialog(Theme *theme, QWidget *parent) :
_timer.setInterval(1000);
connect(&_timer, SIGNAL(timeout()), this, SLOT(slotSetFolderMessage()));
QPushButton *copyBtn = _dialogButtonBox->addButton(tr("Copy"), QDialogButtonBox::ActionRole);
connect(copyBtn, SIGNAL(clicked()), SLOT(copyToClipboard()));
setWindowTitle(tr("Sync Protocol"));
}
@ -118,6 +121,34 @@ void FileItemDialog::slotSetFolderMessage()
_timelabel->setText(tr("%1 (finished %2 sec. ago)").arg(_folderMessage).arg(secs));
}
void FileItemDialog::copyToClipboard()
{
QString text;
QTextStream ts(&text);
int topLevelItems = _treeWidget->topLevelItemCount();
for (int i = 0; i < topLevelItems; i++) {
QTreeWidgetItem *item = _treeWidget->topLevelItem(i);
ts << left << qSetFieldWidth(50)
<< item->data(0, Qt::DisplayRole).toString()
<< right << qSetFieldWidth(6)
<< item->data(1, Qt::DisplayRole).toString()
<< endl;
int childItems = item->childCount();
for (int j = 0; j < childItems; j++) {
QTreeWidgetItem *child =item->child(j);
ts << left << qSetFieldWidth(0) << QLatin1String(" ")
<< child->data(0,Qt::DisplayRole).toString()
<< QString::fromLatin1(" (%1)").arg(
child->data(1, Qt::DisplayRole).toString()
)
<< endl;
}
}
QApplication::clipboard()->setText(text);
}
void FileItemDialog::accept()
{
_timer.stop();

View file

@ -41,6 +41,7 @@ public slots:
protected slots:
void slotSetFolderMessage();
void copyToClipboard();
private:
void setSyncFileItems( const SyncFileItemVector& list );