LINUX.ORG.RU

Сообщения xterro

 

Mercurial, ответвление и bitbucket.org

ДВС, в своём проекте дал команду hg branch mv, затем hg commit - m «bla-bla» по идее должна была создаться новая ветка, она и создалась, команда hg branches показывает две ветки mv и default. Затем я выгружаю свой проект на bitbucket.org(hg push https://bitbucket.org/...) и смотрю там вкладку Changesets, но там как шла «одна линия» без ответвлений, так и идёт, хотя как я понимаю, должно быть нарисовано ответвление, а его нет, почему, может не так ветку создал, или так и должно быть?

xterro
()

Как подключить старую хому?

Доброго времени суток, переустанавливал linux и при установке забыл указать один свой раздел(sda3) как домашний(на этом разделе находилась моя /home, со всеми файлами), после установки оказалось, что этот раздел болтается 'сам по себе', т.е я его монтирую как отдельный раздел, моя же новая хома создалась на другом разделе(куда я ставил корень /), вот теперь интересует, как вернуть свою хому, т.е как их подменить? Т.е я так понимаю надо прописать раздел в fstab и грохнуть старую папку? Только в fstab каждому разделу присваивается UUID, с этим как быть?

xterro
()

Сломался apt-get...

Скачал с какого-то сайта бинарник Firefox-а(deb пакет), при попытке инсталяции на что-то поругался и не установился, но после этого у меня не устаавливается ни один deb пакет через apt-get, пишет такое:

E: Пакет firefox нуждается в переустановке, но найти архив для него не удалось. E: Внутренняя ошибка при открытии кэша (1). Пожалуйста, сообщите об этом разработчикам.

Хотя если устанавливать через dpkg -i то ошибки такой не выдаёт, в чём проблема?

xterro
()

[GTK+] поддержка прокручивания в собственном виджете

ДВС, клепаю свой контрол, интересует, как сделать поддержку прокручивания? чтобы можно было кинуть его в ScrolledWindow и появились полосы прокрутки. Как я понял нужно добавить в свой виджет пару GtkAdjustment-ов и сделать свои «слоты» для них(судя по докам от scrolledwindow), но что это за слоты, да и в общем, что и как делать?

xterro
()

E17 как вынести иконку на рабочий стол?

ДВС, Собственно сабж, в E17 есть свои средства, или надо стронними пользоваться, по примеру Openbox/Fluxbox? Хочется пару папок выкинуть на раб. стол, для быстрого перемещения :)

xterro
()

Ветка в Mercurial, как это выглядит на диске?

Доброго времени суток! представим такую ситуацию, есть репозитарий repo в ~/projects/repo. В repo 2 папки: src(где сам код) и test(где мелкие тестовые програмульки). В нём делаем всё как полагается hg init, hg add, hg commit. Я захожу в ~/projects/repo/src/ открываю там файлик скажем test.c правлю его, потом делаю коммит. Всё это в основной ветке. Теперь я делаю новую ветку скажем feature: hg branch feature и переключаюсь на неё hg update feature. Снова вносим изменения в файлик и снова коммитим. И так может быть несколько раз. Теперь я хочу поработать со старой веткой, переключаюсь снова на default. Вопрос, что будет с моим файликом(test.c)? Ведь в этой ветке он другой, в этой ветке правок(как в ветке feature)я ещё не вносил. Т.е я зайду в папку ~/projects/repo/src/ открою мой test.c и он будет со всеми моими изменениями, что я внёс для ветки feature? Объясните на пальцах, как всё это будет выглядеть? И как работать с кодом, если я буду прыгать с ветки на ветку, что будет с файлами на диске?

xterro
()

Куча процессов, что есть что?

Доброго всем времени суток, набираю команду ps -A и получаю:


