File indexing completed on 2024-04-28 16:26:34

0001 /***************************************************************************
0002     begin                : Tuesday Nov 15 2005
0003     copyright            : (C) 2005 by Holger Danielsson
0004     email                : holger.danielsson@t-online.de
0005  ***************************************************************************/
0006 
0007 /***************************************************************************
0008  *                                                                         *
0009  *   This program is free software; you can redistribute it and/or modify  *
0010  *   it under the terms of the GNU General Public License as published by  *
0011  *   the Free Software Foundation; either version 2 of the License, or     *
0012  *   (at your option) any later version.                                   *
0013  *                                                                         *
0014  ***************************************************************************/
0015 
0016 #include "widgets/statisticswidget.h"
0017 
0018 #include <QFrame>
0019 #include <QGridLayout>
0020 #include <QGroupBox>
0021 #include <QLabel>
0022 #include <QLayout>
0023 #include <QVariant>
0024 #include <QVBoxLayout>
0025 
0026 #include <QDialog>
0027 #include <KLocalizedString>
0028 #include <KConfigGroup>
0029 
0030 #include "kiledebug.h"
0031 
0032 namespace KileWidget {
0033 
0034 StatisticsWidget::StatisticsWidget(QWidget* parent, const char *name, Qt::WindowFlags fl)
0035     : QWidget(parent, fl)
0036 {
0037     setObjectName(name);
0038     QVBoxLayout *vbox = new QVBoxLayout;
0039     vbox->setContentsMargins(0, 0, 0, 0);
0040 //TODO PORT QT5     vbox->setSpacing(QDialog::spacingHint());
0041     setLayout(vbox);
0042 
0043     // characters groupbox
0044     m_charactersGroup = new QGroupBox(i18n("Characters"), this);
0045     chargrouplayout = new QGridLayout();
0046 //TODO PORT QT5     chargrouplayout->setMargin(QDialog::marginHint());
0047 //TODO PORT QT5     chargrouplayout->setSpacing(QDialog::spacingHint());
0048     chargrouplayout->setAlignment(Qt::AlignTop);
0049     m_charactersGroup->setLayout(chargrouplayout);
0050 
0051     m_wordCharText = new QLabel(i18n("Words and numbers:"), m_charactersGroup);
0052     m_commandCharText = new QLabel(i18n("LaTeX commands and environments:"), m_charactersGroup);
0053     m_whitespaceCharText = new QLabel(i18n("Punctuation, delimiter and whitespaces:"), m_charactersGroup);
0054     m_totalCharText = new QLabel(i18n("Total characters:"), m_charactersGroup);
0055     m_wordChar = new QLabel(m_charactersGroup);
0056     m_wordChar->setObjectName("m_wordChar");
0057     m_commandChar = new QLabel(m_charactersGroup);
0058     m_commandChar->setObjectName("m_commandChar");
0059     m_whitespaceChar = new QLabel(m_charactersGroup);
0060     m_whitespaceChar->setObjectName("m_whitespaceChar");
0061     m_totalChar = new QLabel(m_charactersGroup);
0062     m_totalChar->setObjectName("m_totalChar");
0063 
0064     QFrame *charframe = new QFrame(m_charactersGroup);
0065     charframe->setFrameShape(QFrame::HLine);
0066     charframe->setFrameShadow(QFrame::Sunken);
0067     charframe->setLineWidth(1);
0068 
0069     chargrouplayout->addWidget(m_wordCharText, 0, 0);
0070     chargrouplayout->addWidget(m_commandCharText, 1, 0);
0071     chargrouplayout->addWidget(m_whitespaceCharText, 2, 0);
0072     chargrouplayout->addWidget(m_totalCharText, 4, 0);
0073     chargrouplayout->addWidget(m_wordChar, 0, 2, Qt::AlignRight);
0074     chargrouplayout->addWidget(m_commandChar, 1, 2, Qt::AlignRight);
0075     chargrouplayout->addWidget(m_whitespaceChar, 2, 2, Qt::AlignRight);
0076     chargrouplayout->addWidget(charframe, 3, 3, 1, 2);
0077     chargrouplayout->addWidget(m_totalChar, 4, 2, Qt::AlignRight);
0078     chargrouplayout->setColumnMinimumWidth(1, 16);
0079     chargrouplayout->setColumnMinimumWidth(3, 1);
0080     chargrouplayout->setColumnStretch(3, 1);
0081 
0082     // string groupbox
0083     m_stringsGroup = new QGroupBox(i18n("Strings"), this);
0084     stringgrouplayout = new QGridLayout();
0085 //TODO PORT QT5     stringgrouplayout->setMargin(QDialog::marginHint());
0086 //TODO PORT QT5     stringgrouplayout->setSpacing(QDialog::spacingHint());
0087     stringgrouplayout->setAlignment(Qt::AlignTop);
0088     m_stringsGroup->setLayout(stringgrouplayout);
0089 
0090     m_wordStringText = new QLabel(i18n("Words:"), m_stringsGroup);
0091     m_commandStringText = new QLabel(i18n("LaTeX commands:"), m_stringsGroup);
0092     m_environmentStringText = new QLabel(i18n("LaTeX environments:"), m_stringsGroup);
0093     m_totalStringText = new QLabel(i18n("Total strings:"), m_stringsGroup);
0094     m_wordString = new QLabel(m_stringsGroup);
0095     m_wordString->setObjectName("m_wordString");
0096     m_commandString = new QLabel(m_stringsGroup);
0097     m_commandString->setObjectName("m_commandStringText");
0098     m_environmentString = new QLabel(m_stringsGroup);
0099     m_environmentString->setObjectName("m_environmentStringText");
0100     m_totalString = new QLabel(m_stringsGroup);
0101     m_totalString->setObjectName("m_totalStringText");
0102 
0103     QFrame *stringframe = new QFrame(m_stringsGroup);
0104     stringframe->setFrameShape(QFrame::HLine);
0105     stringframe->setFrameShadow(QFrame::Sunken);
0106     stringframe->setLineWidth(1);
0107 
0108     stringgrouplayout->addWidget(m_wordStringText, 0, 0);
0109     stringgrouplayout->addWidget(m_commandStringText, 1, 0);
0110     stringgrouplayout->addWidget(m_environmentStringText, 2, 0);
0111     stringgrouplayout->addWidget(m_totalStringText, 4, 0);
0112     stringgrouplayout->addWidget(m_wordString, 0, 2, Qt::AlignRight);
0113     stringgrouplayout->addWidget(m_commandString, 1, 2, Qt::AlignRight);
0114     stringgrouplayout->addWidget(m_environmentString, 2, 2, Qt::AlignRight);
0115     stringgrouplayout->addWidget(stringframe, 3, 3, 1, 2);
0116     stringgrouplayout->addWidget(m_totalString, 4, 2, Qt::AlignRight);
0117     stringgrouplayout->setColumnMinimumWidth(1, 16);
0118     stringgrouplayout->setColumnMinimumWidth(3, 1);
0119     stringgrouplayout->setColumnStretch(3, 1);
0120 
0121     m_commentAboutHelp = new QLabel(parent);
0122     m_warning =  new QLabel(parent);
0123 
0124     vbox->addWidget(m_charactersGroup);
0125     vbox->addWidget(m_stringsGroup);
0126     vbox->addSpacing(12);
0127     vbox->addWidget(m_commentAboutHelp);
0128     vbox->addWidget(m_warning);
0129     vbox->addStretch(1);
0130 
0131     int w = m_commandCharText->sizeHint().width();
0132     if (m_whitespaceCharText->sizeHint().width() > w) {
0133         w = m_whitespaceCharText->sizeHint().width();
0134     }
0135     stringgrouplayout->setColumnMinimumWidth(0, w);
0136 
0137 }
0138 
0139 StatisticsWidget::~StatisticsWidget()
0140 {
0141 }
0142 
0143 void StatisticsWidget::updateColumns()
0144 {
0145     int w = m_totalChar->sizeHint().width();
0146     if (m_totalString->sizeHint().width() > w) {
0147         w = m_totalString->sizeHint().width();
0148     }
0149     chargrouplayout->setColumnMinimumWidth(2, w);
0150     stringgrouplayout->setColumnMinimumWidth(2, w);
0151 }
0152 
0153 }
0154