[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    =?utf-8?q?=5Bcalligra/kexi-mobile-adam=5Fpigg=5D_kexi=3A_Continu?=
From:       Adam Pigg <adam () piggz ! co ! uk>
Date:       2011-04-03 8:40:38
Message-ID: 20110403084038.02115A609B () git ! kde ! org
[Download RAW message or body]

Git commit 6a7edf1d38f861c5a30c7395ec7251f116b553d9 by Adam Pigg.
Committed on 03/04/2011 at 10:34.
Pushed by piggz into branch 'kexi-mobile-adam_pigg'.

Continue refactoring by making kexi build with KEXI_MOBILE not defined.
Expanded KexiRecordNavigatorIface, still needs to be moved into a
seperate file.

M  +10   -0    kexi/core/kexidataiteminterface.cpp     
M  +4    -0    kexi/core/kexidataiteminterface.h     
M  +1    -1    kexi/formeditor/kexiformeventhandler.cpp     
M  +8    -0    kexi/kexi_export.h     
M  +2    -2    kexi/main/KexiMainWindow.cpp     
M  +1    -1    kexi/main/printing/kexisimpleprintingengine.h     
M  +1    -1    kexi/plugins/autoforms/KexiAutoFormView.cpp     
M  +1    -1    kexi/plugins/autoforms/KexiAutoFormView.h     
M  +1    -1    kexi/plugins/autoforms/widgets/AutoForm.cpp     
M  +1    -1    kexi/plugins/autoforms/widgets/AutoForm.h     
M  +2    -0    kexi/plugins/forms/CMakeLists.txt     
M  +1    -1    kexi/plugins/forms/kexidbfactory.cpp     
M  +1    -1    kexi/plugins/forms/kexidbtextwidgetinterface.cpp     
M  +2    -1    kexi/plugins/forms/kexiformscrollview.h     
M  +1    -1    kexi/plugins/forms/kexiformview.cpp     
M  +1    -1    kexi/plugins/forms/kexiformview.h     
M  +1    -1    kexi/plugins/forms/widgets/kexidbautofield.h     
M  +1    -1    kexi/plugins/forms/widgets/kexidbcheckbox.h     
M  +1    -1    kexi/plugins/forms/widgets/kexidbform.h     
M  +1    -1    kexi/plugins/forms/widgets/kexidbimagebox.h     
M  +1    -1    kexi/plugins/forms/widgets/kexidblabel.h     
M  +1    -1    kexi/plugins/forms/widgets/kexidblineedit.h     
M  +1    -1    kexi/plugins/forms/widgets/kexidbtextedit.h     
M  +1    -0    kexi/plugins/queries/CMakeLists.txt     
M  +2    -2    kexi/plugins/queries/kexiquerydesignerguieditor.cpp     
M  +1    -0    kexi/plugins/tables/CMakeLists.txt     
M  +1    -1    kexi/plugins/tables/kexitabledesignerview.cpp     
M  +1    -1    kexi/plugins/tables/kexitabledesignerview_p.cpp     
M  +1    -1    kexi/plugins/tables/kexitablepart.cpp     
M  +0    -2    kexi/widget/CMakeLists.txt     
M  +1    -1    kexi/widget/dataviewcommon/KexiTableViewColumn.h     
M  +3    -1    kexi/widget/dataviewcommon/kexidataawareobjectiface.cpp     
M  +3    -7    kexi/widget/dataviewcommon/kexidataawareobjectiface.h     
M  +1    -1    kexi/widget/dataviewcommon/kexidataawarepropertyset.h     
M  +1    -1    kexi/widget/dataviewcommon/kexidataawareview.h     
M  +4    -9    kexi/widget/dataviewcommon/kexidataprovider.cpp     
M  +1    -1    kexi/widget/dataviewcommon/kexidataprovider.h     
M  +1    -1    kexi/widget/dataviewcommon/kexiformdataiteminterface.h     
M  +1    -1    kexi/widget/dataviewcommon/kexitableviewdata.h     
M  +2    -1    kexi/widget/tableview/CMakeLists.txt     
M  +1    -1    kexi/widget/tableview/kexicelleditorfactory.cpp     
M  +1    -1    kexi/widget/tableview/kexicomboboxbase.cpp     
M  +1    -1    kexi/widget/tableview/kexicomboboxbase.h     
M  +1    -1    kexi/widget/tableview/kexicomboboxtableedit.h     
A  +0    -0    kexi/widget/tableview/kexidataawareobjectiface.h         [License: \
Trivial file] M  +2    -2    kexi/widget/tableview/kexidatatable.h     
M  +1    -1    kexi/widget/tableview/kexitableedit.cpp     
M  +14   -9    kexi/widget/tableview/kexitableview.cpp     
M  +2    -0    kexi/widget/tableview/kexitableview.h     
M  +25   -6    kexi/widget/utils/kexirecordnavigator.h     

http://commits.kde.org/calligra/6a7edf1d38f861c5a30c7395ec7251f116b553d9

diff --git a/kexi/core/kexidataiteminterface.cpp \
b/kexi/core/kexidataiteminterface.cpp index b183637..8eb9d4d 100644
--- a/kexi/core/kexidataiteminterface.cpp
+++ b/kexi/core/kexidataiteminterface.cpp
@@ -141,3 +141,13 @@ bool KexiDataItemInterface::cursorAtNewRow()
 {
     return listener() ? listener()->cursorAtNewRow() : false;
 }
+
+bool KexiDataItemInterface::isComboBox() const
+{
+    return false;
+}
+
+QWidget* KexiDataItemInterface::internalEditor() const
+{
+    return 0;
+}
diff --git a/kexi/core/kexidataiteminterface.h b/kexi/core/kexidataiteminterface.h
index 67d06d3..d0e15fe 100644
--- a/kexi/core/kexidataiteminterface.h
+++ b/kexi/core/kexidataiteminterface.h
@@ -224,6 +224,10 @@ public:
         Q_UNUSED(actionName);
     }
 