PID TTY          TIME CMD
    1 ?        00:00:00 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:03 ksoftirqd/0
    4 ?        00:00:00 migration/0
    5 ?        00:00:00 watchdog/0
    6 ?        00:00:02 events/0
    7 ?        00:00:00 cpuset
    8 ?        00:00:00 khelper
    9 ?        00:00:00 netns
   10 ?        00:00:00 async/mgr
   11 ?        00:00:00 pm
   12 ?        00:00:00 sync_supers
   13 ?        00:00:00 bdi-default
   14 ?        00:00:00 kintegrityd/0
   15 ?        00:00:00 kblockd/0
   16 ?        00:00:00 kacpid
   17 ?        00:00:00 kacpi_notify
   18 ?        00:00:00 kacpi_hotplug
   19 ?        00:00:00 ata_aux
   20 ?        00:00:00 ata_sff/0
   21 ?        00:00:00 khubd
   22 ?        00:00:00 kseriod
   23 ?        00:00:00 kmmcd
   25 ?        00:00:00 khungtaskd
   26 ?        00:00:00 kswapd0
   27 ?        00:00:00 ksmd
   28 ?        00:00:00 aio/0
   29 ?        00:00:00 ecryptfs-kthrea
   30 ?        00:00:00 crypto/0
   36 ?        00:00:01 scsi_eh_0
   38 ?        00:00:00 scsi_eh_1
   42 ?        00:00:00 kstriped
   43 ?        00:00:00 kmpathd/0
   44 ?        00:00:00 kmpath_handlerd
   45 ?        00:00:00 ksnapd
   46 ?        00:00:04 kondemand/0
   47 ?        00:00:00 kconservative/0
  272 ?        00:00:00 jbd2/sda1-8
  273 ?        00:00:00 ext4-dio-unwrit
  335 ?        00:00:00 upstart-udev-br
  338 ?        00:00:00 udevd
  611 ?        00:00:00 kpsmoused
  629 ?        00:00:00 hci0
  636 ?        00:00:00 scsi_eh_2
  638 ?        00:00:00 usbhid_resumer
  642 ?        00:00:00 usb-storage
  666 ?        00:00:00 cfg80211
  667 ?        00:00:00 pccardd
  712 ?        00:00:00 ipw2200/0
  734 ?        00:00:00 jbd2/sda3-8
  735 ?        00:00:00 ext4-dio-unwrit
  758 ?        00:00:00 i915
  821 ?        00:00:00 rsyslogd
  837 ?        00:00:00 dbus-daemon
  840 ?        00:00:00 NetworkManager
  843 ?        00:00:00 modem-manager
  875 ?        00:00:00 wpa_supplicant
  896 tty4     00:00:00 getty
  900 tty5     00:00:00 getty
  913 tty2     00:00:00 getty
  915 tty3     00:00:00 getty
  917 tty6     00:00:00 getty
  918 ?        00:00:00 acpid
  929 ?        00:00:00 cron
  930 ?        00:00:00 atd
  954 ?        00:00:00 fbguard
  956 ?        00:00:00 fbserver
  979 ?        00:00:00 bluetoothd
  991 ?        00:00:00 l2cap
 1044 ?        00:00:00 apache2
 1046 ?        00:00:01 kslowd000
 1047 ?        00:00:00 apache2
 1048 ?        00:00:00 apache2
 1049 ?        00:00:00 apache2
 1051 ?        00:00:01 kslowd001
 1112 ?        00:00:00 gdm-binary
 1121 ?        00:00:00 console-kit-dae
 1193 ?        00:00:00 gdm-simple-slav
 1199 ?        00:00:00 krfcommd
 1232 tty7     00:03:48 Xorg
 1274 ?        00:00:00 dbus-launch
 1334 tty1     00:00:00 getty
 1343 ?        00:00:00 gdm-session-wor
 1347 ?        00:00:00 hald
 1348 ?        00:00:00 hald-runner
 1374 ?        00:00:00 upowerd
 1403 ?        00:00:00 polkitd
 1444 ?        00:00:00 hald-addon-ipw-
 1445 ?        00:00:00 hald-addon-inpu
 1447 ?        00:00:00 hald-addon-rfki
 1456 ?        00:00:00 hald-addon-cpuf
 1457 ?        00:00:00 hald-addon-acpi
 1462 ?        00:00:01 hald-addon-stor
 1491 ?        00:00:00 gnome-keyring-d
 1510 ?        00:00:00 sh
 1537 ?        00:00:00 ssh-agent
 1540 ?        00:00:00 dbus-launch
 1541 ?        00:00:00 dbus-daemon
 1554 ?        00:00:01 xfce4-session
 1556 ?        00:00:00 xfconfd
 1562 ?        00:00:02 xfwm4
 1563 ?        00:00:00 xfsettingsd
 1564 ?        00:00:05 xfce4-panel
 1565 ?        00:00:00 xfdesktop
 1567 ?        00:00:01 xfce4-settings-
 1569 ?        00:00:00 gam_server
 1574 ?        00:00:00 xfce4-power-man
 1576 ?        00:00:00 nm-applet
 1588 ?        00:00:00 xfce4-volumed
 1592 ?        00:00:00 gvfsd
 1596 ?        00:00:00 gconfd-2
 1598 ?        00:00:00 polkit-gnome-au
 1601 ?        00:00:00 gvfs-fuse-daemo
 1606 ?        00:00:00 xfce4-menu-plug
 1610 ?        00:00:54 pulseaudio
 1612 ?        00:00:00 rtkit-daemon
 1616 ?        00:00:01 notify-osd
 1618 ?        00:00:01 xfce4-terminal
 1624 ?        00:00:00 gnome-pty-helpe
 2700 ?        00:00:27 exaile
 2703 ?        00:00:00 gvfsd-http
 2754 ?        00:00:00 udevd
 2755 ?        00:00:00 udevd
 2774 ?        00:00:00 flush-8:0
 3033 ?        00:00:00 gvfsd-trash
 3035 ?        00:00:00 gvfs-gdu-volume
 3037 ?        00:00:00 udisks-daemon
 3038 ?        00:00:00 udisks-daemon
 3040 ?        00:00:00 gvfs-afc-volume
 3045 ?        00:00:00 gvfs-gphoto2-vo
 3068 ?        00:00:00 mount.ntfs
 3073 ?        00:00:00 flush-8:16
 3076 pts/1    00:00:00 bash
 3112 pts/1    00:00:00 ps


