mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Missing Files.
This should have been in the last commit - sorry. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
This commit is contained in:
parent
5666f6573e
commit
46a20e7dd8
3 changed files with 198 additions and 0 deletions
90
qt-ui/tableview.cpp
Normal file
90
qt-ui/tableview.cpp
Normal file
|
@ -0,0 +1,90 @@
|
|||
#include "tableview.h"
|
||||
#include "ui_tableview.h"
|
||||
#include "models.h"
|
||||
|
||||
#include <QPushButton>
|
||||
#include <QFile>
|
||||
#include <QTextStream>
|
||||
#include <QSettings>
|
||||
|
||||
TableView::TableView(QWidget *parent) : QWidget(parent), ui(new Ui::TableView){
|
||||
ui->setupUi(this);
|
||||
QFile cssFile(":table-css");
|
||||
cssFile.open(QIODevice::ReadOnly);
|
||||
QTextStream reader(&cssFile);
|
||||
QString css = reader.readAll();
|
||||
ui->tableView->setStyleSheet(css);
|
||||
|
||||
QIcon plusIcon(":plus");
|
||||
plusBtn = new QPushButton(plusIcon, QString(), ui->groupBox);
|
||||
plusBtn->setFlat(true);
|
||||
plusBtn->setToolTip(tr("Add Cylinder"));
|
||||
connect(plusBtn, SIGNAL(clicked(bool)), this, SIGNAL(addButtonClicked()));
|
||||
}
|
||||
|
||||
TableView::~TableView()
|
||||
{
|
||||
QSettings s;
|
||||
s.beginGroup(objectName());
|
||||
for (int i = 0; i < ui->tableView->model()->columnCount(); i++) {
|
||||
s.setValue(QString("colwidth%1").arg(i), ui->tableView->columnWidth(i));
|
||||
}
|
||||
s.endGroup();
|
||||
s.sync();
|
||||
}
|
||||
|
||||
void TableView::setBtnToolTip(const QString& tooltip)
|
||||
{
|
||||
plusBtn->setToolTip(tooltip);
|
||||
}
|
||||
|
||||
void TableView::setTitle(const QString& title)
|
||||
{
|
||||
ui->groupBox->setTitle(title);
|
||||
}
|
||||
|
||||
void TableView::setModel(QAbstractItemModel *model){
|
||||
ui->tableView->setModel(model);
|
||||
connect(ui->tableView, SIGNAL(clicked(QModelIndex)), model, SLOT(remove(QModelIndex)));
|
||||
|
||||
QSettings s;
|
||||
s.beginGroup(objectName());
|
||||
for (int i = 0; i < ui->tableView->model()->columnCount(); i++) {
|
||||
QVariant width = s.value(QString("colwidth%1").arg(i));
|
||||
if (width.isValid())
|
||||
ui->tableView->setColumnWidth(i, width.toInt());
|
||||
else
|
||||
ui->tableView->resizeColumnToContents(i);
|
||||
}
|
||||
s.endGroup();
|
||||
|
||||
ui->tableView->horizontalHeader()->setResizeMode(0, QHeaderView::Fixed);
|
||||
QFontMetrics metrics(defaultModelFont());
|
||||
ui->tableView->verticalHeader()->setDefaultSectionSize( metrics.height() + 8 );
|
||||
}
|
||||
|
||||
void TableView::fixPlusPosition()
|
||||
{
|
||||
plusBtn->setGeometry(ui->groupBox->contentsRect().width() - 30, 2, 24,24);
|
||||
}
|
||||
|
||||
// We need to manually position the 'plus' on cylinder and weight.
|
||||
void TableView::resizeEvent(QResizeEvent* event)
|
||||
{
|
||||
fixPlusPosition();
|
||||
QWidget::resizeEvent(event);
|
||||
}
|
||||
|
||||
void TableView::showEvent(QShowEvent* event)
|
||||
{
|
||||
QWidget::showEvent(event);
|
||||
fixPlusPosition();
|
||||
}
|
||||
|
||||
void TableView::edit(const QModelIndex& index){
|
||||
ui->tableView->edit(index);
|
||||
}
|
||||
|
||||
QTableView *TableView::view(){
|
||||
return ui->tableView;
|
||||
}
|
45
qt-ui/tableview.h
Normal file
45
qt-ui/tableview.h
Normal file
|
@ -0,0 +1,45 @@
|
|||
#ifndef TABLEVIEW_H
|
||||
#define TABLEVIEW_H
|
||||
|
||||
/* This TableView is prepared to have the CSS,
|
||||
* the methods to restore / save the state of
|
||||
* the column widths and the 'plus' button.
|
||||
*/
|
||||
#include <QWidget>
|
||||
|
||||
class QPushButton;
|
||||
class QAbstractItemModel;
|
||||
class QModelIndex;
|
||||
class QTableView;
|
||||
namespace Ui{
|
||||
class TableView;
|
||||
};
|
||||
|
||||
class TableView : public QWidget {
|
||||
Q_OBJECT
|
||||
public:
|
||||
TableView(QWidget *parent = 0);
|
||||
virtual ~TableView();
|
||||
void setTitle(const QString& title);
|
||||
/* The model is expected to have a 'remove' slot, that takes a QModelIndex as parameter.
|
||||
* It's also expected to have the column '1' as a trash icon. I most probably should create a
|
||||
* proxy model and add that column, will mark that as TODO. see? marked.
|
||||
*/
|
||||
void setModel(QAbstractItemModel* model);
|
||||
void setBtnToolTip(const QString& tooltip);
|
||||
void fixPlusPosition();
|
||||
void edit(const QModelIndex& index);
|
||||
QTableView *view();
|
||||
protected:
|
||||
virtual void showEvent(QShowEvent* );
|
||||
virtual void resizeEvent(QResizeEvent* );
|
||||
|
||||
signals:
|
||||
void addButtonClicked();
|
||||
|
||||
private:
|
||||
Ui::TableView *ui;
|
||||
QPushButton *plusBtn;
|
||||
};
|
||||
|
||||
#endif
|
63
qt-ui/tableview.ui
Normal file
63
qt-ui/tableview.ui
Normal file
|
@ -0,0 +1,63 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>TableView</class>
|
||||
<widget class="QWidget" name="TableView">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Form</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QTableView" name="tableView"/>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
Loading…
Add table
Reference in a new issue