/*************************************************************************** copyright : (C) 2006 by Carsten Niehaus (C) 2007 by Ian Monroe ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "tablesdialog.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include TablesDialog::TablesDialog( QWidget *parent ) : KPageDialog( parent ) { setFaceType( List ); setButtons( Help | Close ); setDefaultButton( Close ); createGreekSymbolTable(); createNumbersTable(); } void TablesDialog::createGreekSymbolTable() { QWidget *frame = new QWidget(); KPageWidgetItem *item = addPage( frame, i18n( "Greek alphabet" ) ); item->setHeader( i18n( "Greek alphabet" ) ); item->setIcon( KIcon( "numbers" ) ); QVBoxLayout *layout = new QVBoxLayout( frame ); layout->setMargin( 0 ); QTableWidget *table = new MyTableWidget(frame); table->verticalHeader()->hide(); table->setColumnCount( 3 ); table->setRowCount( 24 ); table->setHorizontalHeaderLabels( QStringList() << i18n( "Uppercase" ) << i18n( "Lowercase" ) << i18nc( "The name of the greek letter in your language. For example 'Alpha' for the first letter. ", "Name" ) ); layout->addWidget( table ); table->setItem( 0, 0, new MyWidgetItem( QString( QChar( 913 ) ) ) ); //capital Alpha table->setItem( 1, 0, new MyWidgetItem( QString( QChar( 914 ) ) ) ); table->setItem( 2, 0, new MyWidgetItem( QString( QChar( 915 ) ) ) ); table->setItem( 3, 0, new MyWidgetItem( QString( QChar( 916 ) ) ) ); table->setItem( 4, 0, new MyWidgetItem( QString( QChar( 917 ) ) ) ); table->setItem( 5, 0, new MyWidgetItem( QString( QChar( 918 ) ) ) ); table->setItem( 6, 0, new MyWidgetItem( QString( QChar( 919 ) ) ) ); table->setItem( 7, 0, new MyWidgetItem( QString( QChar( 920 ) ) ) ); table->setItem( 8, 0, new MyWidgetItem( QString( QChar( 921 ) ) ) ); table->setItem( 9, 0, new MyWidgetItem( QString( QChar( 922 ) ) ) ); table->setItem( 10,0, new MyWidgetItem( QString( QChar( 923 ) ) ) ); table->setItem( 11,0, new MyWidgetItem( QString( QChar( 924 ) ) ) ); table->setItem( 12,0, new MyWidgetItem( QString( QChar( 925 ) ) ) ); table->setItem( 13,0, new MyWidgetItem( QString( QChar( 926 ) ) ) ); table->setItem( 14,0, new MyWidgetItem( QString( QChar( 927 ) ) ) ); table->setItem( 15,0, new MyWidgetItem( QString( QChar( 928 ) ) ) ); table->setItem( 16,0, new MyWidgetItem( QString( QChar( 929 ) ) ) ); table->setItem( 17,0, new MyWidgetItem( QString( QChar( 931 ) ) ) ); table->setItem( 18,0, new MyWidgetItem( QString( QChar( 932 ) ) ) ); table->setItem( 19,0, new MyWidgetItem( QString( QChar( 933 ) ) ) ); table->setItem( 20,0, new MyWidgetItem( QString( QChar( 934 ) ) ) ); table->setItem( 21,0, new MyWidgetItem( QString( QChar( 935 ) ) ) ); table->setItem( 22,0, new MyWidgetItem( QString( QChar( 936 ) ) ) ); table->setItem( 23,0, new MyWidgetItem( QString( QChar( 937 ) ) ) ); //small letters table->setItem( 0, 1, new MyWidgetItem( QString( QChar( 945 ) ) ) ); //small alpha table->setItem( 1, 1, new MyWidgetItem( QString( QChar( 946 ) ) ) ); table->setItem( 2, 1, new MyWidgetItem( QString( QChar( 947 ) ) ) ); table->setItem( 3, 1, new MyWidgetItem( QString( QChar( 948 ) ) ) ); table->setItem( 4, 1, new MyWidgetItem( QString( QChar( 949 ) ) ) ); table->setItem( 5, 1, new MyWidgetItem( QString( QChar( 950 ) ) ) ); table->setItem( 6, 1, new MyWidgetItem( QString( QChar( 951 ) ) ) ); table->setItem( 7, 1, new MyWidgetItem( QString( QChar( 952 ) ) ) ); table->setItem( 8, 1, new MyWidgetItem( QString( QChar( 953 ) ) ) ); table->setItem( 9, 1, new MyWidgetItem( QString( QChar( 954 ) ) ) ); table->setItem( 10,1, new MyWidgetItem( QString( QChar( 955 ) ) ) ); table->setItem( 11,1, new MyWidgetItem( QString( QChar( 956 ) ) ) ); table->setItem( 12,1, new MyWidgetItem( QString( QChar( 957 ) ) ) ); table->setItem( 13,1, new MyWidgetItem( QString( QChar( 958 ) ) ) ); table->setItem( 14,1, new MyWidgetItem( QString( QChar( 959 ) ) ) ); table->setItem( 15,1, new MyWidgetItem( QString( QChar( 960 ) ) ) ); table->setItem( 16,1, new MyWidgetItem( QString( QChar( 961 ) ) ) ); table->setItem( 17,1, new MyWidgetItem( QString( QChar( 962 ) )+", "+QString( QChar( 963 ) ) ) ); //there are two greek letters for sigma table->setItem( 18,1, new MyWidgetItem( QString( QChar( 964 ) ) ) ); table->setItem( 19,1, new MyWidgetItem( QString( QChar( 965 ) ) ) ); table->setItem( 20,1, new MyWidgetItem( QString( QChar( 966 ) ) ) ); table->setItem( 21,1, new MyWidgetItem( QString( QChar( 967 ) ) ) ); table->setItem( 22,1, new MyWidgetItem( QString( QChar( 968 ) ) ) ); table->setItem( 23,1, new MyWidgetItem( QString( QChar( 969 ) ) ) ); //english names table->setItem( 0, 2, new MyWidgetItem( i18n("alpha" ) ) ); table->setItem( 1, 2, new MyWidgetItem( i18n("beta" ) ) ); table->setItem( 2, 2, new MyWidgetItem( i18n("gamma" ) ) ); table->setItem( 3, 2, new MyWidgetItem( i18n("delta" ) ) ); table->setItem( 4, 2, new MyWidgetItem( i18n("epsilon" ) ) ); table->setItem( 5, 2, new MyWidgetItem( i18n("zeta" ) ) ); table->setItem( 6, 2, new MyWidgetItem( i18n("eta" ) ) ); table->setItem( 7, 2, new MyWidgetItem( i18n("theta" ) ) ); table->setItem( 8, 2, new MyWidgetItem( i18n("iota" ) ) ); table->setItem( 9, 2, new MyWidgetItem( i18n("kappa" ) ) ); table->setItem( 10,2, new MyWidgetItem( i18n("lambda" ) ) ); table->setItem( 11,2, new MyWidgetItem( i18n("mu" ) ) ); table->setItem( 12,2, new MyWidgetItem( i18n("nu" ) ) ); table->setItem( 13,2, new MyWidgetItem( i18n("xi" ) ) ); table->setItem( 14,2, new MyWidgetItem( i18n("omicron" ) ) ); table->setItem( 15,2, new MyWidgetItem( i18n("pi" ) ) ); table->setItem( 16,2, new MyWidgetItem( i18n("rho" ) ) ); table->setItem( 17,2, new MyWidgetItem( i18n("sigma" ) ) ); table->setItem( 18,2, new MyWidgetItem( i18n("tau" ) ) ); table->setItem( 19,2, new MyWidgetItem( i18n("upsilon" ) ) ); table->setItem( 20,2, new MyWidgetItem( i18n("phi" ) ) ); table->setItem( 21,2, new MyWidgetItem( i18n("chi" ) ) ); table->setItem( 22,2, new MyWidgetItem( i18n("psi" ) ) ); table->setItem( 23,2, new MyWidgetItem( i18n("omega" ) ) ); table->resizeColumnsToContents(); frame->setMinimumWidth( qMax( table->columnWidth( 0 ) + table->columnWidth( 1 ) + table->columnWidth( 2 ), table->horizontalHeader()->sizeHint().width() ) +25 ); } void TablesDialog::createNumbersTable() { QWidget *frame = new QWidget(); KPageWidgetItem *item = addPage( frame, i18n( "Numbers" ) ); item->setHeader( i18n( "Numeric Prefixes and Roman Numerals" ) ); item->setIcon( KIcon( "numbers" ) ); QVBoxLayout *layout = new QVBoxLayout( frame ); layout->setMargin( 0 ); QTableWidget *table = new MyTableWidget(frame); table->verticalHeader()->hide(); table->setColumnCount( 3 ); table->setRowCount( 28 ); table->setHorizontalHeaderLabels( QStringList() << i18n( "Number" ) << i18nc("For example 'Mono' for 1 and 'Tri' for 3", "Prefix" ) << i18n( "Roman Numerals") ); layout->addWidget( table ); table->setItem( 0, 0, new MyWidgetItem( i18n( "0.5" ) ) ); table->setItem( 1, 0, new MyWidgetItem( i18n( "1" ) ) ); table->setItem( 2, 0, new MyWidgetItem( i18n( "1.5" ) ) ); table->setItem( 3, 0, new MyWidgetItem( i18n( "2" ) ) ); table->setItem( 4, 0, new MyWidgetItem( i18n( "2.5" ) ) ); table->setItem( 5, 0, new MyWidgetItem( i18n( "3" ) ) ); table->setItem( 6, 0, new MyWidgetItem( i18n( "4" ) ) ); table->setItem( 7, 0, new MyWidgetItem( i18n( "5" ) ) ); table->setItem( 8, 0, new MyWidgetItem( i18n( "6" ) ) ); table->setItem( 9, 0, new MyWidgetItem( i18n( "7" ) ) ); table->setItem( 10,0, new MyWidgetItem( i18n( "8" ) ) ); table->setItem( 11,0, new MyWidgetItem( i18n( "9" ) ) ); table->setItem( 12,0, new MyWidgetItem( i18n( "10" ) ) ); table->setItem( 13,0, new MyWidgetItem( i18n( "11" ) ) ); table->setItem( 14,0, new MyWidgetItem( i18n( "12" ) ) ); table->setItem( 15,0, new MyWidgetItem( i18n( "13" ) ) ); table->setItem( 16,0, new MyWidgetItem( i18n( "14" ) ) ); table->setItem( 17,0, new MyWidgetItem( i18n( "15" ) ) ); table->setItem( 18,0, new MyWidgetItem( i18n( "16" ) ) ); table->setItem( 19,0, new MyWidgetItem( i18n( "17" ) ) ); table->setItem( 20,0, new MyWidgetItem( i18n( "18" ) ) ); table->setItem( 21,0, new MyWidgetItem( i18n( "19" ) ) ); table->setItem( 22,0, new MyWidgetItem( i18n( "20" ) ) ); table->setItem( 23,0, new MyWidgetItem( i18n( "40" ) ) ); table->setItem( 24,0, new MyWidgetItem( i18n( "50" ) ) ); table->setItem( 25,0, new MyWidgetItem( i18n( "60" ) ) ); table->setItem( 26,0, new MyWidgetItem( i18n( "90" ) ) ); table->setItem( 27,0, new MyWidgetItem( i18n( "100" ) ) ); //greek names of the numbers table->setItem( 0, 1, new MyWidgetItem( "hemi" ) ); table->setItem( 1, 1, new MyWidgetItem( "mono" ) ); table->setItem( 2, 1, new MyWidgetItem( "sesqui" ) ); table->setItem( 3, 1, new MyWidgetItem( "di, bi" ) ); table->setItem( 4, 1, new MyWidgetItem( "hemipenta" ) ); table->setItem( 5, 1, new MyWidgetItem( "tri" ) ); table->setItem( 6, 1, new MyWidgetItem( "tetra" ) ); table->setItem( 7, 1, new MyWidgetItem( "penta" ) ); table->setItem( 8, 1, new MyWidgetItem( "hexa" ) ); table->setItem( 9, 1, new MyWidgetItem( "hepta" ) ); table->setItem( 10,1, new MyWidgetItem( "octa" ) ); table->setItem( 11,1, new MyWidgetItem( "nona, ennea" ) ); table->setItem( 12,1, new MyWidgetItem( "deca" ) ); table->setItem( 13,1, new MyWidgetItem( "hendeca, undeca" ) ); table->setItem( 14,1, new MyWidgetItem( "dodeca" ) ); table->setItem( 15,1, new MyWidgetItem( "trideca" ) ); table->setItem( 16,1, new MyWidgetItem( "tetradeca" ) ); table->setItem( 17,1, new MyWidgetItem( "pentadeca" ) ); table->setItem( 18,1, new MyWidgetItem( "hexadeca" ) ); table->setItem( 19,1, new MyWidgetItem( "heptadeca" ) ); table->setItem( 20,1, new MyWidgetItem( "octadeca" ) ); table->setItem( 21,1, new MyWidgetItem( "nonadeca" ) ); table->setItem( 22,1, new MyWidgetItem( "eicosa" ) ); table->setItem( 23,1, new MyWidgetItem( "tetraconta" ) ); table->setItem( 24,1, new MyWidgetItem( "pentaconta" ) ); table->setItem( 25,1, new MyWidgetItem( "hexaconta" ) ); table->setItem( 26,1, new MyWidgetItem( "nonaconta" ) ); table->setItem( 27,1, new MyWidgetItem( "hecta" ) ); //roman symbols table->setItem( 1, 2, new MyWidgetItem( "I" ) ); table->setItem( 3, 2, new MyWidgetItem( "II" ) ); table->setItem( 5, 2, new MyWidgetItem( "III" ) ); table->setItem( 6, 2, new MyWidgetItem( "IV" ) ); table->setItem( 7, 2, new MyWidgetItem( "V" ) ); table->setItem( 8, 2, new MyWidgetItem( "VI" ) ); table->setItem( 9, 2, new MyWidgetItem( "VII" ) ); table->setItem( 10,2, new MyWidgetItem( "VIII" ) ); table->setItem( 11,2, new MyWidgetItem( "IX" ) ); table->setItem( 12,2, new MyWidgetItem( "X" ) ); table->setItem( 13,2, new MyWidgetItem( "XI" ) ); table->setItem( 14,2, new MyWidgetItem( "XII" ) ); table->setItem( 15,2, new MyWidgetItem( "XIII" ) ); table->setItem( 16,2, new MyWidgetItem( "XIV" ) ); table->setItem( 17,2, new MyWidgetItem( "XV" ) ); table->setItem( 18,2, new MyWidgetItem( "XVI" ) ); table->setItem( 19,2, new MyWidgetItem( "XVII" ) ); table->setItem( 20,2, new MyWidgetItem( "XVIII" ) ); table->setItem( 21,2, new MyWidgetItem( "XIV" ) ); table->setItem( 22,2, new MyWidgetItem( "XX" ) ); table->setItem( 23,2, new MyWidgetItem( "XL" ) ); table->setItem( 24,2, new MyWidgetItem( "L" ) ); table->setItem( 25,2, new MyWidgetItem( "LX" ) ); table->setItem( 26,2, new MyWidgetItem( "XC" ) ); table->setItem( 27,2, new MyWidgetItem( "C" ) ); table->resizeColumnsToContents(); frame->setMinimumWidth( qMax( table->columnWidth( 0 ) + table->columnWidth( 1 ) + table->columnWidth( 2 ), table->horizontalHeader()->sizeHint().width() ) +25 ); } TablesDialog::~TablesDialog() { } MyTableWidget::MyTableWidget( QWidget* parent ) : QTableWidget( parent ) { } void MyTableWidget::contextMenuEvent( QContextMenuEvent* event ) { QMenu* menu = new QMenu( (QWidget*) sender() ); menu->addAction( i18n( "&Copy" ), this, SLOT( copyToClipboard() ), QKeySequence( Qt::Key_C | Qt::CTRL ) ); menu->exec( event->globalPos() ); } void MyTableWidget::copyToClipboard() { QApplication::clipboard()->setText( currentItem()->data( QTableWidgetItem::Type ).toString() ); } #include "tablesdialog.moc"