--- /dev/null
+kumushedit (1.0.0) unstable; urgency=low
+
+ * Initial Release.
+
+ -- Ekrem Tomur <ekrem.tomur@gmail.com> Mon, 17 Jan 2011 14:21:26 +0200
--- /dev/null
+Source: kumushedit
+Section: usr/office
+Priority: extra
+Maintainer: Ekrem Tomur <ekrem.tomur@gmail.com>
+Build-Depends: debhelper (>= 5), libqt4-dev
+Standards-Version: 3.7.3
+Homepage: https://garage.maemo.org/projects/kumushedit
+
+Package: kumushedit
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Editor Application with special Uyghur VKB
+XB-Maemo-Icon-26:
+ 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
+ nFAsVxASKsUKk6jH+uY6YehRKFYolypcvn6DzSvXaLUviKMJhXKB6XRCZbHG
+ 0qUVZPPggGg8wlrFbJbSPDvl/sOHDCd9vtp5yZeffspCtUa7ec54MmE46OP7
+ Pvl8njfu3kci0A6ccAhnsc7grMBYy81btzg/bRCGPqVimdPjPcrVMusba9QW
+ lxn3ezjnqNUXMM5jY/MqFycNev0mvi+Qfp5KsYzRCRIo12osra7y6PG7DHsD
+ zo4Okd/7kx/yxr036XaahMUChVIRYwzT6ZQwl+NHf/5jtja38ATMogl/89Of
+ cnp6gjUG5zTWmSxwY7OJbAFpmI4jEm2wWpPPlxiNB2AsqTakOkEgiKZTPKXo
+ DfvoNGE4HFIsVKnVl8EaJqMew8kIpXwKpRKlYoleu82zTz9BKUGSapTv2SeN
+ 4yNWVy+xv7/DP/zhnxCNx/SHQ8bjIYd7uzhrieMEqSS9Toft6zfQqSGXzyHc
+ 14uOm+9E2WSOJhHD8QjPC2g09hj0B0STCf1OlyTVzOIJAoVxhukkJlfIo03C
+ +tYVnIXhqE2pvMiVq1cZjAZc2b5JFI2pLiyi/IB+r00Y5vBMoikvl2m3z+j3
+ e/z8Fz9nls4YD8Yk0ZS17Ss0Ox3efvwNrt+8yajdw1kBzvL61Uvu3L1Pv9el
+ UKzgrMUJS7PZIk1jRoMB0WhIMomIraNcqRInMRbL0cE+6xtXyBUKGB3T7fRZ
+ 27qMtpYgF+KF2XwZjPr0u11efPExUvpUFxaZJTGddpNrb9zGI1CctS6oFEqA
+ Y33rMsVyGZMmnJ2dYWZTkumY//LX/4l8ocjyyhLGGuLpjNrSEr/87S9Rvs/V
+ q9eplEtUKwtEk4gkSiiVyvjKwxiN9ANePP2C5ZVVCuUKy2vrpHpG1J+SL5dx
+ wOnxHoVSkRtvvMlF54RCqYDveQRhSJpajB0TTUb4foAnfaLxBC8ejfnuB9+j
+ 1W1xfHrIuNvm/PyA4WDIqDfg0sY27VaTldUV9l7vcWXzCmEYoiuWQrWCrzyc
+ hGbnHJMu8D/+139nfWubRmMfqTxqtTqlQpVBc0Bpsc5oNmZmNL4v2bh8g16n
+ w8XZCXEc4/tF3n73PT7/5COiYZ9bN97k6Gifcj6PFgKpJUkSs7yxAc8MSyvL
+ qPuPbj/Z3NjEz3kMWn1qtTKPH73H0e4Bb959h8tbV3n3rcd4+GxubbCzs8vR
+ 613sTPPwnYdMRn1anTZRGoFSbG1tcXzSwCFRvocf5ui0W4TSo9/t0Tg7pLaw
+ RHPcoTts0+hfYAuKhfoCshhSyOVJpzMO93e4fO0mJweH5CpFXGqwqSFfKtA7
+ P+egcUQ+l0Ndvbr1pD3ucf/GHfKFkF5/QCFfYDqbcn5+we7OC149f8l4PObh
+ W4/5avcVYaXA+dERnVaPP/+zH/Odd7/D+48/YKW+zLMXz2icNFCDFBulTNsD
+ lFPoNOHNx+/SGnQ4H55RKFWplqvUijWWi3UGzRbt0TnaWsaTMbFMaHUuGAy7
+ NPoX6ADI+cymEbXqIsN+h3y+iPrxv/zxk6PGLoNOn/pCjUdvvs3P/u5viAZD
+ YpFA4qgvLnDwehcvkCSTCcd7R3j5gEGzS6vVolAs8PT1U1bry3zy0e/Qsaaf
+ Toh7Y/zAI5nFBF6AFHB4vM+KX6PfanNr4yo+goPmIddv3mX/iy/ZuHqVgvTZ
+ OdxldXWLyMQgBHmVZ+PSBtYajlunDGdTYpui7t+7+STwAlq9JvXyEi+eP8UP
+ Q2JriTp93nrnMVhDdXmBcX/AoNNjEk+zcpbzOGN59M432VhZ5cvXT5n0RiRR
+ xNTOCJykWCqysLDA1bu3OT1q0DxqEOaLxLMJwhhWLq3TP2lw1jxBoggCn3ar
+ yaP7DymWKty+dZ/W3iGlapFWr4WYzpBeSONkj8tLG6jlxeqT9eVFDhoNjhsN
+ pFTkCgUO9/ZZXV0jX8yzsLxCIV9gYWmZ1GisdZQqFd64fZeNrSscnezjB3ls
+ bJC+T22xjo5Shsx4cPch5VqV/mRAKBXFYpGFtWWcdijPJyyWiOIpMrGcnp6y
+ vr7J6VmDNI6ZWMPnv/41AkGSC7k4alAs1YgmM6aTHnv7J3ggafb7tDtNimGV
+ 8TgixSGl4Lixjx/47O3tMYsT7tx/wNH+Ae1mm3ytTC7M0Qw7rCyv8OzZU373
+ 699QqVVZXV1jPJ0w7PXpjYeExRIvP31KEs9Awu1alVGvT257i07zgkQYaktL
+ PFxeRjhFLswjwwKhp1jdvEyuVOb0+ICttW3SPIQyoFxcoFJXeEEhT6NxgsKn
+ vrTI4toq+693eO/972NsSqlYYjAas7a6Qj5foL7wp0jPp9Nu8tnLF6hZxObW
+ NsJZfvTP/wWer5DSQxtNt9PloHnE5TDg8Tffw1lHMptRqRbBKYJCjtF4TJhq
+ Vja2OT4+4Oa9exwePSdXX6ScKxINj1lYXGY4HtGNJ1T8EjZJyOcLnLTOEe+8
+ dcclOkY7QznIY6TE8xUgsUYjPIUzBpQH0iLSTH1wSlDM5ZmahCSa4gIPJyWk
+ KSrwSbVGSQhyRZCC1CQoJ9EuJQzyeEqBgySZkfMDvEIerSWGGQWn6c0Mxeoi
+ npQo4QFwdn7MnTuPmM6mYAzRZIR3/cZ1dnZeE0jDnbt3KVVrvHr9FQvVFQa9
+ Nr1+D2s0Zb+IcSlSSQqVMkkyJR+ETC7G2SI3MyhfYvGpVpbpd7tgUkSiyRUr
+ TPsjLII4SRAFgRUSqQSFIEBrh2cM/f4ZS0ubGIas1y6RK5QwToNxFPMl7t16
+ yC9+/hOOG+dEaUQgfbzF5WUm05hOp0V9YYkgVwBA+opur0eaxBSLFTa3t5F+
+ wLWr12i3WlycnVAs1tEEVJeXGI+G4Pk4bRFKUq8vMBoOeeP+A6aDPvvHIUbP
+ sFZw8/oteq0zhO+xtX2d8aTP3Xvv8r9/8t8oln2imc9f/Ot/i7Wa8+NjgnwB
+ 6+CLj3/P+XmTRCcoEaCdRfyzH33ggnydF8+f4StFfWWByWBM4IdctJvklcQI
+ n1qpCBKqlUUKxSIzneCs4Mq1GzSbF4wmMTpN2NjaAinZXN8gXyoTej4owce/
+ /Q0mHnH77W8RBDlmUYRJYzrtcy5fucry+jbD3hmjyYiPfv8hD+58g7BcIZpE
+ 6NTRbDf54rM/0Dw7xCKwCkKpEH/2jz5wo2TG7sEh33x4n4l1LNeXiBPNoNui
+ 121jrOLGjRskswmFygJ5X9FqX5BMZ0gvoNsf4M/F3jTVxPEM31f0hkMura6h
+ E02+VMamERZJpVgiSaakWpOkEYVClUG/yfrlm1QX6pw0nrOwfJMknnDp8g0O
+ 9vbpdNvsH7wmjcZIBU4IcrkQL05GKK/IzauXUbkC4WiA0DEhkJOaggehcgxb
+ JwShRzJRjPptwmKVQq2GNY764iKTyQSjE4rVOlbPqC9eQqpMU8oVihzu70Aa
+ 0Bv2CALFsNtDSB9jDN32OdamXJzsEyUTnNZ89fwzJtOI05MGzXaLdDojnSYY
+ LEp4+J6HwiD+43/4K9c4PmRn7zWzbpdStcKVa9cxFlrnJ2ASKrUa0TSmUKww
+ 6HaRNqIzTPCEh3aGxAASlBeQpJp84CM8H2Mtm1tbWCuYRBGd7gWXVjcIgoBU
+ W5xLCL2QMJ9DeYrhoMfK5jVevvyY5YVNtE2QKmAWzxgOe7S6TeLxEGMNUkLg
+ eXj/6t/8O5QnkXikNuHitMF4PKTX62Ys1GnR741on58gwxyDzjlRFDOaavJK
+ 4BSkxuIrH2vBGEN9aYPRqI/vhYSBz2jQp9c6I1CK9ulBRrPGEvo+9cUlmFk2
+ Ll2n1z5FOI0nJZVqhVk0wjpHWMyTCzz8QNI6SzAmwQqFEBLPWgfGYK3DCcPK
+ 6joraxtkmrgAKVBSIYQHCpwVzJKYQb/N7ovnDEd9+sMO4/6QaBqRzmK8sECz
+ cYj0fWZxRLFUZqE+JZlOSAX4nkAKiRAOTymSeIIxMybjPlJAOp0hMAgUUdTF
+ 8/J4XkC9usSk32Y4sjhrIHteZH6EsDiRBWsxIDxwNkO81ginMcIhhEAgqS8s
+ 8/i97+OEhbmo65xAKjl3ZwRC/b3RIYTH+XmDQhjyeu8lT//wEcILaV9cZNXx
+ fNY3N6lUyhQKBXK5Ikan6P6MxKTkTEiqDSrMIacjlPMyS+K42cpsCAHSGgwC
+ JzKFzQmHtAKswymZPSDIAhUi8wZwCCmzIJ1AW4NUKpPenUE4gVAexlkwDodG
+ O4ewEucMVoCUHkmSIJFY7Fwzikmc4/lnH3G49xXPP/+YOB4xmczAk0jnMM4h
+ ji8uHCLLnDEWicMAArBC4AmBAawGyMRbIRRSgMHiLAgkDvv16TKd3xqQc6VC
+ ZDaUsyCEwlqTrSMiUzG0MVnlncjkGiyp1ghE1glYtLEIHIlOMsbAEUUTPCmz
+ zFqb9TvITKAVIB1oa5G+RHlgjURkJkA24pEYq5HKQyL+qPN//S2sBMAYjQMU
+ AmPmCrYQmYrhwPO8zAA0aZYgqfCUP4/LgRBIKRFOECiBmyeqVskhbXZOEA7h
+ 3PwBcAicFAgpcAaMcVgMzmZ4EUIBAk9mWDEmzbQhY5FSZW2UNR1SZp+daY0l
+ 8xGw9o9OprYGYx1C+CAU2mTqnrMWTwqAzAWSDiXVPP9ZR3gWh5MCZwxKSiyg
+ 0xQhJVLKeb9bpBJYkxmn1mRthLOZo2LBCYWQIIUk1SkCkWHDWqzIDqKUxFqH
+ nQthToBE4YxFa41QBpyHRGHJSMVmzZyxJGCtxtnMvpVC4Qnm5tz8w9okCJVl
+ zc19I2MtGEi0xvd8BGLuB2RuzLyiOJu5k1Kq+d++znYGOAdIz0NZSHUCFrQz
+ iPlm6pycJ8j+sXWsMCjloxRYYzL/TWbkYozGMzZ7AULMvVuFAIw2CCGyUxsQ
+ 0uL7AdZojAMp5f9no2a0aZzNwOnIWCqrA8YJnE2QysemGickSnkkSTo3wS0I
+ iTOZNZXhMntPqg2ezlo8SROEUkgyQ10g8IzWCKFQKsBZgxE6A6m2eEpmVpTI
+ fhcyA64gRQoPJHNPzIAUOGT2M5LUpQipsMaAlCg/xFmTtZQ1IASCOUBFBkxt
+ sipl78xYTkiw1iCcy9wbHEopjE0zDAZhDshKqqTEVwHWWITKquFkBm7pKayx
+ pEYjnMpaAIl1GcUpsnKDRQoxz6jBOTJgO43RDj2Hn6cUzjhMarJqKom1GaU4
+ IbDSImxWSaEUiTF4UqKdxSRJZqQDnjUOITOFwGmL1QYJoLJB47JBCw5SrTHG
+ gNOZI+/5GV2KOe9bh0NiXAJq3orG4HletooIm7WSkyRG47QldRZhHZ4DIRV6
+ rnoIIdFGo1OHpxyelMy0ZqZTvDlxAHjOGpxTIB3GplkJESCyqwJuDj5hsyr4
+ XkgUjzLcSIFAoXA4LbFfd730sose1uIrhUOgjSXR6ZxBMiZTShEKSWIMM5MQ
+ eAEuu4dAnKQoKQkDH2Ms49n0j5jT1uDJbNp7qbOgdba3kE1C6xxSSawTSOmw
+ JrtOoJBoqzNOnyX4zuEpD4fAiKxvs+cs1mYDLyMCg7Z2zvoZjQpP4XAkOqum
+ tY5ZkuKEwxiLUhJPehhjSU2abQkic/mdACEFWIFnUo2xGqUlwpMgFTJbhPCU
+ yCY02b2HVCfZqLeOMB/iedl/YVan817XWK1BZQufNhosGOY3V4TAzA0Rl6Yg
+ Mq/s62lsjcFa/n7wpQmzJGEWp4SFPIGvsvsRng9kFf1/3n/spwselaoAAAAA
+ SUVORK5CYII=
+
--- /dev/null
+This package was debianized by Ekrem Tomur <ekrem.tomur@gmail.com> on
+Mon, 17 Jan 2011 14:21:26 +0200.
+
+
+Upstream Author(s):
+
+ Ekrem Tomur <ekrem.tomur@gmail.com>
+
+Copyright:
+
+ Copyright (C) 2011 Ekrem Tomur
+
+License:
+
+ This package 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.
+
+ This package is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this package; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+On Debian systems, the complete text of the GNU General
+Public License can be found in `/usr/share/common-licenses/GPL'.
+
+The Debian packaging is (C) 2011, Aikeremu Tiemuer <taiken@unknown> and
+is licensed under the GPL, see above.
+
+
+# Please also look if there are files or directories which have a
+# different copyright/license attached and list them here.
--- /dev/null
+#!/usr/bin/make -f
+APPNAME := kumushedit
+builddir:
+ mkdir -p builddir
+
+builddir/Makefile: builddir
+ cd builddir && qmake-qt4 PREFIX=/usr ../$(APPNAME).pro
+
+build: build-stamp
+
+build-stamp: builddir/Makefile
+ dh_testdir
+ # Add here commands to compile the package.
+ cd builddir && $(MAKE)
+ touch $@
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp
+ # Add here commands to clean up after the build process.
+ rm -rf builddir
+ dh_clean
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/your_appname
+ cd builddir && $(MAKE) INSTALL_ROOT=$(CURDIR)/debian/$(APPNAME) install
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installdocs
+ dh_installexamples
+ dh_installman
+ dh_link
+# dh_strip --dbg-package=appname-dbg
+ dh_compress
+ dh_fixperms
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
--- /dev/null
+#include <QVBoxLayout>
+#include <QTextEdit>
+#include <QTextCursor>
+#include <QTextCharFormat>
+#include <QFileDialog>
+#include <QTextStream>
+#include <QClipboard>
+#include <QDebug>
+#include <QApplication>
+
+#include "kumushedit.h"
+
+KumushEdit::KumushEdit(QWidget *parent) :
+ QWidget(parent)
+{
+ QVBoxLayout *layout = new QVBoxLayout;
+ createTextEdit();
+ layout->addWidget(mTextEdit);
+ createVKB();
+ layout->addWidget(mVKB);
+ layout->setSizeConstraint(QLayout::SetMaximumSize);
+ layout->setSpacing(0);
+ this->setLayout(layout);
+ connect(mVKB, SIGNAL(VKBButtonClicked(QString)), this, SLOT(VKBButtonClicked(QString)));
+ connect(mVKB, SIGNAL(openButtonClicked()), this, SLOT(openButtonClicked()));
+ connect(mVKB, SIGNAL(saveButtonClicked()), this, SLOT(saveButtonClicked()));
+ connect(mVKB, SIGNAL(copyButtonClicked()), this, SLOT(copyButtonClicked()));
+ connect(mVKB, SIGNAL(pasteButtonClicked()), this, SLOT(pasteButtonClicked()));
+ connect(mVKB, SIGNAL(fwButtonClicked()), this, SLOT(fwButtonClicked()));
+ connect(mVKB, SIGNAL(bwButtonClicked()), this, SLOT(bwButtonClicked()));
+ connect(mVKB, SIGNAL(bspaceButtonClicked()), this, SLOT(bspaceButtonClicked()));
+}
+
+KumushEdit::~KumushEdit()
+{
+}
+
+void KumushEdit::createTextEdit()
+{
+ mTextEdit = new QTextEdit;
+}
+
+void KumushEdit::createVKB()
+{
+ mVKB = new VKB;
+}
+
+void KumushEdit::VKBButtonClicked(QString value)
+{
+ QTextCursor cursor = mTextEdit->textCursor();
+ QTextCharFormat textFormat = cursor.charFormat();
+ textFormat.setFontFamily("UyghurEdit Riwaj");
+ cursor.insertText(value, textFormat);
+ mTextEdit->setFocus();
+ mTextEdit->ensureCursorVisible();
+}
+
+void KumushEdit::openButtonClicked()
+{
+ fileName = QFileDialog::getOpenFileName(this, "Hojjetni Tallang", NULL, "Tekist Hojjetliri (*.txt)");
+ QFile file(fileName, this);
+ if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
+ return;
+ mTextEdit->clear();
+ QTextCursor cursor = mTextEdit->textCursor();
+ QTextCharFormat textFormat = cursor.charFormat();
+ textFormat.setFontFamily("UyghurEdit Riwaj");
+ QTextStream in(&file);
+ while (!in.atEnd()) {
+ QString line = in.readLine() + "\n";
+ cursor.insertText(line, textFormat);
+ }
+ file.close();
+ mTextEdit->setFocus();
+}
+
+void KumushEdit::saveButtonClicked()
+{
+ fileName = QFileDialog::getSaveFileName(this, "Hojjetni Saqlang", fileName, "Tekist Hojjetliri (*.txt)");
+ QFile file(fileName, this);
+ if (!file.open(QIODevice::WriteOnly | QIODevice::Text))
+ return;
+ QTextStream out(&file);
+ qDebug()<<mTextEdit->toPlainText();
+ out<<mTextEdit->toPlainText();
+ file.close();
+ mTextEdit->setFocus();
+}
+
+void KumushEdit::copyButtonClicked()
+{
+ QClipboard *clipboard = QApplication::clipboard();
+ qDebug()<<mTextEdit->toPlainText();
+ clipboard->setText(mTextEdit->toPlainText());
+ qDebug()<<clipboard->text();
+ mTextEdit->setFocus();
+}
+
+void KumushEdit::pasteButtonClicked()
+{
+ QClipboard *clipboard = QApplication::clipboard();
+ QString text = clipboard->text();
+ QTextCursor cursor = mTextEdit->textCursor();
+ QTextCharFormat textFormat = cursor.charFormat();
+ textFormat.setFontFamily("UyghurEdit Riwaj");
+ cursor.insertText(text, textFormat);
+ mTextEdit->setFocus();
+ mTextEdit->ensureCursorVisible();
+}
+
+void KumushEdit::fwButtonClicked()
+{
+ QTextCursor cursor = mTextEdit->textCursor();
+ cursor.setPosition(cursor.position()+1);
+ mTextEdit->setTextCursor(cursor);
+ mTextEdit->setFocus();
+ mTextEdit->ensureCursorVisible();
+}
+
+void KumushEdit::bwButtonClicked()
+{
+ QTextCursor cursor = mTextEdit->textCursor();
+ cursor.setPosition(cursor.position()-1);
+ mTextEdit->setTextCursor(cursor);
+ mTextEdit->setFocus();
+ mTextEdit->ensureCursorVisible();
+}
+
+void KumushEdit::bspaceButtonClicked()
+{
+ mTextEdit->textCursor().deletePreviousChar();
+ mTextEdit->setFocus();
+ mTextEdit->ensureCursorVisible();
+}
--- /dev/null
+#ifndef KUMUSHEDIT_H
+#define KUMUSHEDIT_H
+
+#include <QWidget>
+
+#include "vkb.h"
+
+QT_FORWARD_DECLARE_CLASS(QTextEdit)
+
+class KumushEdit : public QWidget
+{
+ Q_OBJECT
+
+public:
+ explicit KumushEdit(QWidget *parent = 0);
+ ~KumushEdit();
+public slots:
+ void VKBButtonClicked(QString value);
+ void openButtonClicked();
+ void saveButtonClicked();
+ void copyButtonClicked();
+ void pasteButtonClicked();
+ void fwButtonClicked();
+ void bwButtonClicked();
+ void bspaceButtonClicked();
+
+private:
+ void createTextEdit();
+ void createVKB();
+
+private:
+ QTextEdit *mTextEdit;
+ QString fileName;
+ VKB *mVKB;
+};
+
+#endif // KUMUSHEDIT_H
--- /dev/null
+#-------------------------------------------------
+#
+# Project created by QtCreator 2011-01-05T11:16:15
+#
+#-------------------------------------------------
+
+QT += core gui
+
+TARGET = kumushedit
+TEMPLATE = app
+target.path=/usr/local/bin
+INSTALLS=target
+
+
+SOURCES += main.cpp\
+ kumushedit.cpp \
+ vkb.cpp
+
+HEADERS += kumushedit.h \
+ vkb.h
+
+FORMS +=
+
+OTHER_FILES +=
+
+RESOURCES += \
+ resources.qrc
+
+unix {
+ INSTALLS += target desktop icon48
+ target.path = /usr/bin/kumushedit
+ desktop.path = /usr/share/applications/hildon
+ desktop.files += maemofiles/kumushedit.desktop
+ icon48.path = /usr/share/icons/hicolor/48x48/apps
+ icon48.files += maemofiles/kumushedit_icon.png
+}
+
--- /dev/null
+<!DOCTYPE QtCreatorProject>
+<qtcreator>
+ <data>
+ <variable>ProjectExplorer.Project.ActiveTarget</variable>
+ <value type="int">0</value>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.EditorSettings</variable>
+ <valuemap type="QVariantMap">
+ <value key="EditorConfiguration.Codec" type="QByteArray">System</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.Target.0</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Maemo</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Target.MaemoDeviceTarget</value>
+ <value key="ProjectExplorer.Target.ActiveBuildConfiguration" type="int">0</value>
+ <value key="ProjectExplorer.Target.ActiveRunConfiguration" type="int">0</value>
+ <valuemap key="ProjectExplorer.Target.BuildConfiguration.0" type="QVariantMap">
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.0" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">qmake</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value>
+ <valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/>
+ </valuemap>
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.1" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Make</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value>
+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
+ </valuemap>
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.2" type="QVariantMap">
+ <value key="Packaging Enabled" type="bool">true</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MaemoPackageCreationStep</value>
+ <valuelist key="Qt4ProjectManager.BuildStep.MaemoPackage.LocalFiles" type="QVariantList"/>
+ <value key="Qt4ProjectManager.BuildStep.MaemoPackage.Modified" type="bool">false</value>
+ <value key="Qt4ProjectManager.BuildStep.MaemoPackage.RemoteExe" type="QString"></value>
+ <valuelist key="Qt4ProjectManager.BuildStep.MaemoPackage.RemoteFiles" type="QVariantList"/>
+ <value key="Version Number" type="QString">0.0.1</value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">3</value>
+ <valuemap key="ProjectExplorer.BuildConfiguration.CleanStep.0" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Make</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value>
+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList">
+ <value type="QString">clean</value>
+ </valuelist>
+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildConfiguration.CleanStepsCount" type="int">1</value>
+ <value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value>
+ <valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Debug</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">2</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/home/taiken/kumushedit-build-maemo</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">8</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">9</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
+ </valuemap>
+ <valuemap key="ProjectExplorer.Target.BuildConfiguration.1" type="QVariantMap">
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.0" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">qmake</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value>
+ <valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/>
+ </valuemap>
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.1" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Make</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value>
+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
+ </valuemap>
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.2" type="QVariantMap">
+ <value key="Packaging Enabled" type="bool">true</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString"></value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MaemoPackageCreationStep</value>
+ <valuelist key="Qt4ProjectManager.BuildStep.MaemoPackage.LocalFiles" type="QVariantList"/>
+ <value key="Qt4ProjectManager.BuildStep.MaemoPackage.Modified" type="bool">true</value>
+ <value key="Qt4ProjectManager.BuildStep.MaemoPackage.RemoteExe" type="QString"></value>
+ <valuelist key="Qt4ProjectManager.BuildStep.MaemoPackage.RemoteFiles" type="QVariantList"/>
+ <value key="Version Number" type="QString">0.0.1</value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">3</value>
+ <valuemap key="ProjectExplorer.BuildConfiguration.CleanStep.0" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Make</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value>
+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList">
+ <value type="QString">clean</value>
+ </valuelist>
+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildConfiguration.CleanStepsCount" type="int">1</value>
+ <value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value>
+ <valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Release</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">0</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/home/taiken/kumushedit-build-maemo</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">8</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">9</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
+ </valuemap>
+ <value key="ProjectExplorer.Target.BuildConfigurationCount" type="int">2</value>
+ <valuemap key="ProjectExplorer.Target.RunConfiguration.0" type="QVariantMap">
+ <value key=".ProFile" type="QString">kumushedit.pro</value>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">New Maemo Run Configuration</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MaemoRunConfiguration</value>
+ <valuelist key="Qt4ProjectManager.MaemoRunConfiguration.Arguments" type="QVariantList"/>
+ <value key="Qt4ProjectManager.MaemoRunConfiguration.DeviceId" type="qulonglong">3</value>
+ <valuelist key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedFiles" type="QVariantList">
+ <value type="QString">192.168.2.15</value>
+ </valuelist>
+ <valuelist key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedHosts" type="QVariantList">
+ <value type="QString">/home/taiken/kumushedit-build-maemo/kumushedit_0.0.1_armel.deb</value>
+ </valuelist>
+ <valuelist key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedRemotePaths" type="QVariantList">
+ <value type="QString">/root/kumushedit_0.0.1_armel.deb</value>
+ </valuelist>
+ <valuelist key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedTimes" type="QVariantList">
+ <value type="QDateTime">2011-01-18T15:13:38</value>
+ </valuelist>
+ </valuemap>
+ <value key="ProjectExplorer.Target.RunConfigurationCount" type="int">1</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.Target.1</variable>
+ <valuemap type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Qt Simulator</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Target.QtSimulatorTarget</value>
+ <value key="ProjectExplorer.Target.ActiveBuildConfiguration" type="int">0</value>
+ <value key="ProjectExplorer.Target.ActiveRunConfiguration" type="int">0</value>
+ <valuemap key="ProjectExplorer.Target.BuildConfiguration.0" type="QVariantMap">
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.0" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">qmake</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value>
+ <valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/>
+ </valuemap>
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.1" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Make</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value>
+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">2</value>
+ <valuemap key="ProjectExplorer.BuildConfiguration.CleanStep.0" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Make</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value>
+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList">
+ <value type="QString">clean</value>
+ </valuelist>
+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildConfiguration.CleanStepsCount" type="int">1</value>
+ <value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value>
+ <valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Debug</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">2</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/home/taiken/kumushedit-build-simulator</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">7</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
+ </valuemap>
+ <valuemap key="ProjectExplorer.Target.BuildConfiguration.1" type="QVariantMap">
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.0" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">qmake</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">QtProjectManager.QMakeBuildStep</value>
+ <valuelist key="QtProjectManager.QMakeBuildStep.QMakeArguments" type="QVariantList"/>
+ </valuemap>
+ <valuemap key="ProjectExplorer.BuildConfiguration.BuildStep.1" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Make</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">false</value>
+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList"/>
+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildConfiguration.BuildStepsCount" type="int">2</value>
+ <valuemap key="ProjectExplorer.BuildConfiguration.CleanStep.0" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Make</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.MakeStep</value>
+ <value key="Qt4ProjectManager.MakeStep.Clean" type="bool">true</value>
+ <valuelist key="Qt4ProjectManager.MakeStep.MakeArguments" type="QVariantList">
+ <value type="QString">clean</value>
+ </valuelist>
+ <value key="Qt4ProjectManager.MakeStep.MakeCommand" type="QString"></value>
+ </valuemap>
+ <value key="ProjectExplorer.BuildConfiguration.CleanStepsCount" type="int">1</value>
+ <value key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment" type="bool">false</value>
+ <valuelist key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges" type="QVariantList"/>
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">Release</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4BuildConfiguration</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration" type="int">0</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.BuildDirectory" type="QString">/home/taiken/kumushedit-build-simulator</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.QtVersionId" type="int">7</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.ToolChain" type="int">0</value>
+ <value key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild" type="bool">true</value>
+ </valuemap>
+ <value key="ProjectExplorer.Target.BuildConfigurationCount" type="int">2</value>
+ <valuemap key="ProjectExplorer.Target.RunConfiguration.0" type="QVariantMap">
+ <value key="ProjectExplorer.ProjectConfiguration.DisplayName" type="QString">kumushedit</value>
+ <value key="ProjectExplorer.ProjectConfiguration.Id" type="QString">Qt4ProjectManager.Qt4RunConfiguration</value>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.BaseEnvironmentBase" type="int">2</value>
+ <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments" type="QVariantList"/>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.ProFile" type="QString">kumushedit.pro</value>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UseDyldImageSuffix" type="bool">false</value>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UseTerminal" type="bool">false</value>
+ <valuelist key="Qt4ProjectManager.Qt4RunConfiguration.UserEnvironmentChanges" type="QVariantList"/>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UserSetName" type="bool">false</value>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UserSetWorkingDirectory" type="bool">false</value>
+ <value key="Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory" type="QString"></value>
+ </valuemap>
+ <value key="ProjectExplorer.Target.RunConfigurationCount" type="int">1</value>
+ </valuemap>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.TargetCount</variable>
+ <value type="int">2</value>
+ </data>
+ <data>
+ <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
+ <value type="int">4</value>
+ </data>
+</qtcreator>
--- /dev/null
+# no post install
+#%define __os_install_post %{nil}
+# no strip
+#%define __strip /bin/true
+# no debug package
+#%define debug_package %{nil}
+# disable automatic dependency processing
+#AutoReqProv: no
+
+Name: kumushedit
+Version: 0.0.1
+Release: 1
+License: <insert license tag>
+Summary: <insert summary tag>
+Url: <insert url tag>
+Group: <insert group tag>
+Source0: %{name}-%{version}.tar.gz
+#BuildRequires: pkgconfig(QtCore)
+BuildRequires: libqt-devel
+
+%description
+# Add here description of the package.
+
+%prep
+%setup -q
+
+%build
+# Add here commands to configure the package.
+#%qmake
+#qmake -makefile -nocache QMAKE_STRIP=: PREFIX=%{_prefix}
+
+# Add here commands to compile the package.
+#make %{?jobs:-j%jobs}
+#make %{?_smp_mflags}
+make
+
+%install
+# Add here commands to install the package.
+#%qmake_install
+make install INSTALL_ROOT=%{buildroot}
+
+%files
+%defattr(-,root,root,-)
+%{_prefix}/*
--- /dev/null
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Name=kumushedit
+Exec=/usr/bin/kumushedit/kumushedit
+Icon=kumushedit_icon
+StartupWMClass=KumushEdit
+X-Window-Icon=kumushedit_icon
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
+Terminal=false
+
--- /dev/null
+#include <QtGui/QApplication>
+#include <QFontDatabase>
+#include <QFile>
+#include <QByteArray>
+#include <QFont>
+#include <QDebug>
+#include "kumushedit.h"
+
+int main(int argc, char *argv[])
+{
+ QApplication a(argc, argv);
+ QFile fontFile(":/ttf/UyghurEditRiwaj.ttf");
+ fontFile.open(QIODevice::ReadOnly);
+ QByteArray fontData = fontFile.QIODevice::readAll();
+ int rv = QFontDatabase::addApplicationFontFromData(fontData);
+ if (rv == -1) {
+ qDebug()<<"Failed to load font file!\n";
+ } else {
+ QFont ugFont("UyghurEdit Riwaj");
+ QApplication::setFont(ugFont, "QPushButton");
+ qDebug()<<QFontDatabase::applicationFontFamilies(rv);
+ }
+
+ KumushEdit w;
+#if defined(Q_OS_SYMBIAN)
+ w.showMaximized();
+#else
+ w.show();
+#endif
+ return a.exec();
+}
--- /dev/null
+<RCC>
+ <qresource prefix="/">
+ <file>ttf/UyghurEditRiwaj.ttf</file>
+ <file>images/copy.png</file>
+ <file>images/cut.png</file>
+ <file>images/new.png</file>
+ <file>images/open.png</file>
+ <file>images/paste.png</file>
+ <file>images/save.png</file>
+ <file>images/bkspc.png</file>
+ <file>images/enter.png</file>
+ <file>images/shift.png</file>
+ <file>images/space.png</file>
+ </qresource>
+</RCC>
--- /dev/null
+#include <QGridLayout>
+#include <QVBoxLayout>
+#include <QPushButton>
+#include <QString>
+#include <QDebug>
+#include <QStyle>
+#include <QFont>
+#include <QIcon>
+#include "vkb.h"
+
+static unsigned short keys[3][10]={
+ { 0x0686, 0x06cb, 0x06d0, 0x0631, 0x062a, 0x064a, 0x06c7, 0x06ad, 0x0648, 0x067e }, //ch, w, e, r, t, y, u, ng, o, p
+ { 0x06be, 0x0633, 0x062f, 0x0627, 0x06d5, 0x0649, 0x0642, 0x0643, 0x0644, 0x061B }, //h, s, d, a, e, i, q, k, l, ؛
+ { 0x0632, 0x0634, 0x063a, 0x06c8, 0x0628, 0x0646, 0x0645, 0x060C, 0x002E, 0x0626 } //z, sh, gh,ü, b, n, m, ،, ., hemze
+};
+
+static unsigned short skeys[3][10]={
+ { 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039 }, //0, 1, 2, 3, 4, 5, 6, 7, 8, 9
+ { 0x00BB, 0x00AB, 0x0698, 0x0641, 0x06af, 0x062e, 0x062c, 0x06c6, 0x002B, 0x003A }, //», «, dr, f, g, x, j, ö, +, :
+ { 0x0021, 0x066A, 0x066D, 0x002f, 0x002d, 0x2014, 0x003D, 0x203a, 0x2039, 0x061F } //!, %, *, /, -, —, =, ›, ‹, ؟
+};
+
+static int BUTTON_MAXIMUM_HEIGHT = 50;
+
+VKB::VKB(QWidget *parent) :
+ QWidget(parent),
+ mShift(false)
+{
+ mUGFont = new QFont("UyghurEdit Riwaj");
+ QVBoxLayout *layout = new QVBoxLayout;
+ mvkb = createVKB(keys);
+ layout->addWidget(mvkb);
+ msvkb = createVKB(skeys);
+ layout->addWidget(msvkb);
+ msvkb->hide();
+ createToolBar();
+ layout->addWidget(mtbar);
+ layout->setSpacing(0);
+ setLayout(layout);
+}
+
+VKB::~VKB()
+{
+ delete mUGFont;
+}
+
+void VKB::keyClicked()
+{
+ QPushButton *clickedButton = qobject_cast<QPushButton *>(sender());
+ emit VKBButtonClicked(clickedButton->text());
+}
+
+void VKB::shiftButtonClicked()
+{
+ if (mShiftToggled) {
+ msvkb->hide();
+ mvkb->show();
+ mShift->setText("");
+ mShiftToggled=false;
+ } else {
+ mvkb->hide();
+ msvkb->show();
+ mShift->setText("*");
+ mShiftToggled=true;
+ }
+}
+
+void VKB::spaceButtonClicked()
+{
+ emit VKBButtonClicked(QString(" "));
+}
+
+void VKB::enterButtonClicked()
+{
+ emit VKBButtonClicked(QString("\n"));
+}
+
+QWidget* VKB::createVKB(const unsigned short keys[3][10])
+{
+ QWidget *vkb = new QWidget();
+ QGridLayout *layout = new QGridLayout;
+ for (int i=0; i<3; i++) {
+ for (int j=0; j<10; j++) {
+ QPushButton *key = new QPushButton(QString(keys[i][j]));
+ qDebug()<<key->fontInfo().family();
+ key->setFont(*mUGFont);
+ key->setMaximumHeight(BUTTON_MAXIMUM_HEIGHT);
+ qDebug()<<key->fontInfo().family();
+ connect(key, SIGNAL(clicked()), this, SLOT(keyClicked()));
+ layout->addWidget(key, i, j);
+ }
+ }
+ layout->setSpacing(0);
+ vkb->setLayout(layout);
+ return vkb;
+}
+
+/**
+ * toolbar always visible and it contains following buttons
+ * Open: open a file
+ * Save: save Text to a file
+ * Copy: copy the content to clipboard
+ * Shift: controls to switch between two VKB
+ * forward: move the cursor to the forward
+ * Space: input blank space
+ * backward: move the cursor to the backward
+ * Enter: input line break
+ * Backspace: delete the character before the cursor
+ */
+void VKB::createToolBar()
+{
+ mtbar = new QWidget();
+ QHBoxLayout *layout = new QHBoxLayout;
+ mOpen = new QPushButton(QIcon(":/images/open.png"), QString());
+ connect(mOpen, SIGNAL(clicked()), this, SIGNAL(openButtonClicked()));
+ layout->addWidget(mOpen);
+
+ mSave = new QPushButton(QIcon(":/images/save.png"), QString());
+ connect(mSave, SIGNAL(clicked()), this, SIGNAL(saveButtonClicked()));
+ layout->addWidget(mSave);
+
+ mCopy = new QPushButton(QIcon(":/images/copy.png"), QString());
+ connect(mCopy, SIGNAL(clicked()), this, SIGNAL(copyButtonClicked()));
+ layout->addWidget(mCopy);
+
+ mPaste = new QPushButton(QIcon(":/images/paste.png"), QString());
+ connect(mPaste, SIGNAL(clicked()), this, SIGNAL(pasteButtonClicked()));
+ layout->addWidget(mPaste);
+
+ mShift = new QPushButton(QIcon(":/images/shift.png"), QString());
+ connect(mShift, SIGNAL(clicked()), this, SLOT(shiftButtonClicked()));
+ layout->addWidget(mShift);
+
+ mFW = new QPushButton(style()->standardIcon(QStyle::SP_ArrowLeft), QString());
+ connect(mFW, SIGNAL(clicked()), this, SIGNAL(fwButtonClicked()));
+ layout->addWidget(mFW);
+
+ mSpace = new QPushButton(QIcon(":/images/space.png"), QString());
+ connect(mSpace, SIGNAL(clicked()), this, SLOT(spaceButtonClicked()));
+ layout->addWidget(mSpace);
+
+ mBW = new QPushButton(style()->standardIcon(QStyle::SP_ArrowRight), QString());
+ connect(mBW, SIGNAL(clicked()), this, SIGNAL(bwButtonClicked()));
+ layout->addWidget(mBW);
+
+ mEnter = new QPushButton(QIcon(":/images/enter.png"), QString());
+ connect(mEnter, SIGNAL(clicked()), this, SLOT(enterButtonClicked()));
+ layout->addWidget(mEnter);
+
+ mBSpace = new QPushButton(QIcon(":/images/bkspc.png"), QString());
+ connect(mBSpace, SIGNAL(clicked()), this, SIGNAL(bspaceButtonClicked()));
+ layout->addWidget(mBSpace);
+ layout->setSpacing(0);
+ mtbar->setLayout(layout);
+}
--- /dev/null
+#ifndef VKB_H
+#define VKB_H
+
+#include <QWidget>
+QT_FORWARD_DECLARE_CLASS(QPushButton)
+
+class VKB : public QWidget
+{
+ Q_OBJECT
+public:
+ explicit VKB(QWidget *parent = 0);
+ ~VKB();
+signals:
+ void VKBButtonClicked(QString value);
+ void openButtonClicked();
+ void saveButtonClicked();
+ void copyButtonClicked();
+ void pasteButtonClicked();
+ void fwButtonClicked();
+ void bwButtonClicked();
+ void bspaceButtonClicked();
+
+public slots:
+
+private:
+ QWidget* createVKB(const unsigned short keys[3][10]);
+ void createToolBar();
+
+ QWidget *mvkb; //vkb first page
+ QWidget *msvkb; //vkb after shift button
+ QWidget *mtbar; //toolbar
+ QFont *mUGFont; //font
+
+ QPushButton *mOpen;
+ QPushButton *mSave;
+ QPushButton *mCopy;
+ QPushButton *mPaste;
+ QPushButton *mShift;
+ QPushButton *mFW;
+ QPushButton *mSpace;
+ QPushButton *mBW;
+ QPushButton *mEnter;
+ QPushButton *mBSpace;
+
+ bool mShiftToggled;
+private slots:
+ void keyClicked();
+ void shiftButtonClicked();
+ void spaceButtonClicked();
+ void enterButtonClicked();
+};
+
+#endif // VKB_H