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

List:       kde-core-devel
Subject:    KDM + Interface Modules
From:       "Nicholas Hagen" <tommy () zidnet ! net>
Date:       2002-07-19 21:40:26
[Download RAW message or body]

Not sure which email list to throw this at, but I have been hacking away =
at the KDM source in order to make myself a new interface, since I got =
bored with the older one.  I also noted that according to the KDE 3.1 =
Feature Plan, Chris Howells was supposedly working on something similar =
in order to use UI files from QT Designer.  I am not sure what he has =
implemented, but seemingly nothing has been done in the HEAD of CVS as I =
have been compiling and building from that.  Nonetheless, if anyone is =
interested in seeing the code or wants more information, let me know and =
I can let you know the information you need.  I am also not on the =
mailing list, so please include me in any replies.

To get to the point, here is so far what I have implemented or plan to =
implement:

- Made new library libkdm in the kdelibs directory (kdelibs/kdm).
    - This library includes generic classes for the following classes:
        - KDMWindow: The main dialog window to be shown.  KGreeter now =
inherits this class rather than FDialog.  The class also contains the =
functionality for loading the KDMWidget modules.
        - KDMWidget: The main widget module that is used within =
KDMWindow to generate the view.  This is the class that is inherited by =
each module in order to create a custom KDM module.  KDMWindow basically =
just has a QHBoxLayout with one widget, that being the KDMWidget or the =
class inherited from it.
        - KDMConfig: The base class that provides the structure for KDM =
options.  This class is used by KDMWindow and KDMWidget in order for the =
user to layout the correct information according to the configuration.  =
Actual reading/writing the configuration is handled by the actual KDM =
code within kdebase/kdm

- Changed KDMConfig class in kdebase/kdm/kfrontend/kdm_greet to =
KDMConfiguration : public KDMConfig.  This class does the same as =
before, but inherits from KDMConfig so that KDMWidget and KDMWindow =
correctly use it.

- In process of fully changing KGreeter to use KDMWindow and its =
functionality.

- In process of fully moving the UI code from KGreeter into KTraditional =
that inherits from KDMWidget in order to create the traditional look.  =
KTraditional, however, is compiled into KDM itself, instead of a module, =
in order that a UI always exists for the user in case no modules exist.  =
Most of this code has not been ported, but I have a small portion in =
order to compile and test that KDM correctly loads it

- In process of creating a module library Klassic that inherits from =
KDMWidget, but is not compiled into KDM.  I think that all these plugins =
for future modules should eventually go into kdeaddons if anyone thinks =
this implementation is worth it.  This module is very generic right now, =
but is able to be installed as a library and then loaded by KGreeter and =
KDMWindow on the fly.

This isn't the same route that Chris was taking as he was dealing with =
UI files, although I think it might be easy to add that functionality as =
well and just create a default module based on the UI that would be =
loaded by KDM.

Now what has not been done and prolly needs to be done:

- The KDM configuration needs a way to save the module name that should =
be loaded.  This module will then prolly have a .desktop file associated =
to it which will contain the library name and create function.  This =
code would be done similar to how KCModule is handled for KControl =
modules.  Currently I do not read any .desktop files and I just have a =
hardcoded library name supplied that gets loaded, and if that load =
fails, then the default gets loaded.

- Source would need to be added to the KControl KDM module in order for =
the user to see a list of KDM modules that exist as well as select the =
module they wish to use.

- The API for the kdelibs/kdm library needs to be finalized in order =
that it provides all the functions necessary for the main Widget and =
main Window to correctly work effectively.  Most of the functions in =
these classes are pure virtual calls so that inherited classes must =
define them.

Anyways, let me know what anyone thinks.

Thanks,
Nicholas Hagen
tommy@zidnet.net