объясните собственно что это за процессы(чего делают, особенно из первых десятков) и какие из них можно убрать(ну кроме apache и fbserver - это я знаю что такое :) ) и собственно как убрать, а то меня почему то смущает такое количество процессов, не знаю почему, но кажется что можно спокойно обойтись без доброй половины из них, а то и 2/3. А то загрузишь какой-нибудь Slitaz смотришь, а там всего десяток процессов и всё работает, тут же кучище непролазное :)

P.S. система Xubuntu 10.10

xterro
()

Lubuntu 10.04 Иногда не завершаются процессы

Доброго всем времени суток... Иногда замечаю, что после того как я закрыл приложение в ps -A оно всё равно болтается, например закрыл Chromium, делаю ps -A смотрю, болтаются все мои «вкладки», приходится принудительно делать им kill, причём это может быть и например с Thunar-ом, пока правда на этих приложениях чаще всего замечал, за другими ещё понаблюдаю, мож кто сталкивался с таким, что это, откуда ноги растут и как лечить?

xterro
()

[textview_expose] Тормоза после скролига...

Доброго всем времени суток... Доделываю простенький текстовый редактор, добавил нумерацию строк для GtkTextView, для этого подцепился к событию expose виджета и в нём рисую номера:

gboolean textview_expose(GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
	GtkTextView * 	textview 	= GTK_TEXT_VIEW(widget);
	GdkWindow 	* 	win ;
	cairo_t 	* 	cr 			= gdk_cairo_create(event->window);	
	GtkTextIter 	iter; 
	int 			layout_width;
	int 			col 		= 5; // line number rectangle will be include 5 digits only 
	int 			margin 		= 5;
	char 		* 	empty_str 	= g_strnfill(col, 0x30);
	int 			yrange;
	int 			line_height;
	PangoLayout * 	layout 		= gtk_widget_create_pango_layout(widget, empty_str);
	g_free (empty_str);
	
	pango_layout_get_pixel_size(layout, &layout_width, NULL);
	gtk_text_view_set_border_window_size(GTK_TEXT_VIEW (textview),
										 GTK_TEXT_WINDOW_LEFT,
										 layout_width+margin);
	
	win = gtk_text_view_get_window(textview, GTK_TEXT_WINDOW_LEFT);
	if (event->window != win)
		return FALSE;
	
	// draw left rectangle for line numbers 
	cairo_set_source_rgb(cr,0.90,0.90,1);
	cairo_set_line_width(cr, 1);
	cairo_rectangle(cr, 0,event->area.y, layout_width+margin, event->area.height);
	cairo_fill_preserve(cr);
	// draw line numbers 
	cairo_set_source_rgb(cr,0.5,0.5,0.5);
	gtk_text_view_get_line_at_y(textview, &iter, event->area.y, NULL); 
	while(!gtk_text_iter_is_end(&iter))  { 
		gtk_text_view_get_line_yrange(textview, &iter, &yrange, &line_height); 
		gtk_text_view_buffer_to_window_coords(textview, GTK_TEXT_WINDOW_TEXT, 0, yrange, NULL, &yrange);
		int line_number = gtk_text_iter_get_line(&iter);  
		char * line_num_str = g_strdup_printf ("%d", line_number+1);
		pango_layout_set_text(layout, line_num_str, -1);
		int ph = pango_layout_get_height(layout);
		int pw = pango_layout_get_width(layout);
		pango_layout_get_pixel_size(layout, &pw, NULL);
		cairo_move_to(cr, layout_width-pw, yrange-ph);
		pango_cairo_show_layout (cr, layout);
		gtk_text_iter_forward_line(&iter); 
		g_free(line_num_str);
	} 
	cairo_destroy(cr);
	return FALSE;
}

