void SQLExecutionWidget::copySelection(QTableWidget *results_tbw, bool use_popup)
{
	if(!results_tbw)
		throw Exception(ERR_OPR_NOT_ALOC_OBJECT ,__PRETTY_FUNCTION__,__FILE__,__LINE__);

	if(!use_popup || (use_popup && QApplication::mouseButtons()==Qt::RightButton))
	{
		QMenu copy_menu;

		if(use_popup)
			copy_menu.addAction(trUtf8("Copy selection"));

		if(!use_popup || (use_popup && copy_menu.exec(QCursor::pos())))
		{
			QList<QTableWidgetSelectionRange> sel_range=results_tbw->selectedRanges();

			if(!sel_range.isEmpty())
			{
				QTableWidgetSelectionRange selection=sel_range.at(0);

				//Generates the csv buffer and assigns it to application's clipboard
				QByteArray buf=generateCSVBuffer(results_tbw,
																				 selection.topRow(), selection.leftColumn(),
																				 selection.rowCount(), selection.columnCount());
				qApp->clipboard()->setText(buf);
			}
		}
	}
}
void SQLExecutionWidget::exportResults(QTableWidget *results_tbw)
{
	if(!results_tbw)
		throw Exception(ERR_OPR_NOT_ALOC_OBJECT ,__PRETTY_FUNCTION__,__FILE__,__LINE__);

	QFileDialog csv_file_dlg;

  csv_file_dlg.setDefaultSuffix(QString("csv"));
	csv_file_dlg.setFileMode(QFileDialog::AnyFile);
	csv_file_dlg.setWindowTitle(trUtf8("Save CSV file"));
  csv_file_dlg.setNameFilter(trUtf8("Comma-separated values file (*.csv);;All files (*.*)"));
	csv_file_dlg.setModal(true);
	csv_file_dlg.setAcceptMode(QFileDialog::AcceptSave);

	csv_file_dlg.exec();

	if(csv_file_dlg.result()==QDialog::Accepted)
	{
		QFile file;
		file.setFileName(csv_file_dlg.selectedFiles().at(0));

		if(!file.open(QFile::WriteOnly))
			throw Exception(Exception::getErrorMessage(ERR_FILE_DIR_NOT_ACCESSED)
											.arg(csv_file_dlg.selectedFiles().at(0))
											, ERR_FILE_DIR_NOT_ACCESSED ,__PRETTY_FUNCTION__,__FILE__,__LINE__);

		file.write(generateCSVBuffer(results_tbw, 0, 0, results_tbw->rowCount(), results_tbw->columnCount()));
		file.close();
	}
}
示例#3
0
void SQLToolWidget::exportResults(void)
{
    csv_file_dlg.exec();

    if(csv_file_dlg.result()==QDialog::Accepted)
    {
        QFile file;
        file.setFileName(csv_file_dlg.selectedFiles().at(0));

        if(!file.open(QFile::WriteOnly))
            throw Exception(Exception::getErrorMessage(ERR_FILE_DIR_NOT_ACCESSED)
                            .arg(csv_file_dlg.selectedFiles().at(0))
                            , ERR_FILE_DIR_NOT_ACCESSED ,__PRETTY_FUNCTION__,__FILE__,__LINE__);

        file.write(generateCSVBuffer(0, 0, results_tbw->rowCount(), results_tbw->columnCount()));
        file.close();
    }
}
示例#4
0
void SQLToolWidget::copySelection(void)
{
    if(QApplication::mouseButtons()==Qt::RightButton)
    {
        if(copy_menu.exec(QCursor::pos()))
        {
            QList<QTableWidgetSelectionRange> sel_range=results_tbw->selectedRanges();

            if(!sel_range.isEmpty())
            {
                QTableWidgetSelectionRange selection=sel_range.at(0);

                //Generates the csv buffer and assigns it to application's clipboard
                QByteArray buf=generateCSVBuffer(selection.topRow(), selection.leftColumn(),
                                                 selection.rowCount(), selection.columnCount());
                qApp->clipboard()->setText(buf);
            }
        }
    }
}