+    virtual bool isComboBox() const;
+    
+    virtual QWidget* internalEditor() const;
+    
 protected:
     /*! Initializes this editor with \a add value, which should be somewhat added to \
the current  value (already storted in m_origValue).
diff --git a/kexi/formeditor/kexiformeventhandler.cpp \
b/kexi/formeditor/kexiformeventhandler.cpp index 4f35089..6366108 100644
--- a/kexi/formeditor/kexiformeventhandler.cpp
+++ b/kexi/formeditor/kexiformeventhandler.cpp
@@ -26,7 +26,7 @@
 #include <kactioncollection.h>
 #include <kaction.h>
 
-#include <tableview/kexitableviewdata.h>
+#include <dataviewcommon/kexitableviewdata.h>
 #include <kexidb/queryschema.h>
 #include <KexiMainWindowIface.h>
 #include <kexipart.h>
diff --git a/kexi/kexi_export.h b/kexi/kexi_export.h
index 69eca08..0d8e183 100644
--- a/kexi/kexi_export.h
+++ b/kexi/kexi_export.h
@@ -46,6 +46,14 @@
 # endif
 #endif
 
+#ifndef KEXIDATATVIEWCOMMON_EXPORT
+# ifdef MAKE_KEXIDATAVIEWCOMMON_LIB
+#  define KEXIDATAVIEWCOMMON_EXPORT  KDE_EXPORT
+# else
+#  define KEXIDATAVIEWCOMMON_EXPORT  KDE_IMPORT
+# endif
+#endif
+
 #ifndef KEXIEXTWIDGETS_EXPORT
 # ifdef MAKE_KEXIEXTENDEDWIDGETS_LIB
 #  define KEXIEXTWIDGETS_EXPORT  KDE_EXPORT
diff --git a/kexi/main/KexiMainWindow.cpp b/kexi/main/KexiMainWindow.cpp
index 053b93c..18b5679 100644
--- a/kexi/main/KexiMainWindow.cpp
+++ b/kexi/main/KexiMainWindow.cpp
@@ -108,8 +108,8 @@
 #include "startup/KexiStartupDialog.h"
 #include "startup/KexiStartupFileWidget.h"
 #include "kexinamedialog.h"
-#include "printing/kexisimpleprintingpart.h"
-#include "printing/kexisimpleprintingpagesetup.h"
+//#include "printing/kexisimpleprintingpart.h"
+//#include "printing/kexisimpleprintingpagesetup.h"
 
 //Extreme verbose debug
 //#if defined(Q_WS_WIN)
diff --git a/kexi/main/printing/kexisimpleprintingengine.h \
b/kexi/main/printing/kexisimpleprintingengine.h index d1d3d53..5388b97 100644
--- a/kexi/main/printing/kexisimpleprintingengine.h
+++ b/kexi/main/printing/kexisimpleprintingengine.h
@@ -27,7 +27,7 @@ class KexiSimplePrintingSettings;
 #include <kexidb/cursor.h>
 #include <kexidb/utils.h>
 #include <kexidb/queryschema.h>
-#include <widget/tableview/kexitableviewdata.h>
+#include <widget/dataviewcommon/kexitableviewdata.h>
 #include <KoPageLayout.h>
 #include <KoUnit.h>
 
diff --git a/kexi/plugins/autoforms/KexiAutoFormView.cpp \
b/kexi/plugins/autoforms/KexiAutoFormView.cpp index d10edf0..4fc312d 100644
--- a/kexi/plugins/autoforms/KexiAutoFormView.cpp
+++ b/kexi/plugins/autoforms/KexiAutoFormView.cpp
@@ -38,7 +38,7 @@ KexiAutoFormView::KexiAutoFormView(QWidget* parent): \
KexiView(parent), m_autoFor  
     #ifndef KEXI_MOBILE
     m_pageSelector = new KexiRecordNavigator(this, 0);
-    layout()->addWidget(m_pageSelector);
+    layout()->addWidget(dynamic_cast<QWidget*>(m_pageSelector));
     m_pageSelector->setRecordCount(0);
     m_pageSelector->setInsertingButtonVisible(true);
     m_pageSelector->setLabelText(i18n("Record"));
diff --git a/kexi/plugins/autoforms/KexiAutoFormView.h \
b/kexi/plugins/autoforms/KexiAutoFormView.h index 90b353d..dcc84bb 100644
--- a/kexi/plugins/autoforms/KexiAutoFormView.h
+++ b/kexi/plugins/autoforms/KexiAutoFormView.h
@@ -54,7 +54,7 @@ public:
     
 private:
     QScrollArea *m_scrollArea;
-    KexiRecordNavigatorIFace *m_pageSelector;
+    KexiRecordNavigatorIface *m_pageSelector;
     AutoForm *m_autoForm;
     
     KexiAutoFormPart::TempData* tempData() const;
diff --git a/kexi/plugins/autoforms/widgets/AutoForm.cpp \
b/kexi/plugins/autoforms/widgets/AutoForm.cpp index 1bbcda0..0144cde 100644
--- a/kexi/plugins/autoforms/widgets/AutoForm.cpp
+++ b/kexi/plugins/autoforms/widgets/AutoForm.cpp
@@ -24,7 +24,7 @@
 #include <kexidb/cursor.h>
 #include <kexidb/RecordData.h>
 
-AutoForm::AutoForm(QWidget* parent, KexiRecordNavigatorIFace *nav): QWidget(parent), \
m_previousRecord(0) +AutoForm::AutoForm(QWidget* parent, KexiRecordNavigatorIface \
*nav): QWidget(parent), m_previousRecord(0)  {
     setBackgroundRole(QPalette::Window);
     m_layout = new QGridLayout(this);
diff --git a/kexi/plugins/autoforms/widgets/AutoForm.h \
b/kexi/plugins/autoforms/widgets/AutoForm.h index f90c9e1..df72c38 100644
--- a/kexi/plugins/autoforms/widgets/AutoForm.h
+++ b/kexi/plugins/autoforms/widgets/AutoForm.h
@@ -40,7 +40,7 @@ class AutoForm : public QWidget,
     KEXI_DATAAWAREOBJECTINTERFACE
     
 public:
-    AutoForm(QWidget* parent, KexiRecordNavigatorIFace *nav);
+    AutoForm(QWidget* parent, KexiRecordNavigatorIface *nav);
     virtual ~AutoForm();
     
 protected:
diff --git a/kexi/plugins/forms/CMakeLists.txt b/kexi/plugins/forms/CMakeLists.txt
index c1fac62..ad02ae4 100644
--- a/kexi/plugins/forms/CMakeLists.txt
+++ b/kexi/plugins/forms/CMakeLists.txt
@@ -39,6 +39,7 @@ target_link_libraries(
     kexidb
     kexicore
     kexiguiutils
+    kexidataviewcommon
 	kexidatatable
 	kexiextendedwidgets
     ${KDE4_KDECORE_LIBS}
@@ -92,6 +93,7 @@ target_link_libraries(
     kformdesigner
     kexidb
     kexiutils
+    kexidataviewcommon
     kexidatatable
     kexiguiutils
     ${KOPROPERTY_LIBS}
diff --git a/kexi/plugins/forms/kexidbfactory.cpp \
b/kexi/plugins/forms/kexidbfactory.cpp index f3fb9c2..536ffde 100644
--- a/kexi/plugins/forms/kexidbfactory.cpp
+++ b/kexi/plugins/forms/kexidbfactory.cpp
@@ -65,7 +65,7 @@
 #include "kexidataawarewidgetinfo.h"
 
 #include "kexidbfactory.h"
-#include "kexiformdataiteminterface.h"
+#include <widget/dataviewcommon/kexiformdataiteminterface.h>
 
 
 //////////////////////////////////////////
diff --git a/kexi/plugins/forms/kexidbtextwidgetinterface.cpp \
b/kexi/plugins/forms/kexidbtextwidgetinterface.cpp index 4ff433c..73d17e7 100644
--- a/kexi/plugins/forms/kexidbtextwidgetinterface.cpp
+++ b/kexi/plugins/forms/kexidbtextwidgetinterface.cpp
@@ -18,7 +18,7 @@
 */
 
 #include "kexidbtextwidgetinterface.h"
