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