[Attachment #3 (text/html)]

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2713.1100" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Not sure which email list to throw this at, but I 
have been hacking away at the KDM source in order to make myself a new 
interface, since I got bored with the older one.&nbsp; I also noted that 
according to the KDE 3.1 Feature Plan, Chris Howells was supposedly working on 
something similar in order to use UI files from QT Designer.&nbsp; I am not sure 
what he has implemented, but seemingly nothing has been done in the HEAD of CVS 
as I have been compiling and building from that.&nbsp; Nonetheless, if anyone is 
interested in seeing the code or wants more information, let me know and I can 
let you know the information you need.&nbsp; I am also not on the mailing list, 
so please include me in any replies.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>To get to the point, here is so far what I have 
implemented or plan to implement:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>- Made new library libkdm in the kdelibs directory 
(kdelibs/kdm).</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; - This library includes generic 
classes for the following classes:</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; - KDMWindow: 
The main dialog window to be shown.&nbsp; KGreeter now inherits this class 
rather than FDialog.&nbsp; The class also contains the functionality for loading 
the KDMWidget modules.</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; - KDMWidget: 
The main widget module that is used within KDMWindow to generate the view.&nbsp; 
This is the class that is inherited by each module in order to create a custom 
KDM module.&nbsp; KDMWindow basically just has a QHBoxLayout with one widget, 
that being the KDMWidget or the class inherited from it.</FONT></DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; - KDMConfig: 
The base class that provides the structure for KDM options.&nbsp; This class is 
used by KDMWindow and KDMWidget in order for the user to layout the correct 
information according to the configuration.&nbsp; Actual reading/writing the 
configuration is handled by the actual KDM code within kdebase/kdm</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>- Changed KDMConfig class in 
kdebase/kdm/kfrontend/kdm_greet to KDMConfiguration : public KDMConfig.&nbsp; 
This class does the same as before, but inherits from KDMConfig so that 
KDMWidget and KDMWindow correctly use it.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>- In process of fully changing KGreeter to use 
KDMWindow and its functionality.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>- In process of fully moving the UI code from 
KGreeter into KTraditional that inherits from KDMWidget in order to create the 
traditional look.&nbsp; KTraditional, however, is compiled into KDM itself, 
instead of a module, in order that a UI always exists for the user in case no 
modules exist.&nbsp; Most of this code has not been ported, but I have a small 
portion in order to compile and test that KDM correctly loads it</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>- In process of creating a module library Klassic 
that inherits from KDMWidget, but is not compiled into KDM.&nbsp; I think that 
all these plugins for future modules should eventually go into kdeaddons if 
anyone thinks this implementation is worth it.&nbsp; This module is very generic 
right now, but is able to be installed as a library and then loaded by KGreeter 
and KDMWindow on the fly.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>This isn't the same route that Chris was taking as 
he was dealing with UI files, although I think it might be easy to add that 
functionality as well and just create a default module based on the UI that 
would be loaded by KDM.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Now what has not been done and prolly needs to be 
done:</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>- The KDM configuration needs a way to save the 
module name that should be loaded.&nbsp; This module will then prolly have a 
.desktop file associated to it which will contain the library name and create 
function.&nbsp; This code would be done similar to how KCModule is handled for 
KControl modules.&nbsp; Currently I do not read any .desktop files and I just 
have a hardcoded library name supplied that gets loaded, and if that load fails, 
then the default gets loaded.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>- Source would need to be added to the KControl KDM 
module in order for the user to see a list of KDM modules that exist as well as 
select the module they wish to use.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>- The API for the kdelibs/kdm library needs to be 
finalized in order that it provides all the functions necessary for the main 
Widget and main Window to correctly work effectively.&nbsp; Most of the 
functions in these classes are pure virtual calls so that inherited classes must 
define them.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Anyways, let me know what anyone 
thinks.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>Thanks,</FONT></DIV>
<DIV><FONT face=Arial size=2>Nicholas Hagen</FONT></DIV>
<DIV><FONT face=Arial size=2><A 
href="mailto:tommy@zidnet.net">tommy@zidnet.net</A></FONT></DIV></BODY></HTML>


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

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