TextView лежит в GtkScrolledWindow, код работает, номера строк выводятся, всё в порядке, проблема в том что если я начну скролом крутить вверх-вниз, то через некоторое время начинаются жуткие тормоза, начинает сильно тормозить интерфейс и шуршать винт. Вот думаю что не так сделал, в какую сторону покопать? :)

xterro
()

Что есть интерфейсы на Си?

Доброго всем времени суток, интересует такой вопрос, как реализовать интерфейсы на Си(например как в С++ IApplication), как они вообще реализуются и что это будет, это будет какая-либо структура или просто набор функций? К примеру:

struct IApplication {

   void (*load)(void);
   void (*shutdown)(void);

};

Объясните на пальцах :)

xterro
()

CMake как подключить GTK в проект?

Доброго всем времени суток, пытаюсь перенести проект на cmake, написал простенький скрипт:

cmake_minimum_required (VERSION 2.6) 
 
set (PROJECT sb) 
 
project (${PROJECT}) 

set (HEADERS 
	./src/main_window.h
	./src/main_window_cb.h
	./src/route.h
	./src/draw.h
	./src/values_window.h)
 
set (SOURCES 
	./src/main_window.c
	./src/main_window_cb.c
	./src/route.c
	./src/draw.c
	./src/values_window.c
	./src/sb.c) 
 
add_executable (${PROJECT} ${HEADERS} ${SOURCES} )

но при компиляции ругается что не «видит» хидеров и либов GTK, как их прописать в cmake? Погуглил, но что-то там какие-то страшные решения пишут, как я понял нужно какие-то модули использовать, FindGTK вроде, правда сумбурно себе всё это представляю, что и как, объясните а пальцах :)

xterro
()

И снова GtkTextView как делать подсветку... Какие мысли?

Доброго времени суток, интересуют идеи и мысли по поводу того, как делать подсветку синтаксиса в GtkTextView, я вижу его так: 1) Создаём тег 2) идём по буферу и ищем слова которые нужно подсветить, при это получается что идём(парсим по одной букве). Например так: берём два итератора, начинаем проверять слово, первый итератор ставим вначале слова, второй продвигаем вперёд, при этом проверяем слово, если совпало с нужным(if, else, while... etc) переходим к п.3 если нет, идём дальше. Таким образом эта пара итераторов будет постоянно передвигаться по тексту. 3) Применяем тег к куску буфера «выделенного» итераторами

Соответственно всё это дело оформляем в одну функцию, которая работает со всем текстом в буфере, её можно вызвать при загрузке из файла, а как быть при вводе данных, когда я сам взял и вбил служебное слово(тот же if) на каждое нажатие вызывать эту функцию, чтобы она снова весь буфер шелестила? Или лучше ловить позицию курсора и от неё плясать влево и вправо, смотря что за слово вбиваем(получается способом по п.2).

У кого какие мысли на этот счёт?

xterro
()

[GtkTextView] «Замазываются» номера строк

Доброго времени суток, сделал в gtktextview нумерацию строк, всё работает, но проблема в том что когда я проматываю текст скролом(ползунком сбоку) нумерация «смазывается», номера встают один на другой, стираются и т.д , достаточно развернуть окно или наоборот его свернуть и всё становится нормально, т.е виджет перерисовывается и всё становится ок, gtktextview лежит в gtkscrolledwindow, как лечить? Добавлять в обработчике scroll-child вызов функции отрисовки textview-a?

Вот код события перерисовки gtktextview:

gboolean textview_expose(GtkWidget *widget, GdkEventExpose *event, gpointer data)
{
	cairo_t 	* 	cr 			= gdk_cairo_create(event->window);	
	GtkTextView * 	textview 	= GTK_TEXT_VIEW(widget);
	GtkTextIter 	iter; 
	int 			layout_width;
	int 			col 		= 4; /* line number rectangle will be include 4 digits only */
	int 			margin 		= 5;
	char 		* 	empty_str 	= g_strnfill(col, 0x30);
	int 			yrange;
	int 			line_height;
	PangoLayout * 	layout 		= gtk_widget_create_pango_layout(widget, empty_str);
	
	g_free (empty_str);
	pango_layout_get_pixel_size(layout, &layout_width, NULL);
	gtk_text_view_set_left_margin(GTK_TEXT_VIEW(textview), layout_width+margin+1);
	/* draw left rectangle for line numbers */
	cairo_set_source_rgb(cr,0.85,0.85,1);
	cairo_set_line_width(cr, 1);
	cairo_rectangle(cr, 0,event->area.y, layout_width+margin, event->area.height);
	cairo_fill_preserve(cr);
	/* draw line numbers */
	cairo_set_source_rgb(cr,0.5,0.5,0.5);
	gtk_text_view_get_line_at_y(textview, &iter, event->area.y, NULL); 
	while(!gtk_text_iter_is_end(&iter)) { 
		gtk_text_view_get_line_yrange(textview, &iter, &yrange, &line_height); 
		int line_number = gtk_text_iter_get_line(&iter);  
		char * line_num_str = g_strdup_printf ("%d", line_number+1);
		pango_layout_set_text(layout, line_num_str, -1);
		int ph = pango_layout_get_height(layout);
		int pw = pango_layout_get_width(layout);
		pango_layout_get_pixel_size(layout, &pw, NULL);
		cairo_move_to(cr, layout_width-pw, yrange-ph);
		pango_cairo_show_layout (cr, layout);
		gtk_text_iter_forward_line(&iter); 
		g_free(line_num_str);
	} 
	cairo_destroy(cr);
	return FALSE;
}
xterro
()

[cairo] толщина линии, как лечить?

Доброго времени суток, рисую с помощью каиро линию и устанавливаю её толщину с помощью функции cairo_set_line_width (cr, 1), но это не помогает, линиия всё равно остаётся толстой, мож кто сталкивался с таким, как лечить?

 

xterro
()

[GtkTextView] Как сдвинуть вывод текста?

Hi all! Как в GtkTextView сделать чтобы текст выводился(ну и вводился тоже) не у левого края, а со смещением от него(например на 1 см, в «сантиметре хочу отрисовать полоску с нумерацией строк»)?

xterro
()

[IceWM] Как добавить интерактивность?

Доброго всем времени суток, как в IceWM добавить интерактивность, чтобы менюшки раскрывались по наведению мышки? А то приходится кликать по пункту меню чтобы субменю открыть?

 

xterro
()

bmpanel2 есть ли события?

Доброго всем времени суток, хочу чтобы по нажатию на часики на панельке всплывал календарь, есть ли у bmpanel2 события, чтобы по клику можно было вызвать календарь(или любую другую программку)...

xterro
()

FVWM сколько же он памяти жрёт?

Погуглил тут на досуге, не могу найти нормального сравнения, сколько же памяти есть FWVM, больше аль меньше чем например те же openbox, fluxbox и т.д. Поделитесь своими наблюдениями, как оно? :)

xterro
()

[C] как сделать красиво?

имеется структура

struct A {
    char * text;
    int width;
    int hight;
    ...
    и т.д
}

требуется присвоить значение определённому полю структуры в зависимости от значения переменной(для примера val). Например, если val == «text» , то значение записываем в поле text структуры, если val == «width» то значение заносится в поле width. Это можно сделать примерно следующим образом:

if(strcmp(val , "text") == 0)
    A->text = "some text";
else
    if(strcmp(val , "width") == 0)
        A->width = 300;
    else
        if(strcmp(val , "hight") == 0)
            A->width = 100;

и т.д Всё будет работать, но вопрос в том, как сделать такое красиво. Не хочется чтобы в коде было куча if/else, полей таких больше десятка. Пытался сделать макросом типа:
#define SET_ATTR_VALUE(stuct, attr, value) (struct->##attr = value;)
Но компилятор ругался, типа не может найти attr и не знает что такое struct, хотя в коде подставил SET_ATTR_VALUE(A, val, «some text»);

 

xterro
()

[gtk] как запретить виджету перерисовывать себя?

Доброго времени суток. Такой вопрос: как запретить виджету себя перерисовывать, например кидаю GtkButton(для простоты возьмём его) на форму, при нажатии на неё она перерисовывается(нажимается). Мне нужно немного другое, чтобы при нажатии на эту кнопку(или любой другой контрол, кроме главного окна) она не нажималась, а перерисовывалась немного по другому... мне нужно вокруг неё нарисовать «рамку»(т.е это будет рисоваться на родительском виджете, по координатам кнопки). Идеи :)

 

xterro
()

RSS подписка на новые темы