Exemple #1
0
int
ListView::findColumn(const QString& title) const
{
    for (int i = 0; i < columns(); ++i)
	if (columnText(i) == title) return i;
    return -1;
}
//Credit to amaroK for this
//Seems like it can become the next plugin to do since amarok is really cool (just missing plugin arch)
bool SongList::eventFilter(QObject *o, QEvent *e ) {
    if(o == header() && e->type() == QEvent::MouseButtonPress && static_cast<QMouseEvent*>(e)->button() == Qt::RightButton ) {
        KPopupMenu popup;
        //popup.setFont(this->font());
        popup.setCheckable(true);
        popup.insertTitle(i18n("Available Columns"));
        int colcount=columns();
        for( int i = 0; i < colcount; ++i ) //columns() references a property
        {
            popup.insertItem(columnText(i),i,i+1 );
            popup.setItemChecked(i,columnWidth(i)!=0);
        }

        int col = popup.exec( static_cast<QMouseEvent *>(e)->globalPos() );

        if( col != -1 ) {
            //TODO can result in massively wide column appearing!
            if( columnWidth( col ) == 0 ) {
                adjustColumn( col );
                header()->setResizeEnabled( true, col );
            } else hideColumn( col );
        }

        //determine first visible column again, since it has changed
        //eat event
        return TRUE;
    }
    return KListView::eventFilter(o,e);
}
void UIListView::setColumnVisible( int col, bool show )
{
        if ( columnVisible( col ) == show )
                return ;

        ColumnData * data = m_data.find( col );

        if ( show == false )
        {
                data->name = columnText( col );
                data->size = columnWidth( col );
                data->mode = columnWidthMode( col );

                setColumnText ( col, "" );
                setColumnWidth( col, 0 );
                setColumnWidthMode( col, QListView::Manual );
                header()->setResizeEnabled( false, col );
        }
        else
        {
                setColumnText ( col, data->name );
                setColumnWidth( col, data->size );
                setColumnWidthMode( col, data->mode );
                header()->setResizeEnabled( true, col );
        }
}
Exemple #4
0
/**
 * Provides information for constructing a header when this model is displayed
 * in a view.
 * @param  section  Corresponds to the column number
 * @param  orient   Horizontal or vertical header
 * @param  role     How to interpret the information
 * @return For a horizontal header with a display role, returns the column
 *         title; An empty variant for all other type
 */
QVariant LocationModel::headerData(int section, Qt::Orientation orient,
                                   int role) const
{
	if (orient != Qt::Horizontal || role != Qt::DisplayRole)
		return QVariant();

	return columnText(colList_[section]);
}
Exemple #5
0
void KfindWindow::resetColumns(bool init)
{
    QFontMetrics fm = fontMetrics();
    if(init)
    {
        setColumnWidth(2, QMAX(fm.width(columnText(2)), fm.width("0000000")) + 15);
        QString sampleDate = KGlobal::locale()->formatDateTime(QDateTime::currentDateTime());
        setColumnWidth(3, QMAX(fm.width(columnText(3)), fm.width(sampleDate)) + 15);
        setColumnWidth(4, QMAX(fm.width(columnText(4)), fm.width(i18n(perm[RO]))) + 15);
        setColumnWidth(5, QMAX(fm.width(columnText(5)), fm.width("some text")) + 15);
    }

    int free_space = visibleWidth() - columnWidth(2) - columnWidth(3) - columnWidth(4) - columnWidth(5);

    //  int name_w = QMIN((int)(free_space*0.5), 150);
    //  int dir_w = free_space - name_w;
    int name_w = QMAX((int)(free_space * 0.5), fm.width("some long filename"));
    int dir_w = name_w;

    setColumnWidth(0, name_w);
    setColumnWidth(1, dir_w);
}
QSize PropertyEditor::sizeHint() const {
    return QSize(QFontMetrics(font()).width(columnText(0) + columnText(1) + "   "),
                 KListView::sizeHint().height());
}
Exemple #7
0
void AMExporterAthena::writeMainTable()
{
    QTextStream ts(file_);

    // 1. Column header.
    int maxTableRows = 0;
    if(option_->columnHeaderIncluded()) {

        ts << "# ";

        QString columnText("");

        for(int c=0; c<mainTableDataSources_.count(); c++) {
            setCurrentDataSource(mainTableDataSources_.at(c));
            AMDataSource* ds = currentScan_->dataSourceAt(currentDataSourceIndex_);

            if(ds->size(0) > maxTableRows)
                maxTableRows = ds->size(0); // convenient... lets figure this out while we're looping through anyway

            columnText = parseKeywordString(option_->columnHeader());
            columnText.replace(" ", "");
            columnText = columnText.left(columnText.indexOf("("));

            // 1D data sources:
            if(ds->rank() == 1) {

                if(mainTableIncludeX_.at(c))
                    ts << (columnText + ".X")  << option_->columnDelimiter();
                ts << columnText << option_->columnDelimiter();
            }
            else {	// 2D
                if(mainTableIncludeX_.at(c))
                    ts << (columnText + ".X") << option_->columnDelimiter();
                // need a loop over the second axis columns
                for(int cc=0; cc<ds->size(1); cc++) {
                    setCurrentColumnIndex(cc);
                    ts << columnText << "[" << ds->axisValue(1, cc).toString() << ds->axisInfoAt(1).units << "]" << option_->columnDelimiter();
                }
            }
        }
        ts << option_->newlineDelimiter() << option_->columnHeaderDelimiter() << option_->newlineDelimiter();
    }


    // 2. rows
    for(int r=0; r<maxTableRows; r++) {

        // over rows within columns
        for(int c=0; c<mainTableDataSources_.count(); c++) {
            setCurrentDataSource(mainTableDataSources_.at(c));
            AMDataSource* ds = currentScan_->dataSourceAt(currentDataSourceIndex_);

            bool doPrint = (ds->size(0) > r);

            // print x column?
            if(mainTableIncludeX_.at(c)) {
                if(doPrint)
                    ts << ds->axisValue(0,r).toString();
                ts << option_->columnDelimiter();
            }

            // 1D data sources:
            if(ds->rank() == 1) {
                if(doPrint)
                    ts << ds->value(r).toString();
                ts << option_->columnDelimiter();
            }
            else if(ds->rank() == 2) {
                // need a loop over the second axis columns
                for(int cc=0; cc<ds->size(1); cc++) {
                    if(doPrint)
                        ts << ds->value(AMnDIndex(r,cc)).toString();
                    ts << option_->columnDelimiter();
                }
            }
        }
        ts << option_->newlineDelimiter();
    }
}