-#include "kexiformdataiteminterface.h"
+#include <widget/dataviewcommon/kexiformdataiteminterface.h>
 #include <kexidb/queryschema.h>
 #include <kexiutils/utils.h>
 #include <qpainter.h>
diff --git a/kexi/plugins/forms/kexiformscrollview.h \
b/kexi/plugins/forms/kexiformscrollview.h index f164326..a198911 100644
--- a/kexi/plugins/forms/kexiformscrollview.h
+++ b/kexi/plugins/forms/kexiformscrollview.h
@@ -21,13 +21,14 @@
 #ifndef KEXIFORMSCROLLVIEW_H
 #define KEXIFORMSCROLLVIEW_H
 
-#include "kexidataprovider.h"
+#include <widget/dataviewcommon/kexidataprovider.h>
 #include <formeditor/kexiformeventhandler.h>
 #include "widgets/kexidbform.h"
 #include <widget/kexiscrollview.h>
 #include <widget/utils/kexirecordnavigator.h>
 #include <widget/utils/kexisharedactionclient.h>
 #include <widget/tableview/kexidataawareobjectiface.h>
+#include <widget/dataviewcommon/kexidataawareobjectiface.h>
 
 //! @short KexiFormScrollView class provides a widget for displaying data in a form \
view  /*! This class also implements:
diff --git a/kexi/plugins/forms/kexiformview.cpp \
b/kexi/plugins/forms/kexiformview.cpp index 3397106..8afc47e 100644
--- a/kexi/plugins/forms/kexiformview.cpp
+++ b/kexi/plugins/forms/kexiformview.cpp
@@ -48,7 +48,7 @@
 #include <kexidb/cursor.h>
 #include <kexidb/utils.h>
 #include <kexidb/preparedstatement.h>
-#include <tableview/kexitableviewdata.h>
+#include <dataviewcommon/kexitableviewdata.h>
 #include <widget/kexiqueryparameters.h>
 #include <kexiutils/utils.h>
 #include <KexiMainWindowIface.h>
diff --git a/kexi/plugins/forms/kexiformview.h b/kexi/plugins/forms/kexiformview.h
index 9f0034d..5c11912 100644
--- a/kexi/plugins/forms/kexiformview.h
+++ b/kexi/plugins/forms/kexiformview.h
@@ -26,7 +26,7 @@
 #include <QResizeEvent>
 #include <QDropEvent>
 
-#include <widget/kexidataawareview.h>
+#include <widget/dataviewcommon/kexidataawareview.h>
 
 #include <core/KexiWindow.h>
 #include <core/KexiWindowData.h>
diff --git a/kexi/plugins/forms/widgets/kexidbautofield.h \
b/kexi/plugins/forms/widgets/kexidbautofield.h index 29d2a58..3f45007 100644
--- a/kexi/plugins/forms/widgets/kexidbautofield.h
+++ b/kexi/plugins/forms/widgets/kexidbautofield.h
@@ -29,7 +29,7 @@
 #include <formeditor/container.h>
 #include <formeditor/widgetwithsubpropertiesinterface.h>
 #include <formeditor/FormWidgetInterface.h>
-#include "kexiformdataiteminterface.h"
+#include <widget/dataviewcommon/kexiformdataiteminterface.h>
 
 class QLabel;
 
diff --git a/kexi/plugins/forms/widgets/kexidbcheckbox.h \
b/kexi/plugins/forms/widgets/kexidbcheckbox.h index 18d0137..f7c2d18 100644
--- a/kexi/plugins/forms/widgets/kexidbcheckbox.h
+++ b/kexi/plugins/forms/widgets/kexidbcheckbox.h
@@ -21,7 +21,7 @@
 #ifndef KexiDBCheckBox_H
 #define KexiDBCheckBox_H
 
-#include "kexiformdataiteminterface.h"
+#include <widget/dataviewcommon/kexiformdataiteminterface.h>
 #include <formeditor/FormWidgetInterface.h>
 #include <qcheckbox.h>
 
diff --git a/kexi/plugins/forms/widgets/kexidbform.h \
b/kexi/plugins/forms/widgets/kexidbform.h index 9d1e5fc..508239a 100644
--- a/kexi/plugins/forms/widgets/kexidbform.h
+++ b/kexi/plugins/forms/widgets/kexidbform.h
@@ -29,7 +29,7 @@
 #include <formeditor/form.h>
 #include <formeditor/FormWidget.h>
 #include <formeditor/FormWidgetInterface.h>
-#include "kexiformdataiteminterface.h"
+#include <widget/dataviewcommon/kexiformdataiteminterface.h>
 
 class KexiDataAwareObjectInterface;
 class KexiFormScrollView;
diff --git a/kexi/plugins/forms/widgets/kexidbimagebox.h \
b/kexi/plugins/forms/widgets/kexidbimagebox.h index d99c9bb..38ca731 100644
--- a/kexi/plugins/forms/widgets/kexidbimagebox.h
+++ b/kexi/plugins/forms/widgets/kexidbimagebox.h
@@ -21,7 +21,7 @@
 #ifndef KexiDBImageBox_H
 #define KexiDBImageBox_H
 
-#include "kexiformdataiteminterface.h"
+#include <widget/dataviewcommon/kexiformdataiteminterface.h>
 #include "kexiframe.h"
 #include "kexidbutils.h"
 #include <QContextMenuEvent>
diff --git a/kexi/plugins/forms/widgets/kexidblabel.h \
b/kexi/plugins/forms/widgets/kexidblabel.h index 6c10b7e..40fb044 100644
--- a/kexi/plugins/forms/widgets/kexidblabel.h
+++ b/kexi/plugins/forms/widgets/kexidblabel.h
@@ -27,7 +27,7 @@
 #include <QShowEvent>
 #include <QResizeEvent>
 
-#include "kexiformdataiteminterface.h"
+#include <widget/dataviewcommon/kexiformdataiteminterface.h>
 #include "kexidbtextwidgetinterface.h"
 #include <widget/utils/kexidisplayutils.h>
 #include <formeditor/FormWidgetInterface.h>
diff --git a/kexi/plugins/forms/widgets/kexidblineedit.h \
b/kexi/plugins/forms/widgets/kexidblineedit.h index 496deec..e13737b 100644
--- a/kexi/plugins/forms/widgets/kexidblineedit.h
+++ b/kexi/plugins/forms/widgets/kexidblineedit.h
@@ -27,7 +27,7 @@
 #include <klineedit.h>
 #include <qvalidator.h>
 
-#include "kexiformdataiteminterface.h"
+#include <widget/dataviewcommon/kexiformdataiteminterface.h>
 #include "kexidbtextwidgetinterface.h"
 #include "kexidbutils.h"
 #include <kexi_global.h>
diff --git a/kexi/plugins/forms/widgets/kexidbtextedit.h \
b/kexi/plugins/forms/widgets/kexidbtextedit.h index d35e371..0e1c7e3 100644
--- a/kexi/plugins/forms/widgets/kexidbtextedit.h
+++ b/kexi/plugins/forms/widgets/kexidbtextedit.h
@@ -21,7 +21,7 @@
 #ifndef KexiDBTextEdit_H
 #define KexiDBTextEdit_H
 
-#include "kexiformdataiteminterface.h"
+#include <widget/dataviewcommon/kexiformdataiteminterface.h>
 #include "kexidbtextwidgetinterface.h"
 #include "kexidbutils.h"
 #include <formeditor/FormWidgetInterface.h>
diff --git a/kexi/plugins/queries/CMakeLists.txt \
b/kexi/plugins/queries/CMakeLists.txt index 103acc3..e4a20c9 100644
--- a/kexi/plugins/queries/CMakeLists.txt
+++ b/kexi/plugins/queries/CMakeLists.txt
@@ -20,6 +20,7 @@ target_link_libraries(
     kexicore
     kexidb
     kexiextendedwidgets
+    kexidataviewcommon
     kexidatatable
     kexirelationsview
     ${KOPROPERTY_LIBS}
diff --git a/kexi/plugins/queries/kexiquerydesignerguieditor.cpp \
b/kexi/plugins/queries/kexiquerydesignerguieditor.cpp index b3cea49..338ba52 100644
--- a/kexi/plugins/queries/kexiquerydesignerguieditor.cpp
+++ b/kexi/plugins/queries/kexiquerydesignerguieditor.cpp
@@ -46,12 +46,12 @@
 #include <KexiMainWindowIface.h>
 #include <kexiinternalpart.h>
 #include <kexitableview.h>
-#include <kexitableviewdata.h>
+#include <widget/dataviewcommon/kexitableviewdata.h>
 #include <kexidragobjects.h>
 #include <kexidatatable.h>
 #include <kexi.h>
 #include <kexisectionheader.h>
-#include <widget/tableview/kexidataawarepropertyset.h>
+#include <widget/dataviewcommon/kexidataawarepropertyset.h>
 #include <widget/relations/KexiRelationsView.h>
 #include <widget/relations/KexiRelationsTableContainer.h>
 #include <koproperty/Property.h>
diff --git a/kexi/plugins/tables/CMakeLists.txt b/kexi/plugins/tables/CMakeLists.txt
index 5e6b411..a29b2b9 100644
--- a/kexi/plugins/tables/CMakeLists.txt
+++ b/kexi/plugins/tables/CMakeLists.txt
@@ -17,6 +17,7 @@ target_link_libraries(
     kexihandler_table
     kexicore
     kexidb
+    kexidataviewcommon
     kexidatatable
     kexiextendedwidgets
     ${KOPROPERTY_LIBS}
diff --git a/kexi/plugins/tables/kexitabledesignerview.cpp \
b/kexi/plugins/tables/kexitabledesignerview.cpp index b032f7a..60bef56 100644
--- a/kexi/plugins/tables/kexitabledesignerview.cpp
+++ b/kexi/plugins/tables/kexitabledesignerview.cpp
@@ -51,7 +51,7 @@
 #include <kexiutils/identifier.h>
 #include <kexiproject.h>
 #include <KexiMainWindowIface.h>
-#include <widget/tableview/kexidataawarepropertyset.h>
+#include <widget/dataviewcommon/kexidataawarepropertyset.h>
 #include <widget/kexicustompropertyfactory.h>
 #include <kexiutils/utils.h>
 #include <KexiWindow.h>
diff --git a/kexi/plugins/tables/kexitabledesignerview_p.cpp \
b/kexi/plugins/tables/kexitabledesignerview_p.cpp index dd1b56a..67e090e 100644
--- a/kexi/plugins/tables/kexitabledesignerview_p.cpp
+++ b/kexi/plugins/tables/kexitabledesignerview_p.cpp
@@ -41,7 +41,7 @@
 #include <kexiutils/identifier.h>
 #include <kexiproject.h>
 #include <KexiMainWindowIface.h>
-#include <widget/tableview/kexidataawarepropertyset.h>
+#include <widget/dataviewcommon/kexidataawarepropertyset.h>
 #include <widget/kexicustompropertyfactory.h>
 #include <kexiutils/utils.h>
 #include <KexiWindow.h>
diff --git a/kexi/plugins/tables/kexitablepart.cpp \
b/kexi/plugins/tables/kexitablepart.cpp index e3b0edc..11e2754 100644
--- a/kexi/plugins/tables/kexitablepart.cpp
+++ b/kexi/plugins/tables/kexitablepart.cpp
@@ -30,7 +30,7 @@
 #include <KexiMainWindowIface.h>
 #include "kexiproject.h"
 #include "kexipartinfo.h"
-#include "widget/kexidatatable.h"
+#include "widget/tableview/kexidatatable.h"
 #include "widget/tableview/kexidatatableview.h"
 #include "kexitabledesignerview.h"
 #include "kexitabledesigner_dataview.h"
diff --git a/kexi/widget/CMakeLists.txt b/kexi/widget/CMakeLists.txt
index 7959326..0995457 100644
--- a/kexi/widget/CMakeLists.txt
+++ b/kexi/widget/CMakeLists.txt
@@ -42,8 +42,6 @@ IF (KEXI_MOBILE)
 
 ELSE (KEXI_MOBILE)
   LIST(APPEND kexiextendedwidgets_LIB_SRCS
-    kexidataawareview.cpp 
-    kexidatatable.cpp 
     kexiscrollview.cpp 
     kexidbconnectionwidget.cpp 
   #   pixmapcollection.cpp 
diff --git a/kexi/widget/dataviewcommon/KexiTableViewColumn.h \
b/kexi/widget/dataviewcommon/KexiTableViewColumn.h index 9d9d730..8237fb7 100644
--- a/kexi/widget/dataviewcommon/KexiTableViewColumn.h
+++ b/kexi/widget/dataviewcommon/KexiTableViewColumn.h
@@ -42,7 +42,7 @@ class KexiTableViewData;
 
 
 /*! Single column definition. */
