X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=simple-launcher.cc;h=1b35150257c9779fff2cc781137b429a61224211;hb=refs%2Fheads%2Fsvn%2Ftags%2F0.9.5;hp=e74e1ab9090152b631170142eb8d56dad49df105;hpb=1337cf8beab135192ebd9f6d382df75a27eefc9c;p=simple-launcher diff --git a/simple-launcher.cc b/simple-launcher.cc index e74e1ab..1b35150 100644 --- a/simple-launcher.cc +++ b/simple-launcher.cc @@ -27,7 +27,6 @@ #include #include "launcher-item.h" -#include "sla-list.h" #include "launchable-item.h" #include "settings-dialog.h" #include "gconf-wrapper.h" @@ -83,7 +82,6 @@ private: GConfBooleanOption myTransparent; // bool myShowInfobanner; // FIXME: to implement GConfIntegerOption myIconSize; - GConfIntegerOption myCanvasSize; static char *ourDirs[]; }; @@ -137,7 +135,7 @@ char *SimpleLauncherApplet::ourDirs[] = { }; // SimpleLauncherApplet::SimpleLauncherApplet() : myMainSettings(myClient.getKey(SL_APPLET_GCONF_PATH)), myContext(NULL), myWidget(NULL), myParent(NULL) { -SimpleLauncherApplet::SimpleLauncherApplet(const GConfKey& base) : myContext(NULL), myWidget(NULL), myParent(NULL), myTransparent(base, "transparent", true), myIconSize(base, "icon_size", 48), myCanvasSize(base, "canvas_size", 1) { +SimpleLauncherApplet::SimpleLauncherApplet(const GConfKey& base) : myContext(NULL), myWidget(NULL), myParent(NULL), myTransparent(base, "transparent", true), myIconSize(base, "icon_size", 26) { } bool SimpleLauncherApplet::doInit(void *state_data, int *state_size) { @@ -157,12 +155,13 @@ bool SimpleLauncherApplet::doInit(void *state_data, int *state_size) { SimpleLauncherApplet::~SimpleLauncherApplet() { myItems.clear(); - +#if 0 + // This does not seem to be necessary if (myWidget != NULL) { gtk_widget_destroy(myWidget); myWidget = NULL; } - +#endif if (myContext != NULL) { osso_deinitialize(myContext); myContext = NULL; @@ -185,11 +184,18 @@ void SimpleLauncherApplet::addItem(LauncherItems& items, const std::string& name } } -// FIXME: this probably should be done somehow differently -static char *configFileName="/home/user/.slarc"; +static const gchar *getConfigFileName() { + static gchar *configFileName = NULL; + + if (configFileName == NULL) { + configFileName = g_build_filename(g_get_home_dir(), ".slarc", NULL); + } + + return configFileName; +} void SimpleLauncherApplet::loadConfig() { - std::ifstream config(configFileName); + std::ifstream config(getConfigFileName()); if (config) { char *buffer = new char [1024]; @@ -204,13 +210,13 @@ void SimpleLauncherApplet::loadConfig() { addItem(myItems, buffer, (p != NULL && (*p == '1' || *p == 'y' || *p == 'Y'))); } - delete buffer; + delete [] buffer; } } void SimpleLauncherApplet::saveConfig() { // TODO: make saving config an atomic operation - std::ofstream config(configFileName); + std::ofstream config(getConfigFileName()); if (config) { for (size_t i = 0 ; i < myItems.size() ; ++i) { @@ -250,7 +256,7 @@ void SimpleLauncherApplet::processDirectory(LauncherItems& items, const std::str } bool SimpleLauncherApplet::initWidget() { - myWidget = gtk_hbox_new(false, 0); + myWidget = gtk_hbox_new(false, 2); if (myWidget != NULL) { updateWidget(); @@ -276,7 +282,6 @@ void SimpleLauncherApplet::updateWidget() { g_signal_connect(button, "button-press-event", G_CALLBACK(_button_pressed), this); gtk_event_box_set_visible_window(GTK_EVENT_BOX(button), !myTransparent.value()); - gtk_container_set_border_width(GTK_CONTAINER(button), myCanvasSize.value()); { GdkPixbuf *pixbuf = item->getIcon(myIconSize.value()); @@ -296,7 +301,7 @@ void SimpleLauncherApplet::updateWidget() { g_object_unref(G_OBJECT(group)); - int totalSize = myIconSize.value()+2*myCanvasSize.value(); + int totalSize = myIconSize.value(); if (button_no == 0) { gtk_widget_set_size_request(myWidget, totalSize, totalSize); @@ -354,11 +359,14 @@ void SimpleLauncherApplet::runDialog() { LauncherItems newItems = myItems; - SettingsDialog dialog(myParent, newItems); + // TODO: make it nicer... this code is ugly :( + SettingsDialog dialog(myParent, newItems, myTransparent, myIconSize); switch (dialog.run()) { case GTK_RESPONSE_OK: myItems = newItems; + dialog.updateValues(); // FIXME: hackish :( make it better + saveConfig(); // save it immediately! updateWidget(); break; @@ -369,6 +377,8 @@ void SimpleLauncherApplet::runDialog() { default: ; // FIXME: do I want to do anything in here? } + + // newItems.clear(); // TODO: do I really need it? } // vim:ts=2:sw=2:et