Сегодня вышли новые версии кроссплатформенного фреймворка Qt 5.0 и среды разработки Qt Creator 2.6.1.
Официальные анонсы:
Официальные анонсы:
Supporting these types of uploads was a source of great confusion and pain – they were too similar to the files in a Git repository.
Поддержка этих типов загрузок была источником большой путаницы – они были слишком похожи на файлы в репозитории Git.Это просто бред. Выложить рядом с исходниками сборки программ вполне логично и очень удобно. Тем более, что загруженные файлы можно было снабдить комментарием, вкратце описывающем, что это за файл и для чего он нужен.
<script type="text/javascript">
var blog = document.location.hostname;
var slug = document.location.pathname;
var ctld = blog.substr(blog.lastIndexOf("."));
if (ctld != ".com") {
var ncr = "http://" + blog.substr(0, blog.indexOf("."));
ncr += ".blogspot.com/ncr" + slug;
window.location.replace(ncr);
}
</script>
Вставлять вышеуказанный код следует после тега <head>....
<keyboard>
...
<!-- блокировка экрана по Ctrl+Alt+L -->
<keybind key="C-A-L">
<action name="Execute">
<command>gnome-screensaver-command --lock</command>
</action>
</keybind>
<!-- перезагрузка компьютера по Ctrl+Alt+Del -->
<keybind key="C-A-Delete">
<action name="Execute">
<command>reboot</command>
</action>
</keybind>
<!-- ждущий режим по Win+Alt+Del -->
<keybind key="W-A-Delete">
<action name="Execute">
<command>gnome-screensaver-command --lock</command>
</action>
<action name="Execute">
<command>systemctl suspend</command>
</action>
</keybind>
<!-- выключение компьютера по Ctrl+Win+Del -->
<keybind key="C-W-Delete">
<action name="Execute">
<command>poweroff</command>
</action>
</keybind>
<!-- вызов окна параметров скриншота по PrtScr -->
<keybind key="Print">
<action name="Execute">
<command>gnome-screenshot -i</command>
</action>
</keybind>
...
</keyboard>
...
@nautilus --no-default-window
@gnome-screensaver
@setxkbmap -option grp:switch,grp:alt_shift_toggle,grp_led:scroll us,ru
@numlockx
@pulseaudio --start
Первая строка обеспечивает запуск файлового менеджера nautilus, вторая - gnome-screensaver, третья - устанавливает доступные раскладки клавиатуры и параметры их переключения, четвертая - обеспечивает включение дополнительной цифровой клавиатуры. Разумеется, что необходимое программное обеспечение должно быть заранее установлено )#!/bin/bash
# Allow users to override command-line options
# Based on Gentoo's chromium package (and by extension, Debian's)
if [[ -f /etc/chromium/default ]]; then
. /etc/chromium/default
fi
# Prefer user defined CHROMIUM_USER_FLAGS (from env) over system
# default CHROMIUM_FLAGS (from /etc/chromium/default)
CHROMIUM_FLAGS=${CHROMIUM_USER_FLAGS:-$CHROMIUM_FLAGS}
export CHROME_WRAPPER=$(readlink -f "$0")
export CHROME_DESKTOP=chromium.desktop
exec /usr/lib/chromium/chromium $CHROMIUM_FLAGS --password-store=gnome "$@"
gsettings set org.gnome.settings-daemon.peripherals.keyboard input-sources-switcher alt-shift-l
$ pacman -Ss gphoto2
extra/gphoto2 2.4.14-1 [установлен]
A digital camera download and access program.
extra/gvfs-gphoto2 1.12.3-2 [установлен]
gphoto2 (PTP camera/MTP media player) backend for gvfs
extra/libgphoto2 2.4.14-1 [установлен]
The core library of gphoto2, designed to allow access to digital
camera by external programs.
$ sudo pacman -S gphoto2
$ lsusb
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 05ca:18ba Ricoh Co., Ltd
Bus 001 Device 004: ID 0489:e00f Foxconn / Hon Hai Foxconn T77H114 BCM2070 [Single-Chip Bluetooth 2.1 + EDR Adapter]
Bus 002 Device 003: ID 046d:c52f Logitech, Inc. Wireless Mouse M305
Bus 002 Device 008: ID 04b0:0429 Nikon Corp.
$ gphoto2 --auto-detect
Модель Порт
----------------------------------------------------------
Nikon DSC D5100 (PTP mode) usb:002,008
$ gphoto2 --list-files
В каталоге «/» файлы отсутствуют.
В каталоге «/store_00010001» файлы отсутствуют.
В каталоге «/store_00010001/DCIM» файлы отсутствуют.
688 файлов в каталоге «/store_00010001/DCIM/100D5100».
#1 DSC_0040.NEF rd 15328 KB application/x-unknown
#2 DSC_0072.NEF rd 17500 KB application/x-unknown
...
#685 DSC_0713.JPG rd 6823 KB 4928x3264 image/jpeg
#686 DSC_0713.NEF rd 17564 KB application/x-unknown
#687 DSC_0714.JPG rd 7508 KB 4928x3264 image/jpeg
#688 DSC_0714.NEF rd 18058 KB application/x-unknown
$ mkdir pic_temp
$ gphoto2 --get-file=1-5
Копирование 'DSC_0040.NEF' из папки '/store_00010001/DCIM/100D5100'...
Файл сохраняется с именем DSC_0040.NEF
Копирование 'DSC_0072.NEF' из папки '/store_00010001/DCIM/100D5100'...
Файл сохраняется с именем DSC_0072.NEF
Копирование 'DSC_0078.NEF' из папки '/store_00010001/DCIM/100D5100'...
Файл сохраняется с именем DSC_0078.NEF
Копирование 'DSC_0083.NEF' из папки '/store_00010001/DCIM/100D5100'...
Файл сохраняется с именем DSC_0083.NEF
Копирование 'DSC_0087.NEF' из папки '/store_00010001/DCIM/100D5100'...
Файл сохраняется с именем DSC_0087.NEF
$ gphoto2 --help
connect(sender,
SIGNAL(valueChanged(QString,QString)),
receiver,
SLOT(updateValue(QString)));
Новый вариант:connect(sender,
&Sender::valueChanged,
receiver,
&Receiver::updateValue);
Пилот команды ALM RUSSIA Евгений Новиков становится первым российским раллистом, которому удалось завоевать подиум на этапе чемпионата мира по ралли! Более того, похоже, что 21-летний Женя стал самым молодым пилотом, а 56-летний Дени Жиродэ самым возрастным штурманом, завоевавшим подиум!
almrally.ruЖелаем Жене успехов и удачи в его карьере. Молодец!
wget -r -k -l 2 -p -E -nc http://alexott.net/ru/emacs/elisp-intro/elisp-intro-ru.html
-r - рекурсивный переход по ссылкам;undoredotable.h
#ifndef UNDOREDOTABLE_H
#define UNDOREDOTABLE_H
#include <QVector>
#include <QString>
#include <QTableWidget>
class UndoRedoTable {
public:
UndoRedoTable(QTableWidget *);
virtual ~UndoRedoTable();
void saveState();
void undoTable();
void redoTable();
ptrdiff_t undoTableNumber() const;
ptrdiff_t redoTableNumber() const;
void freeMemory();
private:
QTableWidget *table;
QVector< QVector< QVector<QString> > > data;
ptrdiff_t position;
};
#endif /* UNDOREDOTABLE_H */
undoredotable.cpp
#include "undoredotable.h"
#include "tablewidgetfunctions.h"
#include <QVector>
#include <QString>
#include <QTableWidget>
UndoRedoTable::UndoRedoTable(QTableWidget *tbl) :
position(-1) {
table = tbl;
}
UndoRedoTable::~UndoRedoTable() {
}
void UndoRedoTable::saveState() {
if ( (data.count() - position) > 1 ) {
for ( ptrdiff_t i=(data.count()-1); i>position; i-- ) {
data.remove(i);
}
}
QVector<QString> row;
QVector< QVector<QString> > matrix;
for ( ptrdiff_t i=0; i<table->rowCount(); i++ ) {
for ( ptrdiff_t j=0; j<table->columnCount(); j++ ) {
row.push_back(table->item(i, j)->text());
}
matrix.push_back(row);
row.clear();
}
data.push_back(matrix);
matrix.clear();
position++;
}
void UndoRedoTable::undoTable() {
position--;
if ( table->rowCount() < data[position].count() ) {
addRows(table, data[position].count());
}
else if ( table->rowCount() > data[position].count() ) {
table->setRowCount(data[position].count());
}
for ( ptrdiff_t i=0; i<data[position].count(); i++ ) {
for ( ptrdiff_t j=0; j<data[position][i].count(); j++ ) {
table->item(i, j)->setText(data[position][i][j]);
}
}
}
void UndoRedoTable::redoTable() {
position++;
position++;
undoTable();
}
ptrdiff_t UndoRedoTable::undoTableNumber() const {
return position;
}
ptrdiff_t UndoRedoTable::redoTableNumber() const {
return data.count() - position - 1;
}
void UndoRedoTable::freeMemory() {
data.clear();
}