-class KEXIDATATABLE_EXPORT KexiTableViewColumn
+class KEXIDATAVIEWCOMMON_EXPORT KexiTableViewColumn
 {
 public:
     typedef QList<KexiTableViewColumn*> List;
diff --git a/kexi/widget/dataviewcommon/kexidataawareobjectiface.cpp \
b/kexi/widget/dataviewcommon/kexidataawareobjectiface.cpp index 6c381e4..9cbab47 \
                100644
--- a/kexi/widget/dataviewcommon/kexidataawareobjectiface.cpp
+++ b/kexi/widget/dataviewcommon/kexidataawareobjectiface.cpp
@@ -155,14 +155,16 @@ void KexiDataAwareObjectInterface::setData(KexiTableViewData \
*data, bool owner)  }
         }
     }
+    
     if (m_verticalHeader) {
         m_verticalHeader->clear();
         if (m_data)
             m_verticalHeader->addLabels(m_data->count());
     }
+//!Change the following:
     if (m_data && m_data->count() == 0 && m_navPanel)
         m_navPanel->setCurrentRecordNumber(0 + 1);
-
+    
     if (m_data && !theSameData) {
 //! @todo: store sorting settings?
         setSorting(-1);
diff --git a/kexi/widget/dataviewcommon/kexidataawareobjectiface.h \
b/kexi/widget/dataviewcommon/kexidataawareobjectiface.h index 3caaf8c..960ca02 100644
--- a/kexi/widget/dataviewcommon/kexidataawareobjectiface.h
+++ b/kexi/widget/dataviewcommon/kexidataawareobjectiface.h
@@ -42,7 +42,7 @@ class KMenu;
 class KexiTableViewData;
 class KexiRecordMarker;
 class KexiTableViewHeader;
-class KexiRecordNavigatorIFace;
+class KexiRecordNavigatorIface;
 #include <core/kexidataiteminterface.h>
 
 namespace KexiDB
@@ -68,7 +68,7 @@ class RecordData;
  This is not performed in KexiDataAwareObjectInterface because you may need
  to access m_data in your desctructor.
 */
-class KEXIDATATABLE_EXPORT KexiDataAwareObjectInterface
+class KEXIDATAVIEWCOMMON_EXPORT KexiDataAwareObjectInterface
 {
 public:
     KexiDataAwareObjectInterface();
@@ -869,12 +869,8 @@ protected:
     KexiDataItemInterface *m_editor;
 //  KexiTableEdit *m_editor;
 
-#ifdef KEXI_MOBILE
     /*! Navigation panel, used if navigationPanelEnabled is true. */
-    KexiRecordNavigatorIFace *m_navPanel; //!< main navigation widget
-#else
-    KexiRecordNavigatore *m_navPanel; //!< main navigation widget
-#endif
+    KexiRecordNavigatorIface *m_navPanel; //!< main navigation widget
 
     bool m_navPanelEnabled;
 
diff --git a/kexi/widget/dataviewcommon/kexidataawarepropertyset.h \
b/kexi/widget/dataviewcommon/kexidataawarepropertyset.h index 364e04b..df72653 100644
--- a/kexi/widget/dataviewcommon/kexidataawarepropertyset.h
+++ b/kexi/widget/dataviewcommon/kexidataawarepropertyset.h
@@ -53,7 +53,7 @@ class KexiDataAwareObjectInterface;
  - signalling via KexiView::propertySetSwitched() that current property
    set has changed (e.g. on moving to other row)
 */
-class KEXIDATATABLE_EXPORT KexiDataAwarePropertySet : public QObject
+class KEXIDATAVIEWCOMMON_EXPORT KexiDataAwarePropertySet : public QObject
 {
     Q_OBJECT
 
diff --git a/kexi/widget/dataviewcommon/kexidataawareview.h \
b/kexi/widget/dataviewcommon/kexidataawareview.h index e6f6454..741647d 100644
--- a/kexi/widget/dataviewcommon/kexidataawareview.h
+++ b/kexi/widget/dataviewcommon/kexidataawareview.h
@@ -39,7 +39,7 @@ class KexiSharedActionClient;
  The view also implements KexiSearchAndReplaceViewInterface to support \
search/replace features  used by shared KexiFindDialog.
 */
-class KEXIEXTWIDGETS_EXPORT KexiDataAwareView : public KexiView,
+class KEXIDATAVIEWCOMMON_EXPORT KexiDataAwareView : public KexiView,
             public KexiSearchAndReplaceViewInterface
 {
     Q_OBJECT
diff --git a/kexi/widget/dataviewcommon/kexidataprovider.cpp \
b/kexi/widget/dataviewcommon/kexidataprovider.cpp index 17a800f..225009b 100644
--- a/kexi/widget/dataviewcommon/kexidataprovider.cpp
+++ b/kexi/widget/dataviewcommon/kexidataprovider.cpp
@@ -25,9 +25,6 @@
 #include <klocale.h>
 
 #include "kexitableviewdata.h"
-#ifndef KEXI_MOBILE
-#include "kexicomboboxbase.h"
-#endif
 #include <kexidb/queryschema.h>
 #include <kexiutils/utils.h>
 #include <kexi_global.h>
@@ -293,15 +290,13 @@ void KexiFormDataProvider::invalidateDataSources(const \
                QSet<QString>& invalidSou
                 KexiDB::QueryColumnInfo *visibleColumnInfo = fieldsExpanded[ \
indexForVisibleLookupValue ];  if (visibleColumnInfo) {
                     item->setVisibleColumnInfo(visibleColumnInfo);
-#ifndef KEXI_MOBILE
-                    if (dynamic_cast<KexiComboBoxBase*>(item) && m_mainWidget
-                            && \
dynamic_cast<KexiComboBoxBase*>(item)->internalEditor()) { +
+                    if (item->isComboBox() && m_mainWidget && \
                item->internalEditor()) {
                         // m_mainWidget (dbform) should filter the (just created \
                using setVisibleColumnInfo())
                         // combo box' internal editor (actually, only if the combo \
                is in 'editable' mode)
-                        dynamic_cast<KexiComboBoxBase*>(item)->internalEditor()
-                        ->installEventFilter(m_mainWidget);
+                        item->internalEditor()->installEventFilter(m_mainWidget);
                     }
-#endif
+
                     kDebug() << " ALSO SET visibleColumn=" << \
                visibleColumnInfo->debugString()
                         << "\n at position " << indexForVisibleLookupValue;
                 }
diff --git a/kexi/widget/dataviewcommon/kexidataprovider.h \
b/kexi/widget/dataviewcommon/kexidataprovider.h index 3610f73..6ce8384 100644
--- a/kexi/widget/dataviewcommon/kexidataprovider.h
+++ b/kexi/widget/dataviewcommon/kexidataprovider.h
@@ -41,7 +41,7 @@ class RecordData;
  return ("name", "surname") list, so the cursor's query can be simplified
  and thus more effective.
 */
-class KEXIFORMUTILS_EXPORT KexiFormDataProvider : public KexiDataItemChangesListener
+class KEXIDATAVIEWCOMMON_EXPORT KexiFormDataProvider : public \
KexiDataItemChangesListener  {
 public:
     KexiFormDataProvider();
diff --git a/kexi/widget/dataviewcommon/kexiformdataiteminterface.h \
b/kexi/widget/dataviewcommon/kexiformdataiteminterface.h index b8e2986..e59f94f \
                100644
--- a/kexi/widget/dataviewcommon/kexiformdataiteminterface.h
+++ b/kexi/widget/dataviewcommon/kexiformdataiteminterface.h
@@ -30,7 +30,7 @@ class Field;
 }
 
 //! An interface for declaring form widgets to be data-aware.
-class KEXIEXTWIDGETS_EXPORT KexiFormDataItemInterface : public KexiDataItemInterface
+class KEXIDATAVIEWCOMMON_EXPORT KexiFormDataItemInterface : public \
KexiDataItemInterface  {
 public:
     KexiFormDataItemInterface();
diff --git a/kexi/widget/dataviewcommon/kexitableviewdata.h \
b/kexi/widget/dataviewcommon/kexitableviewdata.h index 225d1c3..6f89308 100644
--- a/kexi/widget/dataviewcommon/kexitableviewdata.h
+++ b/kexi/widget/dataviewcommon/kexitableviewdata.h
@@ -44,7 +44,7 @@ typedef KexiUtils::AutodeletedList<KexiDB::RecordData*> \
KexiTableViewDataBase;  Original author: Till Busch.
   Reimplemented by Jarosław Staniek.
 */
-class KEXIDATATABLE_EXPORT KexiTableViewData : public QObject, protected \
KexiTableViewDataBase +class KEXIDATAVIEWCOMMON_EXPORT KexiTableViewData : public \
QObject, protected KexiTableViewDataBase  {
     Q_OBJECT
 
diff --git a/kexi/widget/tableview/CMakeLists.txt \
b/kexi/widget/tableview/CMakeLists.txt index 48be3f6..47ec77f 100644
--- a/kexi/widget/tableview/CMakeLists.txt
+++ b/kexi/widget/tableview/CMakeLists.txt
@@ -22,7 +22,7 @@ set(kexidatatable_LIB_SRCS
    kexidatetimetableedit.cpp 
    kexitextformatter.cpp
    kexitableviewheader.cpp
-   
+   kexidatatable.cpp  
 )
 
 
@@ -30,6 +30,7 @@ kde4_add_library(kexidatatable SHARED ${kexidatatable_LIB_SRCS})
 
 target_link_libraries(
     kexidatatable
+    kexidataviewcommon
     kexicore
     kexiutils
     kexiguiutils
diff --git a/kexi/widget/tableview/kexicelleditorfactory.cpp \
b/kexi/widget/tableview/kexicelleditorfactory.cpp index 8dc60bf..1e0ed66 100644
--- a/kexi/widget/tableview/kexicelleditorfactory.cpp
+++ b/kexi/widget/tableview/kexicelleditorfactory.cpp
@@ -25,7 +25,7 @@
 
 #include <kexidb/indexschema.h>
 #include <kexidb/tableschema.h>
-#include "kexitableviewdata.h"
+#include <widget/dataviewcommon/kexitableviewdata.h>
 #ifdef __GNUC__
 #warning TODO reenable #include "kexidatetableedit.h"
 #else
diff --git a/kexi/widget/tableview/kexicomboboxbase.cpp \
b/kexi/widget/tableview/kexicomboboxbase.cpp index 7898648..88411cc 100644
--- a/kexi/widget/tableview/kexicomboboxbase.cpp
+++ b/kexi/widget/tableview/kexicomboboxbase.cpp
@@ -27,7 +27,7 @@
 #include "kexicomboboxbase.h"
 #include <widget/utils/kexicomboboxdropdownbutton.h>
 #include "kexicomboboxpopup.h"
-//#include "kexitableview.h"
+#include "kexitableview.h"
 #include "kexi.h"
 
 #include <klineedit.h>
diff --git a/kexi/widget/tableview/kexicomboboxbase.h \
b/kexi/widget/tableview/kexicomboboxbase.h index decee98..ca0f756 100644
--- a/kexi/widget/tableview/kexicomboboxbase.h
+++ b/kexi/widget/tableview/kexicomboboxbase.h
@@ -22,7 +22,7 @@
 #define _KEXICOMBOBOXBASE_H_
 
 #include "kexidb/field.h"
-//#include "kexiinputtableedit.h"
+#include "kexiinputtableedit.h"
 #include <kexidb/lookupfieldschema.h>
 #include <kexiutils/tristate.h>
 
diff --git a/kexi/widget/tableview/kexicomboboxtableedit.h \
b/kexi/widget/tableview/kexicomboboxtableedit.h index c452d6c..cf3606d 100644
--- a/kexi/widget/tableview/kexicomboboxtableedit.h
+++ b/kexi/widget/tableview/kexicomboboxtableedit.h
@@ -35,7 +35,7 @@ class KexiTableViewColumn;
 
 /*! @short Drop-down cell editor.
 */
-class KexiComboBoxTableEdit : public KexiInputTableEdit, public KexiComboBoxBase
+class KexiComboBoxTableEdit : public KexiInputTableEdit, virtual public \
KexiComboBoxBase  {
     Q_OBJECT
 
diff --git a/kexi/widget/tableview/kexidataawareobjectiface.h \
b/kexi/widget/tableview/kexidataawareobjectiface.h new file mode 100644
index 0000000..e69de29
diff --git a/kexi/widget/tableview/kexidatatable.h \
b/kexi/widget/tableview/kexidatatable.h index be52e44..4637ec9 100644
--- a/kexi/widget/tableview/kexidatatable.h
+++ b/kexi/widget/tableview/kexidatatable.h
@@ -22,7 +22,7 @@
 #ifndef KEXIDATATABLE_H
 #define KEXIDATATABLE_H
 
-#include "kexidataawareview.h"
+#include <widget/dataviewcommon/kexidataawareview.h>
 
 class KexiDataTableView;
 class KexiTableView;
@@ -39,7 +39,7 @@ class Cursor;
  or from KexiDB-compatible database source.
  @see KexiFormView
 */
-class KEXIEXTWIDGETS_EXPORT KexiDataTable : public KexiDataAwareView
+class KEXIDATATABLE_EXPORT KexiDataTable : public KexiDataAwareView
 {
     Q_OBJECT
 
diff --git a/kexi/widget/tableview/kexitableedit.cpp \
b/kexi/widget/tableview/kexitableedit.cpp index cd26d18..a83f6c9 100644
--- a/kexi/widget/tableview/kexitableedit.cpp
+++ b/kexi/widget/tableview/kexitableedit.cpp
@@ -19,7 +19,7 @@
  */
 
 #include "kexitableedit.h"
-#include "kexidataawareobjectiface.h"
+#include <widget/dataviewcommon/kexidataawareobjectiface.h>
 #include <kexidb/field.h>
 #include <kexidb/utils.h>
 
diff --git a/kexi/widget/tableview/kexitableview.cpp \
b/kexi/widget/tableview/kexitableview.cpp index 5da3f86..5592cb0 100644
--- a/kexi/widget/tableview/kexitableview.cpp
+++ b/kexi/widget/tableview/kexitableview.cpp
@@ -118,7 +118,7 @@ public:
         //const int bottomMargin = m_tv->d->appearance.navigatorEnabled ? \
                m_tv->m_navPanel->height() : 0;
         if (KexiUtils::hasParent(m_tv->verticalHeader(), m_tv->childAt(pos))) {
             return i18n("Contains a pointer to the currently selected row");
-        } else if (KexiUtils::hasParent(m_tv->m_navPanel, m_tv->childAt(pos))) {
+        } else if (KexiUtils::hasParent(dynamic_cast<QObject*>(m_tv->m_navPanel), \
m_tv->childAt(pos))) {  return i18n("Row navigator");
 //    return QWhatsThis::textFor(m_tv->m_navPanel, QPoint( pos.x(), pos.y() - \
m_tv->height() + bottomMargin ));  }
@@ -371,9 +371,9 @@ void KexiTableView::setupNavigator()
     updateScrollBars();
 
     m_navPanel = new KexiRecordNavigator(this, this, leftMargin());
-    m_navPanel->setObjectName("navPanel");
+    navPanelWidget()->setObjectName("navPanel");
     m_navPanel->setRecordHandler(this);
-    m_navPanel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
+    navPanelWidget()->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
 }
 
 void KexiTableView::initDataContents()
@@ -539,7 +539,7 @@ QSize KexiTableView::sizeHint() const
 {
     const QSize &ts = tableSize();
     int w = qMax(ts.width() + leftMargin() + verticalScrollBar()->sizeHint().width() \
                + 2 * 2,
-                 (m_navPanel->isVisible() ? m_navPanel->width() : 0));
+                 (navPanelWidget()->isVisible() ? navPanelWidget()->width() : 0));
     int h = qMax(ts.height() + topMargin() + \
horizontalScrollBar()->sizeHint().height(),  minimumSizeHint().height());
     w = qMin(w, qApp->desktop()->availableGeometry(this).width() * 3 / 4); //stretch
@@ -561,7 +561,7 @@ QSize KexiTableView::minimumSizeHint() const
 {
     return QSize(
                leftMargin() + ((columns() > 0) ? columnWidth(0) : \
                KEXI_DEFAULT_DATA_COLUMN_WIDTH) + 2*2,
-               d->rowHeight*5 / 2 + topMargin() + (m_navPanel && \
m_navPanel->isVisible() ? m_navPanel->height() : 0) +                 d->rowHeight*5 \
/ 2 + topMargin() + (m_navPanel && navPanelWidget()->isVisible() ? \
navPanelWidget()->height() : 0)  );
 }
 
@@ -1028,7 +1028,7 @@ void KexiTableView::paintEmptyArea(QPainter *p, int cx, int cy, \
int cw, int ch)  ? horizontalScrollBar()->sizeHint().height() : 0;
 
     reg = reg.subtract(QRect(QPoint(0, 0), ts
-                             - QSize(0, qMax(((m_navPanel && \
m_navPanel->isVisible()) ? m_navPanel->height() : 0), scrollBarHeight) +    - \
QSize(0, qMax(((m_navPanel && navPanelWidget()->isVisible()) ? \
                navPanelWidget()->height() : 0), scrollBarHeight)
                                      /*- (horizontalScrollBar()->isVisible() ? \
                horizontalScrollBar()->sizeHint().height() / 2 : 0)
                                      + (horizontalScrollBar()->isVisible() ? 0 :
                                         d->internal_bottomMargin
@@ -2053,9 +2053,9 @@ void KexiTableView::ensureCellVisible(int row, int col/*=-1*/)
         }
       }*/
 
-    if (m_navPanel && m_navPanel->isVisible() && horizontalScrollBar()->isHidden()) \
{ +    if (m_navPanel && navPanelWidget()->isVisible() && \
                horizontalScrollBar()->isHidden()) {
         //a hack: for visible navigator: increase height of the visible rect 'r'
-        r.setBottom(r.bottom() + m_navPanel->height());
+        r.setBottom(r.bottom() + navPanelWidget()->height());
     }
 
     QPoint pcenter = r.center();
@@ -2606,7 +2606,7 @@ void KexiTableView::setAppearance(const Appearance& a)
     if (a.rowHighlightingEnabled)
         m_updateEntireRowWhenMovingToOtherRow = true;
 
-    m_navPanel->setVisible(a.navigatorEnabled);
+    navPanelWidget()->setVisible(a.navigatorEnabled);
     d->highlightedRow = -1;
 //! @todo is setMouseTracking useful for other purposes?
     viewport()->setMouseTracking(a.rowMouseOverHighlightingEnabled);
@@ -2666,4 +2666,9 @@ void KexiTableView::slotContentsMoving(int x, int y)
     updateContents(); // (js) needed in Qt 4, no idea why, this fix consumed me \
hours  }*/
 
+QWidget* KexiTableView::navPanelWidget() const
+{
+    return dynamic_cast<QWidget*>(m_navPanel);
+}
+
 #include "kexitableview.moc"
diff --git a/kexi/widget/tableview/kexitableview.h \
b/kexi/widget/tableview/kexitableview.h index 40a043f..2db532c 100644
--- a/kexi/widget/tableview/kexitableview.h
+++ b/kexi/widget/tableview/kexitableview.h
@@ -677,6 +677,8 @@ protected:
 // //! Called to repaint contents after a row is deleted.
 // void repaintAfterDelete();
 
+    QWidget* navPanelWidget() const;
+    
     KexiTableViewPrivate * const d;
 
     class WhatsThis;
diff --git a/kexi/widget/utils/kexirecordnavigator.h \
b/kexi/widget/utils/kexirecordnavigator.h index 2a504fc..90227e5 100644
--- a/kexi/widget/utils/kexirecordnavigator.h
+++ b/kexi/widget/utils/kexirecordnavigator.h
@@ -54,7 +54,7 @@ public:
     virtual long currentRecord() { return 0; }
 };
 
-class KEXIGUIUTILS_EXPORT KexiRecordNavigatorIFace
+class KEXIGUIUTILS_EXPORT KexiRecordNavigatorIface
 {
 public:
     /*! Sets current record number for this navigator,
@@ -74,6 +74,25 @@ public:
     /*! Sets visibility of "inserting" button. */
     virtual void setInsertingButtonVisible(bool set) = 0;
     
+    /*! Sets record navigator handler. This allows to react
+     o n actions performed within navigator and vice versa. */
+    virtual void setRecordHandler(KexiRecordNavigatorHandler *handler) = 0;
+  
+    /*! Shows or hides "editing" indicator. */
+    virtual void showEditingIndicator(bool show) = 0;
+    
+    /*! Sets horizontal bar's \a hbar (at the bottom) geometry so this record \
navigator +     i s properly positioned together with horizontal scroll bar. This \
me*thod is used +     in QScrollView::setHBarGeometry() implementations:
+     see KexiTableView::setHBarGeometry() and KexiFormScrollView::setHBarGeometry()
+    for usage examples. */
+    virtual void setHBarGeometry(QScrollBar & hbar, int x, int y, int w, int h) = 0;
+    
+    virtual void updateGeometry(int leftMargin) = 0;
+    
+    /*! Sets label text at the left of the for record navigator's button.
+     By default this label contains transla*ted "Row:" text. */
+    virtual void setLabelText(const QString& text) = 0;
 };
 
 #ifndef KEXI_MOBILE
@@ -92,7 +111,7 @@ public:
     Note that using this method 2), you can create more than one navigator widget
     connected with your data-aware object (does not matter if this is useful).
  */
-class KEXIGUIUTILS_EXPORT KexiRecordNavigator : public QWidget, public \
KexiRecordNavigatorIFace +class KEXIGUIUTILS_EXPORT KexiRecordNavigator : public \
QWidget, public KexiRecordNavigatorIface  {
     Q_OBJECT
 
@@ -129,7 +148,7 @@ public:
      in QScrollView::setHBarGeometry() implementations:
      see KexiTableView::setHBarGeometry() and KexiFormScrollView::setHBarGeometry()
      for usage examples. */
-    void setHBarGeometry(QScrollBar & hbar, int x, int y, int w, int h);
+    virtual void setHBarGeometry(QScrollBar & hbar, int x, int y, int w, int h);
 
     /*! @internal used for keyboard handling. */
     virtual bool eventFilter(QObject *o, QEvent *e);
@@ -169,7 +188,7 @@ public slots:
     void setEditingIndicatorEnabled(bool set);
 
     /*! Shows or hides "editing" indicator. */
-    void showEditingIndicator(bool show);
+    virtual void showEditingIndicator(bool show);
 
     virtual void setEnabled(bool set);
 
@@ -184,11 +203,11 @@ public slots:
      By default count is 0. */
     virtual void setRecordCount(uint count);
 
-    void updateGeometry(int leftMargin);
+    virtual void updateGeometry(int leftMargin);
 
     /*! Sets label text at the left of the for record navigator's button.
      By default this label contains translated "Row:" text. */
-    void setLabelText(const QString& text);
+    virtual void setLabelText(const QString& text);
 
     void setButtonToolTipText(KexiRecordNavigator::Button, const QString&);
 signals:


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic