[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/office/kraft
From: Klaas Freitag <freitag () suse ! de>
Date: 2011-02-17 20:03:30
Message-ID: 20110217200330.2F60DAC8BE () svn ! kde ! org
[Download RAW message or body]
SVN commit 1221322 by freitag:
A better document detail view
M +3 -1 reports/docdigest.trml
M +1 -1 src/CMakeLists.txt
A src/docdigestdetailview.cpp [License: GPL (v2+)]
A src/docdigestdetailview.h [License: GPL (v2+)]
M +34 -56 src/docdigestview.cpp
M +8 -4 src/docdigestview.h
M +46 -23 styles/docdigestview.css
--- trunk/playground/office/kraft/reports/docdigest.trml #1221321:1221322
@@ -3,8 +3,10 @@
-->
<body>
<h2>{{HEADLINE}}</h2>
-<p>Date: {{DATE}}</p>
+<div>
+<p>{{DATE}}</p>
<p>{{ARCHDOCS_TAG}}</p>
+</div>
</body>
--- trunk/playground/office/kraft/src/CMakeLists.txt #1221321:1221322
@@ -147,7 +147,7 @@
models/documentmodel.cpp
models/documentproxymodels.cpp
models/modeltest.cpp
-
+ docdigestdetailview.cpp
)
kde4_add_kcfg_files(kraft_SRCS databasesettings.kcfgc kraftsettings.kcfgc)
--- trunk/playground/office/kraft/src/docdigestview.cpp #1221321:1221322
@@ -44,8 +44,7 @@
#include "docguardedptr.h"
#include "kraftdoc.h"
#include "defaultprovider.h"
-#include "htmlview.h"
-#include "texttemplate.h"
+#include "docdigestdetailview.h"
DocDigestView::DocDigestView( QWidget *parent )
: QWidget( parent )
@@ -60,8 +59,8 @@
mNewDocButton = new QPushButton( i18n( "Create Document" ) );
connect( mNewDocButton, SIGNAL( clicked() ), this, SIGNAL( createDocument() ) );
-
- // hbox->addStretch(1);
+ hbox->addWidget( mNewDocButton );
+ hbox->addStretch(1);
mToolBox = new QToolBox;
QList<QTreeView *> treelist = initializeTreeWidgets();
@@ -90,11 +89,8 @@
QHBoxLayout *hbox3 = new QHBoxLayout;
hbox3->addSpacing( KDialog::marginHint() );
- hbox3->addWidget( mNewDocButton );
- mShowDocDetailsView = new HtmlView( this );
- // mShowDocDetailsView->view()->setMinimumHeight( 160 );
- mShowDocDetailsView->view()->setFixedHeight(120);
- hbox3->addWidget( mShowDocDetailsView->view() );
+
+ // hbox3->addWidget( mShowDocDetailsView );
box->addLayout( hbox3 );
}
@@ -111,6 +107,8 @@
mLatestView = new QTreeView;
mTimeView = new QTreeView;
+ mTreeViewIndex.resize(3);
+
//Add the widgets to a temporary list so we can iterate over them and centralise \
the common initialization treeviewlist.clear();
treeviewlist.append(mAllView);
@@ -126,17 +124,29 @@
mLatestMenu->setTitle( i18n("Document Actions"));
//Add treewidgets to the toolbox
- int indx = mToolBox->addItem( mLatestView, i18n("Latest Documents"));
+ QVBoxLayout *vb1 = new QVBoxLayout;
+ vb1->setMargin(0);
+ vb1->addWidget( mLatestView );
+ mLatestViewDetails = new DocDigestDetailView;
+ vb1->addWidget( mLatestViewDetails );
+ QWidget *w = new QWidget;
+ w->setLayout(vb1);
+ mLatestViewDetails->setFixedHeight(160);
+
+ int indx = mToolBox->addItem( w, i18n("Latest Documents"));
mToolBox->setItemIcon( indx, KIcon( "get-hot-new-stuff"));
mToolBox->setItemToolTip(indx, i18n("Shows the latest ten documents"));
+ mTreeViewIndex[indx] = mLatestView;
indx = mToolBox->addItem( mAllView, i18n("All Documents"));
mToolBox->setItemIcon( indx, KIcon( "edit-clear-locationbar-ltr"));
mToolBox->setItemToolTip(indx, i18n("Shows a complete list of all documents"));
+ mTreeViewIndex[indx] = mAllView;
indx = mToolBox->addItem( mTimeView, i18n("Timelined Documents"));
mToolBox->setItemIcon( indx, KIcon( "chronometer"));
mToolBox->setItemToolTip(indx, i18n("Shows all documents along a timeline"));
+ mTreeViewIndex[indx] = mTimeView;
return treeviewlist;
}
@@ -144,7 +154,10 @@
void DocDigestView::slotCurrentChangedToolbox(int index)
{
- QTreeView *treeview = static_cast<QTreeView *>(mToolBox->widget(index));
+ if( index < 0 || index > mTreeViewIndex.size() ) return;
+
+ QTreeView *treeview = mTreeViewIndex[index];
+
if(treeview->selectionModel()->hasSelection())
slotCurrentChanged(treeview->selectionModel()->selectedRows().at(0), \
QModelIndex()); else
@@ -194,7 +207,7 @@
void DocDigestView::contextMenuEvent( QContextMenuEvent * event )
{
- QTreeWidget *currView = static_cast<QTreeWidget*>(mToolBox->currentWidget());
+ QTreeView *currView = mTreeViewIndex[ mToolBox->currentIndex() ];
if( currView == mLatestView ) {
mLatestMenu->popup( event->globalPos() );
@@ -251,11 +264,11 @@
QString DocDigestView::currentDocumentId( ) const
{
- QModelIndex indx = mCurrentlySelected.sibling( mCurrentlySelected.row(), \
DocumentModel::Document_Ident ); + QModelIndex indx = mCurrentlySelected.sibling( \
mCurrentlySelected.row(), DocumentModel::Document_Id);
const QString data = indx.data(Qt::DisplayRole).toString();
kDebug() << "This is the current selected docID: " << data;
- return QString();
+ return data;
}
void DocDigestView::slotCurrentChanged( QModelIndex index, QModelIndex previous )
@@ -265,15 +278,20 @@
if(index.isValid())
{
DocumentModel *model = 0;
+ DocDigestDetailView *view = 0;
+
if(index.model() == static_cast<QAbstractItemModel*>(mLatestDocModel)) {
mCurrentlySelected = mLatestDocModel->mapToSource(index);
+ view = mLatestViewDetails;
model = static_cast<DocumentModel*>(mLatestDocModel->sourceModel());
} else if(index.model() == static_cast<QAbstractItemModel*>(mTimelineModel)) {
mCurrentlySelected = mTimelineModel->mapToSource(index);
model = static_cast<DocumentModel*>( mTimelineModel->sourceModel() );
+ view = mAllViewDetails;
} else {
mCurrentlySelected = mAllDocumentsModel->mapToSource(index);
model = static_cast<DocumentModel*>( mAllDocumentsModel->sourceModel() );
+ view = mTimeLineViewDetails;
}
if(mCurrentlySelected.data(DocumentModel::DataType) == \
DocumentModel::DocumentType) { @@ -281,7 +299,8 @@
QString id = idIndx.data( Qt::DisplayRole ).toString();
emit docSelected( id );
- slotShowDocDetails( model->digest( index ) );
+ view->slotShowDocDetails( model->digest( index ));
+
} else if(mCurrentlySelected.data(DocumentModel::DataType) == \
DocumentModel::ArchivedType) {
emit archivedDocSelected( mCurrentlySelected.parent().data( \
Qt::DisplayRole).toString(),
mCurrentlySelected.data( Qt::DisplayRole).toString() \
); @@ -295,47 +314,6 @@
//kDebug() << "Supposed row: " << sourceIndex.row() << " Supposed ID: " << \
DocumentModel::self()->data(sourceIndex, Qt::DisplayRole); }
-#define DOCDIGEST_TAG
-
-void DocDigestView::slotShowDocDetails( DocDigest digest )
-{
- kDebug() << "Showing details about this doc: " << digest.id();
-
- if( mTemplFile.isEmpty() ) {
- KStandardDirs stdDirs;
- // QString templFileName = QString( "kraftdoc_%1_ro.trml" ).arg( doc->docType() \
);
- QString templFileName = QString( "docdigest.trml" );
- QString findFile = "kraft/reports/" + templFileName;
-
- QString tmplFile = stdDirs.findResource( "data", findFile );
-
- if ( tmplFile.isEmpty() ) {
- kDebug() << "Could not find template to render document digest.";
- return;
- }
- mTemplFile = tmplFile;
- }
-
- TextTemplate tmpl( mTemplFile ); // template file with name docdigest.trml
-
- tmpl.setValue( DOCDIGEST_TAG( "HEADLINE" ), digest.type() + " " + digest.ident() \
);
- tmpl.setValue( DOCDIGEST_TAG( "DATE" ), digest.date() );
-
- // Information about archived documents.
- ArchDocDigestList archDocs = digest.archDocDigestList();
- if( archDocs.isEmpty() ) {
- kDebug() << "No archived docs for this document!";
- tmpl.setValue( DOCDIGEST_TAG("ARCHDOCS_TAG"), i18n("This document was never \
printed."));
- } else {
- ArchDocDigest digest = archDocs[0];
- kDebug() << "Last printed at " << digest.printDate().toString() << " and " << \
archDocs.count() -1 << " other prints.";
- tmpl.setValue( DOCDIGEST_TAG("ARCHDOCS_TAG"), i18n("Last Printed %1, %2 older \
prints.").arg(digest.printDate().toString()).arg(archDocs.count()-1));
- }
-
- mShowDocDetailsView->displayContent( tmpl.expand() );
-
-}
-
QList<KMenu*> DocDigestView::contextMenus()
{
QList<KMenu*> menus;
--- trunk/playground/office/kraft/src/docdigestview.h #1221321:1221322
@@ -32,7 +32,7 @@
class ArchDocDigest;
class QContextMenuEvent;
class QToolBox;
-class HtmlView;
+class DocDigestDetailView;
class DocDigestView : public QWidget
{
@@ -59,8 +59,8 @@
void slotDocOpenRequest( QModelIndex );
void slotCurrentChanged( QModelIndex, QModelIndex );
void slotCurrentChangedToolbox ( int index );
- void slotShowDocDetails( DocDigest );
+
signals:
void createDocument();
void openDocument( const QString& );
@@ -76,6 +76,10 @@
QTreeView *mLatestView;
QTreeView *mTimeView;
+ DocDigestDetailView *mLatestViewDetails;
+ DocDigestDetailView *mAllViewDetails;
+ DocDigestDetailView *mTimeLineViewDetails;
+
QModelIndex mCurrentlySelected;
DocumentFilterModel *mAllDocumentsModel;
@@ -89,12 +93,12 @@
KMenu *mAllMenu;
KMenu *mLatestMenu;
- HtmlView *mShowDocDetailsView;
+ DocDigestDetailView *mShowDocDetailsView;
QToolBox *mToolBox;
QPushButton *mNewDocButton;
QMap<QTreeWidgetItem*, QString> mDocIdDict;
QMap<QTreeWidgetItem*, ArchDocDigest> mArchIdDict;
- QString mTemplFile;
+ QVector<QTreeView*> mTreeViewIndex;
};
#endif
--- trunk/playground/office/kraft/styles/docdigestview.css #1221321:1221322
@@ -1,36 +1,59 @@
-body { margin:20px;
- background-image:url(pics/docoverviewbg.png);
- color: #4e4e4e;
- font-size:x-small;
-}
-td {
- vertical-align:top;
+* { font-size: 97%;
}
div {
- border-style:none;
- border-width:0px;
- border-color:#00008B;
- margin: 1px 0px 1px 0px;
- padding: 1px;
+ font-size:75%;
+ padding: 0px 5px 0px 10px;
+ margin: 0px 5px 0px 5px;
}
-.negative {
- color: #800040;
+p {
+ padding: 3px 3px 1px 3px;
+ margin: 0px 0px 0px 7px;
}
-.positive {
-
+div.error {
+ background-color: #ffcbcb;
+ padding: 5px;
+ margin: 0px 5px 3px 5px;
+ border-left: 1px solid #ed2d00;
+ border-right: 1px solid #ed2d00;
+ border-bottom: 1px solid #ed2d00;
+ border-top:0px;
}
h2 {
- border-bottom: 2px inset #000000;
- vertical-align: text-bottom;
- background-image:url(pics/docoverview_h2_bg.png);
- background-repeat: no-repeat;
- background-position: right;
- image-repeat: none;
- height: 64px;
+ margin:10px 5px 0px 5px;
+ padding:2px 2px 2px 10px;
+ border-left:10px solid #57a62f;
+ border-bottom:1px solid #57a62f;
+}
+h2.error {
+ background-color: #ffcbcb;
+
+ border-left: 1px solid #ed2d00;
+ border-right: 1px solid #ed2d00;
+ border-top: 1px solid #ed2d00;
+ border-bottom:0px;
+
}
+
+table {
+ border-collapse: collapse;
+ margin-top: 5px;
+}
+
+td {
+ margin: 0px;
+ padding-left: 5mm;
+ padding-right:5mm;
+
+ padding-top: 1mm;
+ padding-bottom: 1mm;
+}
+
+table tr.odd {
+ background: #dffdd0;
+}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic