init develop
authorCuong Le <metacuong@gmail.com>
Mon, 19 Sep 2011 05:14:54 +0000 (12:14 +0700)
committerCuong Le <metacuong@gmail.com>
Mon, 19 Sep 2011 05:14:54 +0000 (12:14 +0700)
43 files changed:
Contributors.txt [new file with mode: 0644]
Licence.txt [new file with mode: 0644]
appman.cpp [new file with mode: 0644]
appman.h [new file with mode: 0644]
db/vietkaralist.sqlite [new file with mode: 0644]
dbman.cpp [new file with mode: 0644]
dbman.h [new file with mode: 0644]
dbthread.cpp [new file with mode: 0644]
dbthread.h [new file with mode: 0644]
main.cpp [new file with mode: 0644]
qml/vietkaralist/AboutDlg.qml [new file with mode: 0644]
qml/vietkaralist/MenuBar.qml [new file with mode: 0644]
qml/vietkaralist/MenuButton.qml [new file with mode: 0644]
qml/vietkaralist/Page.qml [new file with mode: 0644]
qml/vietkaralist/ScrollBar.qml [new file with mode: 0644]
qml/vietkaralist/SongList.qml [new file with mode: 0644]
qml/vietkaralist/SongListView.qml [new file with mode: 0644]
qml/vietkaralist/TopBar.qml [new file with mode: 0644]
qml/vietkaralist/WaitingDlg.qml [new file with mode: 0644]
qml/vietkaralist/imgs/ab.png [new file with mode: 0644]
qml/vietkaralist/imgs/app_icon.png [new file with mode: 0644]
qml/vietkaralist/imgs/back.png [new file with mode: 0644]
qml/vietkaralist/imgs/busy.png [new file with mode: 0644]
qml/vietkaralist/imgs/f.png [new file with mode: 0644]
qml/vietkaralist/imgs/l.png [new file with mode: 0644]
qml/vietkaralist/imgs/o.png [new file with mode: 0644]
qml/vietkaralist/imgs/search.png [new file with mode: 0644]
qml/vietkaralist/main.qml [new file with mode: 0644]
qml/vietkaralist/scripts/main.js [new file with mode: 0644]
qmlapplicationviewer/qmlapplicationviewer.cpp [new file with mode: 0644]
qmlapplicationviewer/qmlapplicationviewer.h [new file with mode: 0644]
qmlapplicationviewer/qmlapplicationviewer.pri [new file with mode: 0644]
qtc_packaging/debian_fremantle/README [new file with mode: 0644]
qtc_packaging/debian_fremantle/changelog [new file with mode: 0644]
qtc_packaging/debian_fremantle/compat [new file with mode: 0644]
qtc_packaging/debian_fremantle/control [new file with mode: 0644]
qtc_packaging/debian_fremantle/copyright [new file with mode: 0644]
qtc_packaging/debian_fremantle/rules [new file with mode: 0755]
vietkaralist.desktop [new file with mode: 0644]
vietkaralist.png [new file with mode: 0644]
vietkaralist.pro [new file with mode: 0644]
vietkaralist.svg [new file with mode: 0644]
welcome [deleted file]

diff --git a/Contributors.txt b/Contributors.txt
new file mode 100644 (file)
index 0000000..3dbe4d1
--- /dev/null
@@ -0,0 +1,3 @@
+Cuong Le <metacuong@gmail.com>
+ - project owner
+ - Qt C++ and QML gui
diff --git a/Licence.txt b/Licence.txt
new file mode 100644 (file)
index 0000000..4f3d3e8
--- /dev/null
@@ -0,0 +1,278 @@
+        GNU GENERAL PUBLIC LICENSE\r
+           Version 2, June 1991\r
+\r
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.\r
+ 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA\r
+ Everyone is permitted to copy and distribute verbatim copies\r
+ of this license document, but changing it is not allowed.\r
+\r
+          Preamble\r
+\r
+  The licenses for most software are designed to take away your\r
+freedom to share and change it.  By contrast, the GNU General Public\r
+License is intended to guarantee your freedom to share and change free\r
+software--to make sure the software is free for all its users.  This\r
+General Public License applies to most of the Free Software\r
+Foundation's software and to any other program whose authors commit to\r
+using it.  (Some other Free Software Foundation software is covered by\r
+the GNU Lesser General Public License instead.)  You can apply it to\r
+your programs, too.\r
+\r
+  When we speak of free software, we are referring to freedom, not\r
+price.  Our General Public Licenses are designed to make sure that you\r
+have the freedom to distribute copies of free software (and charge for\r
+this service if you wish), that you receive source code or can get it\r
+if you want it, that you can change the software or use pieces of it\r
+in new free programs; and that you know you can do these things.\r
+\r
+  To protect your rights, we need to make restrictions that forbid\r
+anyone to deny you these rights or to ask you to surrender the rights.\r
+These restrictions translate to certain responsibilities for you if you\r
+distribute copies of the software, or if you modify it.\r
+\r
+  For example, if you distribute copies of such a program, whether\r
+gratis or for a fee, you must give the recipients all the rights that\r
+you have.  You must make sure that they, too, receive or can get the\r
+source code.  And you must show them these terms so they know their\r
+rights.\r
+\r
+  We protect your rights with two steps: (1) copyright the software, and\r
+(2) offer you this license which gives you legal permission to copy,\r
+distribute and/or modify the software.\r
+\r
+  Also, for each author's protection and ours, we want to make certain\r
+that everyone understands that there is no warranty for this free\r
+software.  If the software is modified by someone else and passed on, we\r
+want its recipients to know that what they have is not the original, so\r
+that any problems introduced by others will not reflect on the original\r
+authors' reputations.\r
+\r
+  Finally, any free program is threatened constantly by software\r
+patents.  We wish to avoid the danger that redistributors of a free\r
+program will individually obtain patent licenses, in effect making the\r
+program proprietary.  To prevent this, we have made it clear that any\r
+patent must be licensed for everyone's free use or not licensed at all.\r
+\r
+  The precise terms and conditions for copying, distribution and\r
+modification follow.\r
+\r
+        GNU GENERAL PUBLIC LICENSE\r
+   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\r
+\r
+  0. This License applies to any program or other work which contains\r
+a notice placed by the copyright holder saying it may be distributed\r
+under the terms of this General Public License.  The "Program", below,\r
+refers to any such program or work, and a "work based on the Program"\r
+means either the Program or any derivative work under copyright law:\r
+that is to say, a work containing the Program or a portion of it,\r
+either verbatim or with modifications and/or translated into another\r
+language.  (Hereinafter, translation is included without limitation in\r
+the term "modification".)  Each licensee is addressed as "you".\r
+\r
+Activities other than copying, distribution and modification are not\r
+covered by this License; they are outside its scope.  The act of\r
+running the Program is not restricted, and the output from the Program\r
+is covered only if its contents constitute a work based on the\r
+Program (independent of having been made by running the Program).\r
+Whether that is true depends on what the Program does.\r
+\r
+  1. You may copy and distribute verbatim copies of the Program's\r
+source code as you receive it, in any medium, provided that you\r
+conspicuously and appropriately publish on each copy an appropriate\r
+copyright notice and disclaimer of warranty; keep intact all the\r
+notices that refer to this License and to the absence of any warranty;\r
+and give any other recipients of the Program a copy of this License\r
+along with the Program.\r
+\r
+You may charge a fee for the physical act of transferring a copy, and\r
+you may at your option offer warranty protection in exchange for a fee.\r
+\r
+  2. You may modify your copy or copies of the Program or any portion\r
+of it, thus forming a work based on the Program, and copy and\r
+distribute such modifications or work under the terms of Section 1\r
+above, provided that you also meet all of these conditions:\r
+\r
+    a) You must cause the modified files to carry prominent notices\r
+    stating that you changed the files and the date of any change.\r
+\r
+    b) You must cause any work that you distribute or publish, that in\r
+    whole or in part contains or is derived from the Program or any\r
+    part thereof, to be licensed as a whole at no charge to all third\r
+    parties under the terms of this License.\r
+\r
+    c) If the modified program normally reads commands interactively\r
+    when run, you must cause it, when started running for such\r
+    interactive use in the most ordinary way, to print or display an\r
+    announcement including an appropriate copyright notice and a\r
+    notice that there is no warranty (or else, saying that you provide\r
+    a warranty) and that users may redistribute the program under\r
+    these conditions, and telling the user how to view a copy of this\r
+    License.  (Exception: if the Program itself is interactive but\r
+    does not normally print such an announcement, your work based on\r
+    the Program is not required to print an announcement.)\r
+\r
+These requirements apply to the modified work as a whole.  If\r
+identifiable sections of that work are not derived from the Program,\r
+and can be reasonably considered independent and separate works in\r
+themselves, then this License, and its terms, do not apply to those\r
+sections when you distribute them as separate works.  But when you\r
+distribute the same sections as part of a whole which is a work based\r
+on the Program, the distribution of the whole must be on the terms of\r
+this License, whose permissions for other licensees extend to the\r
+entire whole, and thus to each and every part regardless of who wrote it.\r
+\r
+Thus, it is not the intent of this section to claim rights or contest\r
+your rights to work written entirely by you; rather, the intent is to\r
+exercise the right to control the distribution of derivative or\r
+collective works based on the Program.\r
+\r
+In addition, mere aggregation of another work not based on the Program\r
+with the Program (or with a work based on the Program) on a volume of\r
+a storage or distribution medium does not bring the other work under\r
+the scope of this License.\r
+\r
+  3. You may copy and distribute the Program (or a work based on it,\r
+under Section 2) in object code or executable form under the terms of\r
+Sections 1 and 2 above provided that you also do one of the following:\r
+\r
+    a) Accompany it with the complete corresponding machine-readable\r
+    source code, which must be distributed under the terms of Sections\r
+    1 and 2 above on a medium customarily used for software interchange; or,\r
+\r
+    b) Accompany it with a written offer, valid for at least three\r
+    years, to give any third party, for a charge no more than your\r
+    cost of physically performing source distribution, a complete\r
+    machine-readable copy of the corresponding source code, to be\r
+    distributed under the terms of Sections 1 and 2 above on a medium\r
+    customarily used for software interchange; or,\r
+\r
+    c) Accompany it with the information you received as to the offer\r
+    to distribute corresponding source code.  (This alternative is\r
+    allowed only for noncommercial distribution and only if you\r
+    received the program in object code or executable form with such\r
+    an offer, in accord with Subsection b above.)\r
+\r
+The source code for a work means the preferred form of the work for\r
+making modifications to it.  For an executable work, complete source\r
+code means all the source code for all modules it contains, plus any\r
+associated interface definition files, plus the scripts used to\r
+control compilation and installation of the executable.  However, as a\r
+special exception, the source code distributed need not include\r
+anything that is normally distributed (in either source or binary\r
+form) with the major components (compiler, kernel, and so on) of the\r
+operating system on which the executable runs, unless that component\r
+itself accompanies the executable.\r
+\r
+If distribution of executable or object code is made by offering\r
+access to copy from a designated place, then offering equivalent\r
+access to copy the source code from the same place counts as\r
+distribution of the source code, even though third parties are not\r
+compelled to copy the source along with the object code.\r
+\r
+  4. You may not copy, modify, sublicense, or distribute the Program\r
+except as expressly provided under this License.  Any attempt\r
+otherwise to copy, modify, sublicense or distribute the Program is\r
+void, and will automatically terminate your rights under this License.\r
+However, parties who have received copies, or rights, from you under\r
+this License will not have their licenses terminated so long as such\r
+parties remain in full compliance.\r
+\r
+  5. You are not required to accept this License, since you have not\r
+signed it.  However, nothing else grants you permission to modify or\r
+distribute the Program or its derivative works.  These actions are\r
+prohibited by law if you do not accept this License.  Therefore, by\r
+modifying or distributing the Program (or any work based on the\r
+Program), you indicate your acceptance of this License to do so, and\r
+all its terms and conditions for copying, distributing or modifying\r
+the Program or works based on it.\r
+\r
+  6. Each time you redistribute the Program (or any work based on the\r
+Program), the recipient automatically receives a license from the\r
+original licensor to copy, distribute or modify the Program subject to\r
+these terms and conditions.  You may not impose any further\r
+restrictions on the recipients' exercise of the rights granted herein.\r
+You are not responsible for enforcing compliance by third parties to\r
+this License.\r
+\r
+  7. If, as a consequence of a court judgment or allegation of patent\r
+infringement or for any other reason (not limited to patent issues),\r
+conditions are imposed on you (whether by court order, agreement or\r
+otherwise) that contradict the conditions of this License, they do not\r
+excuse you from the conditions of this License.  If you cannot\r
+distribute so as to satisfy simultaneously your obligations under this\r
+License and any other pertinent obligations, then as a consequence you\r
+may not distribute the Program at all.  For example, if a patent\r
+license would not permit royalty-free redistribution of the Program by\r
+all those who receive copies directly or indirectly through you, then\r
+the only way you could satisfy both it and this License would be to\r
+refrain entirely from distribution of the Program.\r
+\r
+If any portion of this section is held invalid or unenforceable under\r
+any particular circumstance, the balance of the section is intended to\r
+apply and the section as a whole is intended to apply in other\r
+circumstances.\r
+\r
+It is not the purpose of this section to induce you to infringe any\r
+patents or other property right claims or to contest validity of any\r
+such claims; this section has the sole purpose of protecting the\r
+integrity of the free software distribution system, which is\r
+implemented by public license practices.  Many people have made\r
+generous contributions to the wide range of software distributed\r
+through that system in reliance on consistent application of that\r
+system; it is up to the author/donor to decide if he or she is willing\r
+to distribute software through any other system and a licensee cannot\r
+impose that choice.\r
+\r
+This section is intended to make thoroughly clear what is believed to\r
+be a consequence of the rest of this License.\r
+\r
+  8. If the distribution and/or use of the Program is restricted in\r
+certain countries either by patents or by copyrighted interfaces, the\r
+original copyright holder who places the Program under this License\r
+may add an explicit geographical distribution limitation excluding\r
+those countries, so that distribution is permitted only in or among\r
+countries not thus excluded.  In such case, this License incorporates\r
+the limitation as if written in the body of this License.\r
+\r
+  9. The Free Software Foundation may publish revised and/or new versions\r
+of the General Public License from time to time.  Such new versions will\r
+be similar in spirit to the present version, but may differ in detail to\r
+address new problems or concerns.\r
+\r
+Each version is given a distinguishing version number.  If the Program\r
+specifies a version number of this License which applies to it and "any\r
+later version", you have the option of following the terms and conditions\r
+either of that version or of any later version published by the Free\r
+Software Foundation.  If the Program does not specify a version number of\r
+this License, you may choose any version ever published by the Free Software\r
+Foundation.\r
+\r
+  10. If you wish to incorporate parts of the Program into other free\r
+programs whose distribution conditions are different, write to the author\r
+to ask for permission.  For software which is copyrighted by the Free\r
+Software Foundation, write to the Free Software Foundation; we sometimes\r
+make exceptions for this.  Our decision will be guided by the two goals\r
+of preserving the free status of all derivatives of our free software and\r
+of promoting the sharing and reuse of software generally.\r
+\r
+          NO WARRANTY\r
+\r
+  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY\r
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN\r
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES\r
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED\r
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS\r
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE\r
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,\r
+REPAIR OR CORRECTION.\r
+\r
+  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\r
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR\r
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,\r
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING\r
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED\r
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY\r
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER\r
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE\r
+POSSIBILITY OF SUCH DAMAGES.\r
diff --git a/appman.cpp b/appman.cpp
new file mode 100644 (file)
index 0000000..0e84f88
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+#include <QtDBus/QDBusConnection>
+#include <QtDBus/QDBusMessage>
+#include <QtDBus/QDBusInterface>
+
+#include "appman.h"
+
+AppMan::AppMan(QObject *parent) :
+    QObject(parent)
+{
+}
+
+AppMan::AppMan(QObject *parent, QmlApplicationViewer* viewer) :
+    QObject(parent)
+{
+    this->m_viewer = viewer;
+}
+
+void AppMan::setOrientation(const QString &orientation){
+    if(orientation=="portrait")
+        m_viewer->setOrientation(QmlApplicationViewer::ScreenOrientationLockPortrait);
+    else if(orientation=="landscape")
+        m_viewer->setOrientation(QmlApplicationViewer::ScreenOrientationLockLandscape);
+    else //auto
+        m_viewer->setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
+}
+
+void AppMan::minimize(){
+    QDBusConnection c = QDBusConnection::sessionBus();
+    QDBusMessage m = QDBusMessage::createSignal("/", "com.nokia.hildon_desktop", "exit_app_view");
+    c.send(m);
+}
+
diff --git a/appman.h b/appman.h
new file mode 100644 (file)
index 0000000..ca60ffb
--- /dev/null
+++ b/appman.h
@@ -0,0 +1,43 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+#ifndef APPMAN_H
+#define APPMAN_H
+
+#include <QObject>
+
+#include "qmlapplicationviewer.h"
+
+class AppMan : public QObject
+{
+    Q_OBJECT
+public:
+    explicit AppMan(QObject *parent = 0);
+    explicit AppMan(QObject *parent = 0, QmlApplicationViewer* viewer = 0);
+
+private:
+    QmlApplicationViewer* m_viewer;
+
+signals:
+
+public slots:
+    void setOrientation(const QString &orientation);
+    void minimize();
+
+};
+
+#endif // APPMAN_H
diff --git a/db/vietkaralist.sqlite b/db/vietkaralist.sqlite
new file mode 100644 (file)
index 0000000..ef3957d
Binary files /dev/null and b/db/vietkaralist.sqlite differ
diff --git a/dbman.cpp b/dbman.cpp
new file mode 100644 (file)
index 0000000..048d4f3
--- /dev/null
+++ b/dbman.cpp
@@ -0,0 +1,51 @@
+
+#include <QDebug>
+#include <QVariant>
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+#include <QString>
+
+#include "dbman.h"
+#include "dbthread.h"
+
+DBMan::DBMan(QObject *parent) :
+    QObject(parent)
+{
+}
+
+DBMan::DBMan(QObject *parent, QmlApplicationViewer* viewer) :
+    QObject(parent)
+{
+    this->m_viewer = viewer;
+    this->m_dbthread = new DBThread();
+
+    connect(this, SIGNAL(execQuery(const QString&)), this->m_dbthread, SLOT(slotExecQuery(const QString&)));
+
+    connect(this->m_dbthread, SIGNAL(stopSearch()), this, SIGNAL(stopSearch()));
+    connect(this->m_dbthread, SIGNAL(removeOldSongs()), this, SIGNAL(removeOldSongs()));
+    connect(this->m_dbthread, SIGNAL(addSong(QString , QString , QString , QString)), this, SIGNAL(addSong(QString , QString , QString , QString )));
+}
+
+bool DBMan::doSearch(QString searchText){
+    qDebug() << searchText;
+
+    emit startSearch();
+    emit execQuery("select * from song where title_simple like '%"+searchText+"%' order by title asc");
+
+    return true;
+}
diff --git a/dbman.h b/dbman.h
new file mode 100644 (file)
index 0000000..3f90baf
--- /dev/null
+++ b/dbman.h
@@ -0,0 +1,53 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+#ifndef DBMAN_H
+#define DBMAN_H
+
+#include <QObject>
+
+#include "qmlapplicationviewer.h"
+#include "dbthread.h"
+
+class DBMan : public QObject
+{
+    Q_OBJECT
+public:
+    explicit DBMan(QObject *parent = 0);
+    explicit DBMan(QObject *parent = 0, QmlApplicationViewer* viewer = 0);
+
+private:
+    QmlApplicationViewer *m_viewer;
+    DBThread *m_dbthread;
+
+
+signals:
+    void dbChanged();
+    void removeOldSongs();
+    void addSong(QString m_number, QString m_title, QString m_lyric, QString m_author);
+    void startSearch();
+    void stopSearch();
+
+    void execQuery(const QString& m_query);
+
+
+public slots:
+    bool doSearch(QString searchText);
+
+};
+
+#endif // DBMAN_H
diff --git a/dbthread.cpp b/dbthread.cpp
new file mode 100644 (file)
index 0000000..972b7ae
--- /dev/null
@@ -0,0 +1,61 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+#include <QtSql/QSqlDatabase>
+#include <QtSql/QSqlQuery>
+#include <QtSql/QSqlRecord>
+#include <QDebug>
+#include <QVariant>
+#include <QString>
+
+#include "dbthread.h"
+
+DBThread::DBThread()
+{
+    db = QSqlDatabase::addDatabase("QSQLITE");
+#if defined(Q_WS_MAEMO_5)
+    db.setDatabaseName("/opt/vietkaralist/db/vietkaralist.sqlite");
+#else
+    db.setDatabaseName("/home/cuonglb/vietkaralist.sqlite");
+#endif
+    db.open();
+}
+
+DBThread::~DBThread(){
+    db.close();
+}
+
+void DBThread::run(){
+
+    QSqlQuery query(this->mm_query);
+    QSqlRecord record = query.record();
+
+    if (record.count() > 0) {
+        emit removeOldSongs();
+        while (query.next()) {
+            emit addSong(query.value(0).toString(),query.value(1).toString(), query.value(4).toString(), query.value(5).toString());
+        }
+    }
+
+    emit stopSearch();
+
+}
+
+void DBThread::slotExecQuery(const QString& m_query){
+    this->mm_query = m_query;
+    this->start();
+}
diff --git a/dbthread.h b/dbthread.h
new file mode 100644 (file)
index 0000000..def3e4a
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+#ifndef DBTHREAD_H
+#define DBTHREAD_H
+
+#include <QThread>
+#include <QtSql/QSqlDatabase>
+
+class DBThread : public QThread
+{
+    Q_OBJECT
+
+public:
+    DBThread();
+    ~DBThread();
+
+    void run();
+
+public slots:
+    void slotExecQuery(const QString& m_query);
+
+signals:
+    void removeOldSongs();
+    void addSong(QString m_number, QString m_title, QString m_lyric, QString m_author);
+    void stopSearch();
+
+private:
+    QString mm_query;
+    QSqlDatabase db;
+
+};
+
+#endif // DBTHREAD_H
diff --git a/main.cpp b/main.cpp
new file mode 100644 (file)
index 0000000..e1549cf
--- /dev/null
+++ b/main.cpp
@@ -0,0 +1,51 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+#include <QtGui/QApplication>
+#include <QDeclarativeContext>
+
+#include "qmlapplicationviewer.h"
+
+#include "appman.h"
+#include "dbman.h"
+
+int main(int argc, char *argv[])
+{
+    QApplication app(argc, argv);
+
+    QmlApplicationViewer viewer;
+
+    AppMan appman(0, &viewer);
+    DBMan dbman(0, &viewer);
+
+    QDeclarativeContext *context = viewer.rootContext();
+
+    context->setContextProperty("AppMan", &appman);
+    context->setContextProperty("DBMan", &dbman);
+
+    viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
+    viewer.setMainQmlFile(QLatin1String("qml/vietkaralist/main.qml"));
+    viewer.setWindowTitle(QString::fromUtf8("Viet Nam Karaoke Song List"));
+
+#if defined(Q_WS_MAEMO_5) || defined(Q_OS_SYMBIAN)
+    viewer.showFullScreen();
+#else
+    viewer.show();
+ #endif
+
+    return app.exec();
+}
diff --git a/qml/vietkaralist/AboutDlg.qml b/qml/vietkaralist/AboutDlg.qml
new file mode 100644 (file)
index 0000000..9d9ab39
--- /dev/null
@@ -0,0 +1,136 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+import QtQuick 1.1
+
+Item{
+
+    id: aboutdlg
+
+    anchors.verticalCenter: parent.verticalCenter
+    width: parent.width; height: parent.height;
+    x:-(parent.width * 1.5)
+
+    signal close
+
+    Connections {
+        target: aboutdlg.parent
+
+        onDialogClose: {
+            aboutdlg.state = "close";
+            aboutdlg.destroy(600);
+            }
+        }
+
+
+    Rectangle {
+        id: rectangle1
+        anchors.fill: parent; anchors.bottomMargin: 0
+        visible: true
+        opacity:0.8
+
+        Image {
+            id: image1
+            x: 0
+            y: 53
+
+            anchors.horizontalCenter: parent.horizontalCenter
+            source: "imgs/app_icon.png"
+
+        Text {
+            id: text1
+            x: 11
+            y: 91
+            height: 20
+            text: "Việt Nam Karaoke Song List<br> OS: Maemo 5 (Fremantle)"
+            anchors.horizontalCenterOffset: 1
+            font.bold: true
+            anchors.horizontalCenter: parent.horizontalCenter
+            horizontalAlignment: Text.AlignHCenter
+            verticalAlignment: Text.AlignVCenter
+            font.pixelSize: 20
+            }
+
+        Text {
+            id: text2
+            x: 10
+            y: 154
+            height: 20
+            text: "Phiên bản : 0.0.1 (18/09/2011)<br>\
+Phát triển bởi : <a href='mailto:metacuong@gmail.com'>metacuong@gmail.com</a>"
+            anchors.horizontalCenterOffset: 0
+            wrapMode: Text.NoWrap
+            verticalAlignment: Text.AlignVCenter
+            horizontalAlignment: Text.AlignHCenter
+            anchors.horizontalCenter: parent.horizontalCenter
+            font.pixelSize: 22
+            }
+
+
+        }
+
+    Rectangle {
+        width : aboutdlg.width
+        height: 50
+        color:"grey"
+        opacity: 0.5
+
+        MenuButton{
+           id:btn_about
+           source: "imgs/back.png"
+           x:parent.width-50
+
+           onClicked: {
+               aboutdlg.close()
+           }
+
+        }
+    }
+
+    }
+
+    Text {
+        id: title
+
+        anchors { horizontalCenter: parent.horizontalCenter; top: aboutdlg.top; topMargin: 10 }
+
+        y:6
+
+        font.pixelSize: 22
+        color: "black"
+        text: qsTr("About")
+        smooth: true
+        font.bold: true
+        }
+
+    states: [
+        State{
+            name:"show"
+            AnchorChanges { target: aboutdlg; anchors.right: parent.right }
+        },
+        State {
+            name: "close"
+            AnchorChanges { target: aboutdlg; anchors.right: parent.left }
+        }
+    ]
+
+    transitions: [Transition {
+        AnchorAnimation { easing.type: Easing.OutQuart; duration: 300 }
+        }
+    ]
+
+}
diff --git a/qml/vietkaralist/MenuBar.qml b/qml/vietkaralist/MenuBar.qml
new file mode 100644 (file)
index 0000000..c1e51e4
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+import QtQuick 1.1
+
+Item {
+
+    id:mainMenuBar
+
+    signal changeToFavouritePage
+    signal changeToMainPage
+    signal option
+    signal about
+
+    anchors.fill: parent
+    Rectangle {
+        width: parent.width
+        height: 50
+        y:parent.height-50
+        color:"#2c84a6"
+        border.color: "grey"
+        radius: 0
+
+
+
+     MenuButton{
+        id:btn_favor
+        source: "imgs/f.png"
+        x:10
+
+        onClicked: changeToFavouritePage
+
+     }
+
+     MenuButton{
+        id:btn_songlist
+        source: "imgs/l.png"
+        x:60
+
+        onClicked:changeToMainPage
+
+     }
+
+     MenuButton{
+        id:btn_opts
+        source: "imgs/o.png"
+        x:110
+
+        onClicked: {
+
+        }
+     }
+
+
+     MenuButton{
+        id:btn_about
+        source: "imgs/ab.png"
+        x:parent.width-50
+
+        onClicked:mainMenuBar.about()
+
+     }
+
+
+    }
+}
diff --git a/qml/vietkaralist/MenuButton.qml b/qml/vietkaralist/MenuButton.qml
new file mode 100644 (file)
index 0000000..5a6f71f
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+import QtQuick 1.1
+
+Rectangle {
+
+    id:mainWindow
+
+    property alias source: img.source
+
+    signal clicked
+
+    width: 44
+    height: 38
+    radius: 0
+
+    color: "transparent"
+
+    Rectangle {
+        id:mask
+        anchors.fill: parent
+        visible:false
+        border.color: "#9c96db"
+        gradient: Gradient {
+            GradientStop {
+                position: 0
+                color: "#6289be"
+            }
+
+            GradientStop {
+                position: 0.53
+                color: "#000000"
+            }
+
+            GradientStop {
+                position: 1
+                color: "#213f91"
+            }
+        }
+    }
+
+
+    anchors.verticalCenter: parent.verticalCenter
+
+    Image {
+        id: img
+        anchors.centerIn: parent
+    }
+
+    MouseArea {
+        anchors.fill: parent
+
+        onClicked: mainWindow.clicked()
+
+        onPressed: {
+            mask.visible = true
+        }
+
+        onReleased: {
+            mask.visible = false
+        }
+    }
+}
diff --git a/qml/vietkaralist/Page.qml b/qml/vietkaralist/Page.qml
new file mode 100644 (file)
index 0000000..a9a97ce
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+import QtQuick 1.0
+
+Rectangle {
+
+    width: parent.width; height: parent.height
+
+}
diff --git a/qml/vietkaralist/ScrollBar.qml b/qml/vietkaralist/ScrollBar.qml
new file mode 100644 (file)
index 0000000..04c2d55
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+import QtQuick 1.1
+
+Rectangle {
+    id: scrollbar
+
+    anchors.right: parent.right
+    y: parent.visibleArea.yPosition * parent.height
+    width: 8
+    height: parent.visibleArea.heightRatio * parent.height
+    color: "#000000"
+    opacity: parent.movingVertically ? 0.5 : 0
+
+    Behavior on opacity { PropertyAnimation { properties: "opacity"; duration: 500 } }
+}
diff --git a/qml/vietkaralist/SongList.qml b/qml/vietkaralist/SongList.qml
new file mode 100644 (file)
index 0000000..fd6bb81
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+import QtQuick 1.1
+
+Item {
+
+    id:songList
+
+    anchors.fill: parent
+    anchors.leftMargin: 0
+    anchors.rightMargin: 0
+
+    SongListView {
+        id:songlistview
+    }
+
+
+    Rectangle {
+        width: parent.width
+        height: 50
+        color:"lightblue"
+
+        radius: 4
+
+        border.color: "grey"
+
+        Rectangle {
+            id: rec_tag
+
+            width: parent.width-80
+            x:9
+            height: 35
+            anchors.verticalCenter: parent.verticalCenter
+            border.color: "grey"
+            radius: 4
+            TextInput {
+                id: txt_searchText
+                width: parent.width-1
+                height: 27
+                x:10
+                text: ""
+                font.pixelSize: 20
+                anchors.verticalCenter: parent.verticalCenter
+
+                Keys.onEnterPressed: {
+                    doSearch();
+                }
+            }
+        }
+
+        Rectangle {
+            x:rec_tag.width+20
+            width:50
+            height: 35
+            anchors.verticalCenter: parent.verticalCenter
+            radius:4
+
+            color: "white"
+            border.color: "grey"
+
+            Image {
+                id: btn_search
+                source: "imgs/search.png"
+                anchors.verticalCenter: parent.verticalCenter
+                anchors.horizontalCenter: parent.horizontalCenter
+            }
+
+            MouseArea {
+                anchors.fill: parent
+                onClicked: {
+                    doSearch();
+                }
+                onPressed: {
+                    parent.color = "lightblue";
+                }
+                onReleased : {
+                    parent.color = "white"
+                }
+            }
+        }
+
+    }
+
+    WaitingDlg {
+        id:waitingdlg
+        anchors.centerIn:parent
+        visible: false
+    }
+
+    function doSearch(){
+        waitingdlg.visible = true;
+        DBMan.doSearch(txt_searchText.text);
+    }
+
+    Connections {
+        target: DBMan
+        onStopSearch:{
+            waitingdlg.visible = false;
+        }
+    }
+
+}
diff --git a/qml/vietkaralist/SongListView.qml b/qml/vietkaralist/SongListView.qml
new file mode 100644 (file)
index 0000000..a1dda16
--- /dev/null
@@ -0,0 +1,166 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+import QtQuick 1.1
+
+Rectangle {
+
+    id:container
+    width:parent.width
+
+    property alias songlistView: songlistView
+
+    anchors.verticalCenter: parent.verticalCenter
+    anchors.horizontalCenter: parent.horizontalCenter
+    anchors.fill: parent;anchors.topMargin: 55;anchors.leftMargin: 0;anchors.rightMargin: 0;anchors.bottomMargin: 30
+
+    Component {
+                 id: songlistDelegate
+                 Item {
+
+                     width: container.width; height: 80
+
+                     Rectangle {
+                         width: container.width
+                         height:1
+                         border.color: "grey"
+                     }
+
+                     Row {
+                         anchors.verticalCenter: parent.verticalCenter
+                         x:6
+                         Column {
+                             width: 80
+                                Text {
+                                    text:model.number
+                                    font.bold: true
+                                    font.pixelSize: 20
+                                    color:"blue"
+                                }
+                             }
+                         Column {
+                             width: 350
+                                Text {
+                                    text:model.title
+                                    font.bold: true
+                                    font.pixelSize: 18
+                                }
+                                Text {
+                                    text:model.lyric
+                                    font.pixelSize: 16
+                                    font.italic: true
+                                    wrapMode: Text.WordWrap
+                                    width: 300
+                                }
+                             }
+
+                          Column {
+                              width:100
+                              visible: container.width > container.height ? true : false
+                              Text {
+                                  text:model.author
+                                  font.bold: true
+                                  font.pixelSize: 18
+                              }
+                          }
+                         }
+
+
+                     MouseArea {
+                         anchors.fill: parent;
+                         onClicked:{
+                             songlistView.currentIndex = index;
+                         }
+                    }
+                 }
+             }
+
+    ListModel {
+        id: songlistModel
+
+        Component.onCompleted: {
+
+        }
+
+    }
+
+    Connections {
+        target:DBMan
+        onDbChanged:{
+        }
+        onAddSong:{
+            songlistModel.append({"number":m_number, "title":m_title, "lyric":m_lyric, "author":m_author})
+        }
+        onRemoveOldSongs:{
+            console.log("Remove old songs")
+            songlistModel.clear();
+        }
+    }
+
+    Component {
+        id: highlightsongDelegate
+        Rectangle {
+            width: container.width; height: songlistView.currentItem.height-6
+            color: "lightsteelblue"; radius: 5
+            y: songlistView.currentItem.y+4
+            border.color: "grey"
+            /*Behavior on y {
+                SpringAnimation {
+                    spring: 4
+                    damping: 0.1
+                }
+            }*/
+        }
+    }
+
+    Component {
+        id: sectionHeading
+        Rectangle {
+            width: container.width
+            height: childrenRect.height
+            color: "lightsteelblue"
+
+            Text {
+                text: section
+                font.bold: true
+            }
+        }
+    }
+
+
+    ListView {
+        id : songlistView
+        anchors.fill: parent
+        model: songlistModel
+        delegate: songlistDelegate
+        highlight: highlightsongDelegate
+        focus: true
+        highlightFollowsCurrentItem: false
+
+
+        section.property: "the_loai"
+        section.criteria: ViewSection.FullString
+        section.delegate: sectionHeading
+
+        ScrollBar{
+
+        }
+
+    }
+
+
+}
diff --git a/qml/vietkaralist/TopBar.qml b/qml/vietkaralist/TopBar.qml
new file mode 100644 (file)
index 0000000..73bbb5e
--- /dev/null
@@ -0,0 +1,160 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+import QtQuick 1.1
+
+Item {
+
+    id:m_topbar
+
+    anchors.fill: parent
+
+    property alias title: mTitle.text
+
+    Rectangle {
+
+        width: parent.width-1
+        height: 49
+
+        color: "white"
+
+        radius: 0
+        border.color: "grey"
+
+        Text {
+            id : mTitle
+
+            color: "blue"
+
+            horizontalAlignment: Text.AlignHCenter
+
+            anchors.horizontalCenter: parent.horizontalCenter
+
+            font.bold: true
+            font.pixelSize: 22
+
+            y:10
+
+        }
+
+
+    }
+
+    /*
+      Minimize button
+      */
+
+    Rectangle {
+        id: btn_minimize
+
+        x:m_topbar.x + 5
+        y:m_topbar.y + 5
+
+        height: 40
+        width: 45
+
+        color: "transparent"
+
+        border.color: "grey"
+        border.width: 1
+
+        radius: 4
+
+        Rectangle {
+            x:parent.x
+            y:parent.y
+
+            width: parent.width - 15
+            height: parent.height - 15
+
+            border.color: "white"
+            color: "grey"
+            border.width: 1
+        }
+
+        Rectangle {
+            x:parent.x + 5
+            y:parent.y + 5
+            width: parent.width - 15
+            height: parent.height - 15
+
+            border.color: "white"
+            color: "grey"
+            border.width: 1
+        }
+
+        MouseArea {
+            anchors.fill: parent
+
+            onClicked: AppMan.minimize();
+
+            onPressed: {
+                parent.color = "blue"
+            }
+
+            onReleased: {
+                parent.color = "transparent"
+            }
+        }
+
+    }
+
+    /*
+          Close button
+          */
+
+        Rectangle {
+            id: btn_close
+
+            x:m_topbar.width - 50
+            y:m_topbar.y + 5
+
+            width: 45
+            height: 40
+
+            color: "transparent"
+
+            border.color: "grey"
+            border.width: 1
+
+            radius: 4
+
+            Text {
+                id: button1
+                color: "grey"
+                anchors.centerIn: parent; font.bold: true
+                text: "X"; style: Text.Raised; styleColor: "black"
+                font.pixelSize: 26
+                font.family: "Tahoma"
+            }
+
+            MouseArea {
+                anchors.fill: parent
+
+                onClicked: Qt.quit()
+
+                onPressed: {
+                    parent.color = "blue"
+                }
+
+                onReleased: {
+                    parent.color = "transparent"
+                }
+            }
+        }
+
+}
diff --git a/qml/vietkaralist/WaitingDlg.qml b/qml/vietkaralist/WaitingDlg.qml
new file mode 100644 (file)
index 0000000..9b1f89c
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+import QtQuick 1.1
+
+Item {
+    id: dialog
+
+    width: 145
+    height: 36
+    opacity: dialog.visible ? 1 : 0
+
+    Rectangle {
+        id: rectangle1
+        anchors.fill: parent
+        x: 23
+        y: 0
+        width: 200
+        height: 200
+        color: "lightblue"
+        radius: 4
+        border.color: "#2bb3f7"
+
+        Text {
+            id: text1
+            x: 40
+            y: 8
+            color: "white"
+            text: "Đang tìm ..."
+            font.pointSize: 16
+            font.bold: true
+            anchors.centerIn: parent
+        }
+    }
+
+
+}
diff --git a/qml/vietkaralist/imgs/ab.png b/qml/vietkaralist/imgs/ab.png
new file mode 100644 (file)
index 0000000..59b6ea3
Binary files /dev/null and b/qml/vietkaralist/imgs/ab.png differ
diff --git a/qml/vietkaralist/imgs/app_icon.png b/qml/vietkaralist/imgs/app_icon.png
new file mode 100644 (file)
index 0000000..214d83f
Binary files /dev/null and b/qml/vietkaralist/imgs/app_icon.png differ
diff --git a/qml/vietkaralist/imgs/back.png b/qml/vietkaralist/imgs/back.png
new file mode 100644 (file)
index 0000000..4669173
Binary files /dev/null and b/qml/vietkaralist/imgs/back.png differ
diff --git a/qml/vietkaralist/imgs/busy.png b/qml/vietkaralist/imgs/busy.png
new file mode 100644 (file)
index 0000000..664c2b1
Binary files /dev/null and b/qml/vietkaralist/imgs/busy.png differ
diff --git a/qml/vietkaralist/imgs/f.png b/qml/vietkaralist/imgs/f.png
new file mode 100644 (file)
index 0000000..fc1de6a
Binary files /dev/null and b/qml/vietkaralist/imgs/f.png differ
diff --git a/qml/vietkaralist/imgs/l.png b/qml/vietkaralist/imgs/l.png
new file mode 100644 (file)
index 0000000..bf9a365
Binary files /dev/null and b/qml/vietkaralist/imgs/l.png differ
diff --git a/qml/vietkaralist/imgs/o.png b/qml/vietkaralist/imgs/o.png
new file mode 100644 (file)
index 0000000..c04fb96
Binary files /dev/null and b/qml/vietkaralist/imgs/o.png differ
diff --git a/qml/vietkaralist/imgs/search.png b/qml/vietkaralist/imgs/search.png
new file mode 100644 (file)
index 0000000..d090a49
Binary files /dev/null and b/qml/vietkaralist/imgs/search.png differ
diff --git a/qml/vietkaralist/main.qml b/qml/vietkaralist/main.qml
new file mode 100644 (file)
index 0000000..b60e43c
--- /dev/null
@@ -0,0 +1,129 @@
+/*
+Copyright (C) 2011  by Cuong Le <metacuong@gmail.com>
+
+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 3 of the License, or
+(at your option) any later version.
+
+This program 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 program.  If not, see <http://www.gnu.org/licenses/>
+*/
+
+import QtQuick 1.1
+
+import "./scripts/main.js" as Script
+
+Rectangle {
+
+    id: mainWindow
+
+    width: 480
+    height: 800
+
+    color:"white"
+
+    property variant pageTitle: ["Danh Sách Yêu Thích","Danh Sách Bài Hát"]
+
+    signal dialogClose
+
+    VisualItemModel {
+        id:pageModel
+
+        Page{
+            id:page1
+            width: viewModel.width; height: viewModel.height
+            anchors.topMargin: 4
+            color:"white"
+        }
+
+        Page{
+            id:page2
+            width: viewModel.width; height: viewModel.height
+            color:"white"
+
+            SongList{
+                id:xsonglist
+            }
+        }
+
+    }
+
+    ListView {
+        id: viewModel
+
+        anchors.fill: parent
+        anchors.topMargin: 52
+        anchors.bottomMargin: 30
+
+        model: pageModel
+
+        preferredHighlightBegin: 0
+        preferredHighlightEnd: 0
+
+        highlightRangeMode: ListView.StrictlyEnforceRange
+        orientation: ListView.Horizontal
+        snapMode: ListView.SnapOneItem
+        highlightMoveDuration: 300
+
+        interactive: false
+
+        onCurrentIndexChanged:{
+            topbar.title = pageTitle[currentIndex]
+        }
+    }
+
+    Component.onCompleted: {
+        viewModel.currentIndex = 1;
+    }
+
+    TopBar{
+        id:topbar
+    }
+
+    MenuBar {
+        id:menubar
+
+        onChangeToFavouritePage: {
+
+        }
+
+        onChangeToMainPage: {
+        }
+
+        onOption: {
+
+        }
+
+        onAbout: {
+            mainWindow.state="disable"
+            var a = Script.createObject("../AboutDlg.qml", mainWindow)
+            a.close.connect(closeDlg)
+            a.state = "show"
+        }
+    }
+
+    function closeDlg(){
+        dialogClose();
+        mainWindow.state = "enable"
+    }
+
+    states: [
+        State{
+            name:"enable"
+        },
+        State{
+            name:"disable"
+            PropertyChanges {target: topbar; visible:false }
+            PropertyChanges {target: menubar; visible:false }
+            PropertyChanges {target: page2; visible:false}
+        }
+    ]
+
+
+}
diff --git a/qml/vietkaralist/scripts/main.js b/qml/vietkaralist/scripts/main.js
new file mode 100644 (file)
index 0000000..c51fffe
--- /dev/null
@@ -0,0 +1,14 @@
+.pragma library
+
+function createObject(sourceFile, parentObject) {
+    var component = Qt.createComponent(sourceFile);
+    var guiObject = component.createObject(parentObject);
+
+    if (guiObject === null) {
+        console.log("Error creating object");
+    }
+    else {
+        console.log("Created")
+        return guiObject
+    }
+}
diff --git a/qmlapplicationviewer/qmlapplicationviewer.cpp b/qmlapplicationviewer/qmlapplicationviewer.cpp
new file mode 100644 (file)
index 0000000..b3e862c
--- /dev/null
@@ -0,0 +1,156 @@
+// checksum 0x7895 version 0x4000b
+/*
+  This file was generated by the Qt Quick Application wizard of Qt Creator.
+  QmlApplicationViewer is a convenience class containing mobile device specific
+  code such as screen orientation handling. Also QML paths and debugging are
+  handled here.
+  It is recommended not to modify this file, since newer versions of Qt Creator
+  may offer an updated version of it.
+*/
+
+#include "qmlapplicationviewer.h"
+
+#include <QtCore/QCoreApplication>
+#include <QtCore/QDir>
+#include <QtCore/QFileInfo>
+#include <QtDeclarative/QDeclarativeComponent>
+#include <QtDeclarative/QDeclarativeEngine>
+#include <QtDeclarative/QDeclarativeContext>
+
+#if defined(QMLJSDEBUGGER)
+#include <qt_private/qdeclarativedebughelper_p.h>
+#endif
+
+#if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER)
+#include <jsdebuggeragent.h>
+#endif
+#if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER)
+#include <qdeclarativeviewobserver.h>
+#endif
+
+#if defined(QMLJSDEBUGGER)
+
+// Enable debugging before any QDeclarativeEngine is created
+struct QmlJsDebuggingEnabler
+{
+    QmlJsDebuggingEnabler()
+    {
+        QDeclarativeDebugHelper::enableDebugging();
+    }
+};
+
+// Execute code in constructor before first QDeclarativeEngine is instantiated
+static QmlJsDebuggingEnabler enableDebuggingHelper;
+
+#endif // QMLJSDEBUGGER
+
+class QmlApplicationViewerPrivate
+{
+    QString mainQmlFile;
+    friend class QmlApplicationViewer;
+    static QString adjustPath(const QString &path);
+};
+
+QString QmlApplicationViewerPrivate::adjustPath(const QString &path)
+{
+#ifdef Q_OS_UNIX
+#ifdef Q_OS_MAC
+    if (!QDir::isAbsolutePath(path))
+        return QCoreApplication::applicationDirPath()
+                + QLatin1String("/../Resources/") + path;
+#else
+    const QString pathInInstallDir = QCoreApplication::applicationDirPath()
+        + QLatin1String("/../") + path;
+    if (pathInInstallDir.contains(QLatin1String("opt"))
+            && pathInInstallDir.contains(QLatin1String("bin"))
+            && QFileInfo(pathInInstallDir).exists()) {
+        return pathInInstallDir;
+    }
+#endif
+#endif
+    return path;
+}
+
+QmlApplicationViewer::QmlApplicationViewer(QWidget *parent) :
+    QDeclarativeView(parent),
+    m_d(new QmlApplicationViewerPrivate)
+{
+    connect(engine(), SIGNAL(quit()), SLOT(close()));
+    setResizeMode(QDeclarativeView::SizeRootObjectToView);
+#if defined(QMLJSDEBUGGER) && !defined(NO_JSDEBUGGER)
+    new QmlJSDebugger::JSDebuggerAgent(engine());
+#endif
+#if defined(QMLJSDEBUGGER) && !defined(NO_QMLOBSERVER)
+    new QmlJSDebugger::QDeclarativeViewObserver(this, this);
+#endif
+}
+
+QmlApplicationViewer::~QmlApplicationViewer()
+{
+    delete m_d;
+}
+
+void QmlApplicationViewer::setMainQmlFile(const QString &file)
+{
+    m_d->mainQmlFile = QmlApplicationViewerPrivate::adjustPath(file);
+    setSource(QUrl::fromLocalFile(m_d->mainQmlFile));
+}
+
+void QmlApplicationViewer::addImportPath(const QString &path)
+{
+    engine()->addImportPath(QmlApplicationViewerPrivate::adjustPath(path));
+}
+
+void QmlApplicationViewer::setOrientation(ScreenOrientation orientation)
+{
+#if defined(Q_OS_SYMBIAN)
+    // If the version of Qt on the device is < 4.7.2, that attribute won't work
+    if (orientation != ScreenOrientationAuto) {
+        const QStringList v = QString::fromAscii(qVersion()).split(QLatin1Char('.'));
+        if (v.count() == 3 && (v.at(0).toInt() << 16 | v.at(1).toInt() << 8 | v.at(2).toInt()) < 0x040702) {
+            qWarning("Screen orientation locking only supported with Qt 4.7.2 and above");
+            return;
+        }
+    }
+#endif // Q_OS_SYMBIAN
+
+    Qt::WidgetAttribute attribute;
+    switch (orientation) {
+#if QT_VERSION < 0x040702
+    // Qt < 4.7.2 does not yet have the Qt::WA_*Orientation attributes
+    case ScreenOrientationLockPortrait:
+        attribute = static_cast<Qt::WidgetAttribute>(128);
+        break;
+    case ScreenOrientationLockLandscape:
+        attribute = static_cast<Qt::WidgetAttribute>(129);
+        break;
+    default:
+    case ScreenOrientationAuto:
+        attribute = static_cast<Qt::WidgetAttribute>(130);
+        break;
+#else // QT_VERSION < 0x040702
+    case ScreenOrientationLockPortrait:
+        attribute = Qt::WA_LockPortraitOrientation;
+        break;
+    case ScreenOrientationLockLandscape:
+        attribute = Qt::WA_LockLandscapeOrientation;
+        break;
+    default:
+    case ScreenOrientationAuto:
+        attribute = Qt::WA_AutoOrientation;
+        break;
+#endif // QT_VERSION < 0x040702
+    };
+    setAttribute(attribute, true);
+}
+
+void QmlApplicationViewer::showExpanded()
+{
+#ifdef Q_OS_SYMBIAN
+    showFullScreen();
+#elif defined(Q_WS_MAEMO_5)
+    showMaximized();
+#else
+    show();
+#endif
+}
diff --git a/qmlapplicationviewer/qmlapplicationviewer.h b/qmlapplicationviewer/qmlapplicationviewer.h
new file mode 100644 (file)
index 0000000..19875a3
--- /dev/null
@@ -0,0 +1,42 @@
+// checksum 0x382f version 0x4000b
+/*
+  This file was generated by the Qt Quick Application wizard of Qt Creator.
+  QmlApplicationViewer is a convenience class containing mobile device specific
+  code such as screen orientation handling. Also QML paths and debugging are
+  handled here.
+  It is recommended not to modify this file, since newer versions of Qt Creator
+  may offer an updated version of it.
+*/
+
+#ifndef QMLAPPLICATIONVIEWER_H
+#define QMLAPPLICATIONVIEWER_H
+
+#include <QtDeclarative/QDeclarativeView>
+
+class QmlApplicationViewer : public QDeclarativeView
+{
+    Q_OBJECT
+
+public:
+    enum ScreenOrientation {
+        ScreenOrientationLockPortrait,
+        ScreenOrientationLockLandscape,
+        ScreenOrientationAuto
+    };
+
+    explicit QmlApplicationViewer(QWidget *parent = 0);
+    virtual ~QmlApplicationViewer();
+
+    void setMainQmlFile(const QString &file);
+    void addImportPath(const QString &path);
+
+    // Note that this will only have an effect on Symbian and Fremantle.
+    void setOrientation(ScreenOrientation orientation);
+
+    void showExpanded();
+
+private:
+    class QmlApplicationViewerPrivate *m_d;
+};
+
+#endif // QMLAPPLICATIONVIEWER_H
diff --git a/qmlapplicationviewer/qmlapplicationviewer.pri b/qmlapplicationviewer/qmlapplicationviewer.pri
new file mode 100644 (file)
index 0000000..b07f873
--- /dev/null
@@ -0,0 +1,133 @@
+# checksum 0xcaf1 version 0x4000b
+# This file was generated by the Qt Quick Application wizard of Qt Creator.
+# The code below adds the QmlApplicationViewer to the project and handles the
+# activation of QML debugging.
+# It is recommended not to modify this file, since newer versions of Qt Creator
+# may offer an updated version of it.
+
+QT += declarative
+
+SOURCES += $$PWD/qmlapplicationviewer.cpp
+HEADERS += $$PWD/qmlapplicationviewer.h
+INCLUDEPATH += $$PWD
+
+# Include JS debugger library if QMLJSDEBUGGER_PATH is set
+!isEmpty(QMLJSDEBUGGER_PATH) {
+    include($$QMLJSDEBUGGER_PATH/qmljsdebugger-lib.pri)
+} else {
+    DEFINES -= QMLJSDEBUGGER
+}
+# This file was generated by an application wizard of Qt Creator.
+# The code below handles deployment to Symbian and Maemo, aswell as copying
+# of the application data to shadow build directories on desktop.
+# It is recommended not to modify this file, since newer versions of Qt Creator
+# may offer an updated version of it.
+
+defineTest(qtcAddDeployment) {
+for(deploymentfolder, DEPLOYMENTFOLDERS) {
+    item = item$${deploymentfolder}
+    itemsources = $${item}.sources
+    $$itemsources = $$eval($${deploymentfolder}.source)
+    itempath = $${item}.path
+    $$itempath= $$eval($${deploymentfolder}.target)
+    export($$itemsources)
+    export($$itempath)
+    DEPLOYMENT += $$item
+}
+
+MAINPROFILEPWD = $$PWD
+
+symbian {
+    isEmpty(ICON):exists($${TARGET}.svg):ICON = $${TARGET}.svg
+    isEmpty(TARGET.EPOCHEAPSIZE):TARGET.EPOCHEAPSIZE = 0x20000 0x2000000
+} else:win32 {
+    copyCommand =
+    for(deploymentfolder, DEPLOYMENTFOLDERS) {
+        source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
+        source = $$replace(source, /, \\)
+        sourcePathSegments = $$split(source, \\)
+        target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments)
+        target = $$replace(target, /, \\)
+        !isEqual(source,$$target) {
+            !isEmpty(copyCommand):copyCommand += &&
+            isEqual(QMAKE_DIR_SEP, \\) {
+                copyCommand += $(COPY_DIR) \"$$source\" \"$$target\"
+            } else {
+                source = $$replace(source, \\\\, /)
+                target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
+                target = $$replace(target, \\\\, /)
+                copyCommand += test -d \"$$target\" || mkdir -p \"$$target\" && cp -r \"$$source\" \"$$target\"
+            }
+        }
+    }
+    !isEmpty(copyCommand) {
+        copyCommand = @echo Copying application data... && $$copyCommand
+        copydeploymentfolders.commands = $$copyCommand
+        first.depends = $(first) copydeploymentfolders
+        export(first.depends)
+        export(copydeploymentfolders.commands)
+        QMAKE_EXTRA_TARGETS += first copydeploymentfolders
+    }
+} else:unix {
+    maemo5 {
+        desktopfile.path = /usr/share/applications/hildon
+    } else {
+        desktopfile.path = /usr/share/applications
+        copyCommand =
+        for(deploymentfolder, DEPLOYMENTFOLDERS) {
+            source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source)
+            source = $$replace(source, \\\\, /)
+            macx {
+                target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target)
+            } else {
+                target = $$OUT_PWD/$$eval($${deploymentfolder}.target)
+            }
+            target = $$replace(target, \\\\, /)
+            sourcePathSegments = $$split(source, /)
+            targetFullPath = $$target/$$last(sourcePathSegments)
+            !isEqual(source,$$targetFullPath) {
+                !isEmpty(copyCommand):copyCommand += &&
+                copyCommand += $(MKDIR) \"$$target\"
+                copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\"
+            }
+        }
+        !isEmpty(copyCommand) {
+            copyCommand = @echo Copying application data... && $$copyCommand
+            copydeploymentfolders.commands = $$copyCommand
+            first.depends = $(first) copydeploymentfolders
+            export(first.depends)
+            export(copydeploymentfolders.commands)
+            QMAKE_EXTRA_TARGETS += first copydeploymentfolders
+        }
+    }
+    installPrefix = /opt/$${TARGET}
+    for(deploymentfolder, DEPLOYMENTFOLDERS) {
+        item = item$${deploymentfolder}
+        itemfiles = $${item}.files
+        $$itemfiles = $$eval($${deploymentfolder}.source)
+        itempath = $${item}.path
+        $$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target)
+        export($$itemfiles)
+        export($$itempath)
+        INSTALLS += $$item
+    }
+    icon.files = $${TARGET}.png
+    icon.path = /usr/share/icons/hicolor/64x64/apps
+    desktopfile.files = $${TARGET}.desktop
+    target.path = $${installPrefix}/bin
+    export(icon.files)
+    export(icon.path)
+    export(desktopfile.files)
+    export(desktopfile.path)
+    export(target.path)
+    INSTALLS += desktopfile icon target
+}
+
+export (ICON)
+export (INSTALLS)
+export (DEPLOYMENT)
+export (TARGET.EPOCHEAPSIZE)
+export (TARGET.CAPABILITY)
+export (LIBS)
+export (QMAKE_EXTRA_TARGETS)
+}
diff --git a/qtc_packaging/debian_fremantle/README b/qtc_packaging/debian_fremantle/README
new file mode 100644 (file)
index 0000000..9a07c22
--- /dev/null
@@ -0,0 +1,6 @@
+The Debian Package vietkaralist
+----------------------------
+
+Comments regarding the Package
+
+ -- Cuong Le <metacuong@gmail.com>  Sat, 17 Sep 2011 13:31:46 +0700
diff --git a/qtc_packaging/debian_fremantle/changelog b/qtc_packaging/debian_fremantle/changelog
new file mode 100644 (file)
index 0000000..2cbde18
--- /dev/null
@@ -0,0 +1,5 @@
+vietkaralist (0.0.1-fremantle3) unstable; urgency=low
+
+  * Fixed for deb package
+
+ -- Cuong Le <metacuong@gmail.com>  Sat, 17 Sep 2011 13:31:46 +0700
diff --git a/qtc_packaging/debian_fremantle/compat b/qtc_packaging/debian_fremantle/compat
new file mode 100644 (file)
index 0000000..7ed6ff8
--- /dev/null
@@ -0,0 +1 @@
+5
diff --git a/qtc_packaging/debian_fremantle/control b/qtc_packaging/debian_fremantle/control
new file mode 100644 (file)
index 0000000..0fe782b
--- /dev/null
@@ -0,0 +1,15 @@
+Source: vietkaralist
+Section: user/utilities
+Priority: optional
+Maintainer: Cuong Le <metacuong@gmail.com>
+Build-Depends: debhelper (>= 5), libqt4-dev
+Standards-Version: 3.7.3
+Homepage: http://vietkaralist.garage.maemo.org
+
+Package: vietkaralist
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Viet Nam Karaoke Song List
+XB-Maemo-Display-Name: VN Karaoke Song List
+XSBC-Bugtracker: https://garage.maemo.org/tracker/?group_id=2235
+XB-Maemo-Icon-26: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAADI9JREFUaIHtV21wVNd5ft5z793du7vaXa0+VhIg9LGSLCQZSwLbWBbEhnqmNqlL6rQTx9R8xKGuZxom9UCcpnacaUraSWLczrTTxJnatWsSyzNxWscJbcCAiYFgEOgLGwzWByBptavVft69X+f0x0oyFOGCE+BHeWZ2zuzdvec8z/s+533PAW7iJm7iJm7i/zNoroevdnU9oWdS22OxCdnpcAghGBiT6MPxzPLt39qyH0TiehO9HOYU8Pw/bBdjo+fgUFxCcSgkSZIgAB+c/ogsUl/JTY2t6+rqsq8z1znB/veDV7veuCM5FQeRJLJalnQ9B8YE5bQ4GZk4zHT0Ebfb/cSNIDsXLhLQ9Z+/+MzE+Y9+fe78GBKJJDldThAkLG6sRkN1CTKaDSIm/H7n82vWffX3bhTpC3GRgFw23WlZJjweL1RVhW1zhOtr0dq2GAWBUhiGCa9HpsmJKJiReHrNn/1l6Y0iPoOLBFgWVIBg2SbcbhXctrHqng6QEoBmylBdTtTOK4QtADLTdzu15L8++udPlt0o8gAgXfhl49e3HzAT5zZk0ylvKpGi8vJizAt5oMgCiXgUy1fcjfHIKMLzQ5gcPQ2mTYQLfe4nl618UKpfetfJ4wffSV1vAZdUoX/+0csP6clIVzweF34PJ845hkYikGWGwkIfamuq0VAXxltd/4bo+RGMiHliYUWILKlg70Q0+s2fvPQve66ngEuq0OMb176uqF4oDpki0aTYues99PSfga5bULiJ4mAApWVleGTDlxFecg8k1U/JyCCmRk+tgJ399+tJHrhMH3jmmdccY8n+b8Qjg08VepxyJpOFS3WgMkhIxaPCV6DSI5u3wePxwu9W8Ks3d2BwcBhnhkbFuWiO4PT/l2x7P/fKK9/LXGsB0lwP9+7tso8c3Pv24ts/8/66tZ9vGo9MJCOxTNomp38yyygVHxN95zWqK5Hh9hWhpjYMt0sGCYtGzp0Xtq6FLWZ/sb/32PYbImAGvd2HBl588aV/qli65odKoGKHzHNl86uqq53eEufY8Adi8sP95HRKqG1ahpKyCgR8PkRGR0jL5YSRzQRalnSea6xf3TcwsPeade05LfR/YfPffL/cZenvZ+NjPgfpaKorRU1tPRqaWuEvLMPQqT50dx8RO3cfoKzOBXMG3uF6aoFLdbkZY4qmablMJpuJx+PRycnYoydOnDj1aQV8YgYuh4O7d6ZXf2HTq1NTmVJdtxZl0ik2GYsgGR1DbWMTissrMa+smCJjZ0U2k6FsJlU5v7qhcF5Zsdfj9ap+v78gWBQsKguFFhiGscHn89X5/f7dsVjMuOYC6uoWNgaDJZuPvrtr7Qd978XSmpkoDJbVZnIGJuNxMDsF1aUgGJqPkqCPZAK0bIZGzkfBJRU+rxuAgCRJYIwhFAopXq+3VdO0Px0ZGfn+1fK5GgvRfffdp7W1tTklSRKGYcy+axoGTJvD4gRu5+CWTAR9Tnz+T/4YVXWLwE0TL7/4Iwy8fxqRKQ0LqhrgVR3gti1GR0cpkUwiEhnHnj17rtrSV5yBysrKlff//v0bZEUWnHMSQkAIAQEBQj4SDBwcMjRTIKOZ0BITMLUUCgqLEA7XwylzaNkshs6NwRIKdF2n7u4jibGxsd2apv3j+Pj4b66JgKKiooLm5uaftLW3lQohCACEECAiYPpqQ0TT+eSQJQkcCmJTU5iIjCERG0fr0mUI1zWiyO9Gf38f4pOTyOqW3bN/b6WnsHBHT0/P/qslD1yhhe699979Tz/91x2ypEDLZpFIJzF6fhRaVoOW05DL5WCaJgDAsixwboNzAc4FLMFgmAbKCxnCC0NY3NqOWxpbcezwr/HuoffE0YEhypkEM5dFNBrZBVA3II7ncrk3hRCmZVnmwMDAZTf3FWUgFCr7hqIohU6HE1OJBGKxGHRdR2GwULhcLliWRYzlTyVCCBBoNjKMOCQmI5E2MTmVwMTYOTQ0NqKu6TZUzgvR+wO90HMaAqUVomVRY00wGLyroMD3OSGw1eVy3q+q6i0ul+t4LBab86B4RQJKSkomjx7tLt67b6+2b9875w8dOjTY3z8gVZRXFDQ0NICISJZlMGKwLAtAPrWcC4AIRByCZORMCVMpDZmps5AYx4KqegQ8Dhh6Br853EuNt9wCr9cDv98vysvLqaioqNzr9d4hbLE8WFQy3tFx14cDAwMX3cfly5GuqKgokmX5iQULFjwwPj5x2jBy3xweHt4983tra+sW1a3+XVlZGQUCAVimBd3QEYvGkM6kkU6lMRmfhGEYsC0LgAWHBNi2goN9MRw+/gYCBf+Be1bciVROgqnr+Pa2v4fbU4CqcJgeWLUcbrcbqqoiHp9amkgl1o6MjPw3AO1CnnPugcrKyprW1tbXN27c2NrS0iKSySR27Pix/p3vbFMBoLGxceFDf/TQ4IMPPggQoOs6OOfgNkdWyyKXyyGbyWJ0bBSZTAZaLodsJgNu2xAALNOGBQbL4jh7phdnhsfQ0tSEY8d6kMpkYJkCj315Hbwet9BzOn65c+cZIeQ/7Ol5r++KLLRy5cqfbt68+c5ly5YJzjmpqoqW5mbl+PGe5TU14a3t7W3f3rRpk7BtG8ibBBAAMQIjBkVR4HQ6ocjTo6LkN/lFpVeAkcAHp0dw7uwoBocGUReuQSwWg8Mhobv3FPwBH44d6zYMg7X19h7+cC6ul2QgHA7feerUqQPpdFoIIcgwDAguYHMb3LZhWTZMy4Rt27AtCza3YZoWbNuGEAKGboCLfDYM0wC3OUzLRCKRQCaTQTqdRiQSga7rME0TpmGCGGE0Momdv/glGHGoqgqH4kAilRQku84+ORWpepaIzyXgkgzU1ze8vn79unk0HVgA+egSYTriYIyB2xzEZloYwIjyLYHy/wd93CsYY5AkCU6nEy6nCwICEmPA9JxccHjdLkiyA4lUBtlsGkIAqstF4Jb/1Es7OurDtX/gK/DWRaPRdy4roKSk5K4vfWnj1zo6OuQ8L4IQAowRMNO4pgXlBzErJl9tCJxzMGKzhXR2nBaiKMqstRyKA1xwzJRgv68A5eXl0E2ByVgEsiwJt8eD6PhE7a233baodfHiu3M57bXx8fHYnAIWLVr02gsvvFDJGCNJkiBJDIwxEDEwic1GX5KlfBQlCWz6N4lJeZISAxGBGM2OkpRfhskMsiRBcTjg8Xjh8/lQWBhEMBiEr8AHwTlU1YnKBeVobm5CVVU1pVM5AjcwMjSEuoY6efCjjwITExM/neF8URm1LLuwp6eH2traZqMmSRKIALJo1hK2ZUORFViWBVmWMTo4CpvbkGVZBAIBkmUZpmHMNjULFiRZAmyAC4LE8lZUmAIBAUWW4XA4YNkWspkMUuk0EokE3G7CHXfchncP2CgtDaLA6xGc82OfZKGKAwcOdq5YsVwEAoFpDXmfz9hjxgqCcyiKgpMnT4rntm+nAwcOoLv7GI2NjSOVSsGlqsLjcZNAXvTs2Ykwa7cZEKbnhEA2q2F6bciyDCJCKFSMoqIgdF2n4eHhTdFoNPHxu5eCbr311g0Oh/Mpl8tVu3btWqxatVLU1NRQPkvW9MeELCv4wQ9+iK985S9mTw7t7e0FuVzOJ0nKmmCw8PkvPvywWLJkCSzbItu2p6uXDWu6glnTFYwYiS1btuyQJGmHLMvPfeHhh8OhklLoeg5Dw8Ni3759FIvF3ujv719zEdk5BMyira2t07b5TiJyhkIheuqpr9HixYuhqipM04Qsy9i1azdWr35gznkWLWp6ubOz85H169dDliUIIcA5h2ma4JzPkrdsC0IIbN26Ndjb2xtfunRpmWGYZ2tra1l5eRkdPnwYmqa9kkwmHxsaGspdsYALhKy2LP7ZXE77LBHUysqFanNzs9O2bZw+fRo///mbF83T0tIyv6Ji/tc7OpY93tnZKUpLSmDZNuVPqh8LEEJA13VIkiT2vL2Hnv3Ws7PztLe3P2qa9mNC8HJZlv6qu7v7x3Nx+1SX+k9CfX19dVVV9clt2/5WCpWGyDAMcD7d1DjPCzAMcCHyfUVAvPGzn9Hbb+9+7tChQ1+92vU+1aX+kxCLxaY8Hu/yo0eP1i5f3imKi4tnb2+UbyfTyG/qEwMn6K233hpJJpOPj4+PT13ter9zAQBQXV39ejw+md71q12r+vr7IUkSqqur8z2EMQgAjElgjInvfvd7YiI68fg1vZH9tmhvb681DOsZzu1m27YLhBAuIrJkWR7s6+u957eZ+7oIuBC33367j3NeKYRIHjlyZPh6r38Tv2v8D66uEeCVyR9lAAAAAElFTkSuQmCC
diff --git a/qtc_packaging/debian_fremantle/copyright b/qtc_packaging/debian_fremantle/copyright
new file mode 100644 (file)
index 0000000..63fac33
--- /dev/null
@@ -0,0 +1,34 @@
+This package was debianized by Cuong Le <metacuong@gmail.com> on
+Sat, 17 Sep 2011 13:31:46 +0700.
+
+It was downloaded from <url://example.com>
+
+Upstream Author(s):
+
+    Cuong Le <metacuong@gmail.com>
+
+Copyright:
+
+    Copyright (C) 2011 Cuong Le
+
+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, Cuong Le <metacuong@gmail.com> and
+is licensed under the GPL, see above.
diff --git a/qtc_packaging/debian_fremantle/rules b/qtc_packaging/debian_fremantle/rules
new file mode 100755 (executable)
index 0000000..f52712b
--- /dev/null
@@ -0,0 +1,72 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+APPNAME := vietkaralist
+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)
+       #docbook-to-man debian/$(APPNAME).sgml > $(APPNAME).1
+
+       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/arora.
+       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
+       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
diff --git a/vietkaralist.desktop b/vietkaralist.desktop
new file mode 100644 (file)
index 0000000..e60e90e
--- /dev/null
@@ -0,0 +1,11 @@
+[Desktop Entry]
+Encoding=UTF-8
+Version=1.0
+Type=Application
+Terminal=false
+Name=VN Karaoke Song List
+Exec=/opt/vietkaralist/bin/vietkaralist
+Icon=vietkaralist
+X-Window-Icon=
+X-HildonDesk-ShowInToolbar=true
+X-Osso-Type=application/x-executable
diff --git a/vietkaralist.png b/vietkaralist.png
new file mode 100644 (file)
index 0000000..214d83f
Binary files /dev/null and b/vietkaralist.png differ
diff --git a/vietkaralist.pro b/vietkaralist.pro
new file mode 100644 (file)
index 0000000..8d9f51c
--- /dev/null
@@ -0,0 +1,60 @@
+# Add more folders to ship with the application, here
+folder_01.source = qml/vietkaralist
+folder_01.target = qml
+DEPLOYMENTFOLDERS = folder_01
+
+# Additional import path used to resolve QML modules in Creator's code model
+QML_IMPORT_PATH =
+
+#symbian:TARGET.UID3 = 0xE6CF3A6C
+
+# Smart Installer package's UID
+# This UID is from the protected range and therefore the package will
+# fail to install if self-signed. By default qmake uses the unprotected
+# range value if unprotected UID is defined for the application and
+# 0x2002CCCF value if protected UID is given to the application
+#symbian:DEPLOYMENT.installer_header = 0x2002CCCF
+
+# Allow network access on Symbian
+#symbian:TARGET.CAPABILITY += NetworkServices
+
+# If your application uses the Qt Mobility libraries, uncomment the following
+# lines and add the respective components to the MOBILITY variable.
+# CONFIG += mobility
+# MOBILITY +=
+
+QT += sql \
+    dbus
+
+# The .cpp file which was generated for your project. Feel free to hack it.
+SOURCES += main.cpp \
+    appman.cpp \
+    dbman.cpp \
+    dbthread.cpp
+
+HEADERS += \
+    appman.h \
+    dbman.h \
+    dbthread.h
+
+# Please do not modify the following two lines. Required for deployment.
+include(qmlapplicationviewer/qmlapplicationviewer.pri)
+qtcAddDeployment()
+
+OTHER_FILES += \
+    qtc_packaging/debian_fremantle/rules \
+    qtc_packaging/debian_fremantle/README \
+    qtc_packaging/debian_fremantle/copyright \
+    qtc_packaging/debian_fremantle/control \
+    qtc_packaging/debian_fremantle/compat \
+    qtc_packaging/debian_fremantle/changelog \
+    qml/vietkaralist/com/TopBar.qml \
+    qml/vietkaralist/com/Page.qml \
+    qml/vietkaralist/com/ScrollBar.qml \
+    qml/vietkaralist/com/SongListView.qml \
+    qml/vietkaralist/com/WaitingDlg.qml \
+    qml/vietkaralist/com/MenuBar.qml \
+    qml/vietkaralist/com/MenuButton.qml \
+    db/vietkaralist.sqlite \
+    qml/vietkaralist/com/AboutDlg.qml \
+    qml/vietkaralist/scripts/main.js
diff --git a/vietkaralist.svg b/vietkaralist.svg
new file mode 100644 (file)
index 0000000..566acfa
--- /dev/null
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   height="44px"
+   version="1.1"
+   viewBox="0 0 44 44"
+   width="44px"
+   x="0px"
+   y="0px"
+   id="svg2"
+   inkscape:version="0.47 r22583"
+   sodipodi:docname="qt.svg">
+  <metadata
+     id="metadata18">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs16">
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 22 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="44 : 22 : 1"
+       inkscape:persp3d-origin="22 : 14.666667 : 1"
+       id="perspective2836" />
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1920"
+     inkscape:window-height="1020"
+     id="namedview14"
+     showgrid="false"
+     inkscape:zoom="21.454545"
+     inkscape:cx="49.412871"
+     inkscape:cy="21.894358"
+     inkscape:window-x="-4"
+     inkscape:window-y="-4"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="g3" />
+  <g
+     transform="matrix(0.18308778,0,0,0.18308778,6.6100946,3.2385199)"
+     id="g3">
+    <path
+       d="M 43.09,0.3586 C 40.94,0.0036 38.84,-0.0824 36.81,0.0776 31.968136,0.39505671 27.122677,0.73638425 22.28,1.0696 9.62,2.0816 0,12.4996 0,26.8896 l 0,169.7 14.19,13.2 28.87,-209.42 0.03,-0.011 z"
+       style="fill:#006225"
+       id="path5"
+       sodipodi:nodetypes="cccccccc" />
+    <path
+       d="m 174.4,160 c 0,12.5 -7.75,24.07 -17.57,25.77 L 14.23,209.73 V 25.93 C 14.23,9.21 27.57,-2.27 43.12,0.3 l 131.3,21.52 v 138.2 z"
+       style="fill:#80c342"
+       id="path7" />
+    <path
+       d="m 154.9,80.96 -12.96,-0.598 0,0.278 6.945,0.32 6.016,0 z"
+       style="fill:#006225"
+       id="path11" />
+    <path
+       d="m 144.6,135.6 c 0.66,0.328 1.43,0.476 2.351,0.476 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 h -6.015 c -1.821,0.832 -3.532,1.457 -5.176,1.848 z"
+       style="fill:#006225"
+       id="path13" />
+    <path
+       id="path17"
+       style="fill:#ffffff"
+       d="m 91.15,132.4 c 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -4.34,0 -7.68,2.535 -10.01,7.625 -2.52,5.543 -3.793,17.04 -3.793,34.44 0,16.82 1.238,28.75 3.734,35.75 2.356,6.672 5.879,9.976 10.5,9.976 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 m 17.98,3.75 c -4.117,9.707 -10.39,16.06 -18.99,19 0.867,4.449 2.176,7.441 3.922,9.019 1.351,1.211 3.433,1.821 6.222,1.821 0.805,0 1.668,-0.055 2.59,-0.157 v 13.12 l -5.961,0.782 c -1.758,0.23 -3.426,0.343 -5.004,0.343 -5.218,0 -9.445,-1.265 -12.62,-3.824 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 1.629,0 3.309,0.102 5.043,0.305 11.95,1.375 20.62,7.016 26.26,16.79 5.535,9.562 8.254,23.27 8.254,41.26 0,16.48 -2,29.45 -6.043,39.02 z M 130.4,45.91 l 11.52,1.238 0,20.21 12.96,0.914 0,12.68 -12.96,-0.598 0,46.33 c 0,4.032 0.445,6.625 1.34,7.789 0.8,1.067 2.046,1.594 3.71,1.594 0.161,0 0.329,-0.004 0.497,-0.016 2.55,-0.148 5.32,-0.933 8.343,-2.308 v 11.65 c -5.136,2.258 -10.18,3.598 -15.12,4.02 -0.718,0.055 -1.41,0.086 -2.078,0.086 -4.48,0 -7.906,-1.301 -10.25,-3.934 -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.535 L 118.046,79.25 V 65.66 l 7.586,0.547 4.773,-20.3 z" />
+    <path
+       d="m 100.3,166 c 0.809,0 1.672,-0.055 2.59,-0.157 H 98.054 C 98.73,165.949 99.507,166 100.3,166 z"
+       style="fill:#006225"
+       id="path19" />
+    <path
+       id="path21"
+       style="fill:#006225"
+       d="m 84.85,63.98 c 2.336,5.997 3.484,16.92 3.484,32.81 0,17.7 -1.16,29.57 -3.512,35.62 -1.894,4.879 -4.527,7.902 -7.863,9.07 0.965,0.368 1.992,0.551 3.078,0.551 0.207,0 0.41,-0.008 0.621,-0.019 4.633,-0.293 8.121,-3.496 10.49,-9.602 2.351,-6.051 3.511,-17.91 3.511,-35.62 0,-15.89 -1.148,-26.82 -3.484,-32.81 -2.336,-6.027 -5.832,-9.281 -10.52,-9.691 -0.359,-0.031 -0.714,-0.051 -1.058,-0.051 -1.09,0 -2.117,0.16 -3.082,0.481 h -0.004 c 3.601,1.121 6.379,4.215 8.336,9.261 z m -2.344,114.3 c -0.113,-0.05 -0.227,-0.105 -0.336,-0.16 -0.012,-0.004 -0.023,-0.012 -0.035,-0.015 -0.102,-0.051 -0.207,-0.106 -0.309,-0.157 -0.019,-0.011 -0.039,-0.019 -0.058,-0.031 -0.09,-0.051 -0.184,-0.098 -0.278,-0.148 -0.027,-0.016 -0.054,-0.036 -0.086,-0.051 -0.082,-0.043 -0.164,-0.09 -0.242,-0.137 -0.039,-0.023 -0.078,-0.047 -0.113,-0.07 -0.07,-0.039 -0.145,-0.082 -0.215,-0.125 -0.047,-0.031 -0.094,-0.059 -0.14,-0.09 -0.059,-0.039 -0.118,-0.074 -0.176,-0.113 -0.059,-0.039 -0.114,-0.075 -0.168,-0.114 -0.051,-0.031 -0.102,-0.066 -0.149,-0.097 -0.066,-0.047 -0.132,-0.094 -0.195,-0.137 -0.039,-0.027 -0.078,-0.055 -0.113,-0.082 -0.078,-0.055 -0.153,-0.113 -0.231,-0.172 -0.023,-0.016 -0.05,-0.035 -0.078,-0.055 -0.098,-0.078 -0.199,-0.156 -0.297,-0.234 -4.207,-3.379 -7.308,-9.894 -9.297,-19.54 -9.136,-1.945 -16.26,-7.754 -21.19,-17.5 -5.004,-9.902 -7.551,-24.39 -7.551,-43.34 0,-20.43 3.484,-35.51 10.34,-45.07 5.789,-8.07 13.86,-12.04 24.02,-12.04 h -6.351 c -10.15,0.008 -18.22,3.977 -24,12.04 -6.855,9.563 -10.34,24.64 -10.34,45.07 0,18.95 2.547,33.44 7.551,43.34 4.934,9.75 12.05,15.56 21.19,17.5 1.989,9.641 5.09,16.16 9.297,19.54 3.176,2.559 7.403,3.824 12.62,3.824 0.098,0 0.199,0 0.297,-0.004 h 5.539 c -3.406,-0.05 -6.383,-0.66 -8.906,-1.828 L 82.498,178.28 z M 128.4,145.6 c -2.73,-3.051 -4.09,-7.949 -4.09,-14.67 V 79.57 l -6.226,-0.285 v -13.59 h -6.016 v 3.035 c 0.871,3.273 1.555,6.82 2.063,10.64 l 4.164,0.192 v 51.36 c 0,6.723 1.367,11.62 4.09,14.67 2.343,2.633 5.765,3.934 10.25,3.934 h 6.015 c -4.48,0 -7.906,-1.301 -10.25,-3.934 z m 2.043,-99.66 -6.016,0 -4.668,19.88 5.911,0.422 4.773,-20.3 z" />
+  </g>
+</svg>
diff --git a/welcome b/welcome
deleted file mode 100644 (file)
index e69de29..0000000